TEST_F(JsonArray_Container_Tests, Grow_WhenValuesAreAdded) { _array.add("hello"); sizeMustBe(1); _array.add("world"); sizeMustBe(2); }
TEST_F(JsonParser_Object_Test, TwoDoubles) { whenInputIs("{\"key1\":12.345,\"key2\":-7E89}"); parseMustSucceed(); sizeMustBe(2); keyMustHaveValue("key1", 12.345); keyMustHaveValue("key2", -7E89); }
TEST_F(JsonParser_Object_Test, TwoBooleans) { whenInputIs("{\"key1\":true,\"key2\":false}"); parseMustSucceed(); sizeMustBe(2); keyMustHaveValue("key1", true); keyMustHaveValue("key2", false); }
TEST_F(JsonParser_Array_Tests, StringWithEscapedChars) { whenInputIs("[\"1\\\"2\\\\3\\/4\\b5\\f6\\n7\\r8\\t9\"]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe("1\"2\\3/4\b5\f6\n7\r8\t9"); }
TEST_F(JsonParser_Array_Tests, CCommentBeforeClosingBracket) { whenInputIs("[\"hello\"/*COMMENT*/]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe("hello"); }
TEST_F(JsonParser_Object_Test, TwoStringsSpaceAfterComma) { whenInputIs("{\"key1\":\"value1\" ,\"key2\":\"value2\"}"); parseMustSucceed(); sizeMustBe(2); keyMustHaveValue("key1", "value1"); keyMustHaveValue("key2", "value2"); }
TEST_F(JsonParser_Array_Tests, CppCommentBeforeOpeningBracket) { whenInputIs("//COMMENT\n\t[\"hello\"]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe("hello"); }
TEST_F(JsonParser_Array_Tests, CppCommentAfterClosingBracket) { whenInputIs("[\"hello\"]//COMMENT\n"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe("hello"); }
TEST_F(JsonParser_Array_Tests, OneInteger) { whenInputIs("[42]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe(42); }
TEST_F(JsonParser_Object_Test, TwoIntergers) { whenInputIs("{\"key1\":42,\"key2\":-42}"); parseMustSucceed(); sizeMustBe(2); keyMustHaveValue("key1", 42); keyMustHaveValue("key2", -42); }
TEST_F(JsonParser_Array_Tests, CCommentAfterOpeningBracket) { whenInputIs("[/*COMMENT*/ \"hello\"]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe("hello"); }
TEST_F(JsonParser_Array_Tests, OneIntegerWithSpacesBefore) { whenInputIs("[ \t\r\n42]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe(42); }
TEST_F(JsonParser_Array_Tests, UnsignedLong) { whenInputIs("[4294967295]"); parseMustSucceed(); sizeMustBe(1); firstElementMustBe(4294967295UL); }
TEST_F(JsonParser_Array_Tests, TwoIntegers) { whenInputIs("[42,84]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe(42); secondElementMustBe(84); }
TEST_F(JsonParser_Array_Tests, EmptyStringNoQuotes) { whenInputIs("[,]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe(""); secondElementMustBe(""); }
TEST_F(JsonParser_Array_Tests, TwoStringsNoQuotes) { whenInputIs("[ hello , world ]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe("hello"); secondElementMustBe("world"); }
TEST_F(JsonParser_Array_Tests, TwoStringsDoubleQuotes) { whenInputIs("[ \"hello\" , \"world\" ]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe("hello"); secondElementMustBe("world"); }
TEST_F(JsonParser_Array_Tests, TwoBooleans) { whenInputIs("[true,false]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe(true); secondElementMustBe(false); }
TEST_F(JsonParser_Array_Tests, TwoDoubles) { whenInputIs("[4.2,1e2]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe(4.2); secondElementMustBe(1e2); }
TEST_F(JsonParser_Array_Tests, CppCommentAfterComma) { whenInputIs("[\"hello\",//COMMENT\n\"world\"]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe("hello"); secondElementMustBe("world"); }
TEST_F(JsonParser_Array_Tests, CCommentBeforeComma) { whenInputIs("[\"hello\"/*COMMENT*/,\"world\"]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe("hello"); secondElementMustBe("world"); }
TEST_F(JsonParser_Object_Test, TwoNulls) { const char *const nullstr = 0; whenInputIs("{\"key1\":null,\"key2\":null}"); parseMustSucceed(); sizeMustBe(2); keyMustHaveValue("key1", nullstr); keyMustHaveValue("key2", nullstr); }
TEST_F(JsonParser_Array_Tests, TwoNulls) { const char *const nullCharPtr = 0; whenInputIs("[null,null]"); parseMustSucceed(); sizeMustBe(2); firstElementMustBe(nullCharPtr); secondElementMustBe(nullCharPtr); }
TEST_F(JsonArray_Container_Tests, RemoveLastElement) { _array.add("one"); _array.add("two"); _array.add("three"); _array.removeAt(2); sizeMustBe(2); firstMustEqual("one"); secondMustEqual("two"); }
TEST_F(JsonParser_Object_Test, OneStringSpaceAfterValue) { whenInputIs("{\"key\":\"value\" }"); parseMustSucceed(); sizeMustBe(1); keyMustHaveValue("key", "value"); }
TEST_F(JsonArray_Container_Tests, InitialSizeIsZero) { sizeMustBe(0); }
TEST_F(JsonArray_Container_Tests, DontGrow_WhenValuesAreReplaced) { _array.add("hello"); _array[0] = "world"; sizeMustBe(1); }
TEST_F(JsonParser_Object_Test, OneStringSingleQuotes) { whenInputIs("{'key':'value'}"); parseMustSucceed(); sizeMustBe(1); keyMustHaveValue("key", "value"); }
TEST_F(JsonParser_Array_Tests, EmptyArrayWithLeadingSpaces) { whenInputIs(" []"); parseMustSucceed(); sizeMustBe(0); }
TEST_F(JsonParser_Array_Tests, EmptyArray) { whenInputIs("[]"); parseMustSucceed(); sizeMustBe(0); }