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