diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/core/common/VariantReaderTest.cpp | 50 | 
1 files changed, 49 insertions, 1 deletions
diff --git a/test/core/common/VariantReaderTest.cpp b/test/core/common/VariantReaderTest.cpp index f6a699b..7a688c5 100644 --- a/test/core/common/VariantReaderTest.cpp +++ b/test/core/common/VariantReaderTest.cpp @@ -205,7 +205,7 @@ TEST(VariantReader, parseUnescapedString)  	// Simple case with whitespace  	{ -		CharReader reader("    hello world   ;    "); +		CharReader reader("    hello world   ;    aha");  		auto res = VariantReader::parseUnescapedString(reader, logger, {';'});  		ASSERT_TRUE(res.first);  		ASSERT_EQ("hello world", res.second); @@ -228,6 +228,54 @@ TEST(VariantReader, parseUnescapedString)  	}  } +TEST(VariantReader, parseBool) +{ +	// Valid bools +	{ +		CharReader reader("   true   "); +		auto res = VariantReader::parseBool(reader, logger); +		ASSERT_TRUE(res.first); +		ASSERT_TRUE(res.second); +	} +	{ +		CharReader reader("   false   "); +		auto res = VariantReader::parseBool(reader, logger); +		ASSERT_TRUE(res.first); +		ASSERT_FALSE(res.second); +	} +	{ +		CharReader reader("   true   bla"); +		auto res = VariantReader::parseBool(reader, logger); +		ASSERT_TRUE(res.first); +		ASSERT_TRUE(res.second); +		reader.consumeWhitespace(); +		char c; +		ASSERT_TRUE(reader.read(c)); +		ASSERT_EQ('b', c); +		ASSERT_TRUE(reader.read(c)); +		ASSERT_EQ('l', c); +		ASSERT_TRUE(reader.read(c)); +		ASSERT_EQ('a', c); +		ASSERT_FALSE(reader.read(c)); +	} +	// invalid bools. +	{ +		CharReader reader("   bla   "); +		auto res = VariantReader::parseBool(reader, logger); +		ASSERT_FALSE(res.first); +	} +	{ +		CharReader reader("   TRUE   "); +		auto res = VariantReader::parseBool(reader, logger); +		ASSERT_FALSE(res.first); +	} +	{ +		CharReader reader("   tr ue   "); +		auto res = VariantReader::parseBool(reader, logger); +		ASSERT_FALSE(res.first); +	} +} +  static const std::unordered_set<char> noDelim;  TEST(VariantReader, parseInteger)  | 
