// Copyright Benoit Blanchon 2014-2016 // MIT License // // Arduino JSON library // https://github.com/bblanchon/ArduinoJson // If you like this project, please add a star! #include #include class JsonParser_Variant_Test : public testing::Test { protected: void whenInputIs(const char* jsonString) { strcpy(_jsonString, jsonString); _result = _jsonBuffer.parse(_jsonString); } template void resultMustEqual(T expected) { EXPECT_EQ(expected, _result.as()); } void resultMustEqual(const char* expected) { EXPECT_STREQ(expected, _result.as()); } template void resultTypeMustBe() { EXPECT_TRUE(_result.is()); } void resultMustBeInvalid() { EXPECT_FALSE(_result.success()); } void resultMustBeValid() { EXPECT_TRUE(_result.success()); } private: DynamicJsonBuffer _jsonBuffer; JsonVariant _result; char _jsonString[256]; }; TEST_F(JsonParser_Variant_Test, EmptyObject) { whenInputIs("{}"); resultMustBeValid(); resultTypeMustBe(); } TEST_F(JsonParser_Variant_Test, EmptyArray) { whenInputIs("[]"); resultMustBeValid(); resultTypeMustBe(); } TEST_F(JsonParser_Variant_Test, Integer) { whenInputIs("42"); resultMustBeValid(); resultTypeMustBe(); resultMustEqual(42); } TEST_F(JsonParser_Variant_Test, Double) { whenInputIs("3.14"); resultMustBeValid(); resultTypeMustBe(); resultMustEqual(3.14); } TEST_F(JsonParser_Variant_Test, String) { whenInputIs("\"hello world\""); resultMustBeValid(); resultTypeMustBe(); resultMustEqual("hello world"); } TEST_F(JsonParser_Variant_Test, True) { whenInputIs("true"); resultMustBeValid(); resultTypeMustBe(); resultMustEqual(true); } TEST_F(JsonParser_Variant_Test, False) { whenInputIs("false"); resultMustBeValid(); resultTypeMustBe(); resultMustEqual(false); } TEST_F(JsonParser_Variant_Test, Invalid) { whenInputIs("{"); resultMustBeInvalid(); }