more tests for tokenizer classes
This commit is contained in:
@ -53,6 +53,11 @@ TEST(Tokenizer, skip)
|
||||
ASSERT_FALSE(t.has_next());
|
||||
ASSERT_EQ(t.count(), 2);
|
||||
ASSERT_THROW(t.skip(), TokenizerException);
|
||||
try {
|
||||
t.skip();
|
||||
} catch (TokenizerException &e) {
|
||||
ASSERT_STREQ(e.what(), "No more tokens");
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Tokenizer, prefix_separators)
|
||||
@ -87,6 +92,15 @@ TEST(Tokenizer, copy_constructor)
|
||||
ASSERT_EQ(u.count(), 2);
|
||||
}
|
||||
|
||||
TEST(Tokenizer, rvalue)
|
||||
{
|
||||
auto u = Tokenizer(" test new word ", " ");
|
||||
ASSERT_THAT(u.next(), Eq("test"));
|
||||
ASSERT_THAT(u.next(), Eq("new"));
|
||||
ASSERT_THAT(u.next(), Eq("word"));
|
||||
ASSERT_EQ(u.count(), 3);
|
||||
}
|
||||
|
||||
TEST(Tokenizer, no_separator_path)
|
||||
{
|
||||
Tokenizer t("one", ":");
|
||||
@ -181,12 +195,40 @@ TEST(ValueTokenizer, skip)
|
||||
ASSERT_FALSE(t.has_next());
|
||||
ASSERT_EQ(t.count(), 2);
|
||||
ASSERT_THROW(t.skip(), TokenizerException);
|
||||
try {
|
||||
t.skip();
|
||||
} catch (TokenizerException &e) {
|
||||
ASSERT_STREQ(e.what(), "No more tokens");
|
||||
}
|
||||
}
|
||||
|
||||
TEST(ValueTokenizer, copy_constructor)
|
||||
{
|
||||
ValueTokenizer t(" test word ", " ");
|
||||
ASSERT_THAT(t.next_string(), Eq("test"));
|
||||
ASSERT_THAT(t.next_string(), Eq("word"));
|
||||
ASSERT_EQ(t.count(), 2);
|
||||
ValueTokenizer u(t);
|
||||
ASSERT_THAT(u.next_string(), Eq("test"));
|
||||
ASSERT_THAT(u.next_string(), Eq("word"));
|
||||
ASSERT_EQ(u.count(), 2);
|
||||
}
|
||||
|
||||
TEST(ValueTokenizer, rvalue)
|
||||
{
|
||||
auto u = ValueTokenizer(" test new word ", " ");
|
||||
ASSERT_THAT(u.next_string(), Eq("test"));
|
||||
ASSERT_THAT(u.next_string(), Eq("new"));
|
||||
ASSERT_THAT(u.next_string(), Eq("word"));
|
||||
ASSERT_EQ(u.count(), 3);
|
||||
}
|
||||
|
||||
TEST(ValueTokenizer, bad_integer)
|
||||
{
|
||||
ValueTokenizer values("f10");
|
||||
ValueTokenizer values("f10 f11 f12");
|
||||
ASSERT_THROW(values.next_int(), InvalidIntegerException);
|
||||
ASSERT_THROW(values.next_bigint(), InvalidIntegerException);
|
||||
ASSERT_THROW(values.next_tagint(), InvalidIntegerException);
|
||||
}
|
||||
|
||||
TEST(ValueTokenizer, bad_double)
|
||||
|
||||
Reference in New Issue
Block a user