// 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()); } private: DynamicJsonBuffer _jsonBuffer; JsonVariant _result; char _jsonString[256]; }; TEST_F(JsonParser_Variant_Test, EmptyObject) { whenInputIs("{}"); resultTypeMustBe(); } TEST_F(JsonParser_Variant_Test, EmptyArray) { whenInputIs("[]"); resultTypeMustBe(); } TEST_F(JsonParser_Variant_Test, Integer) { whenInputIs("42"); resultTypeMustBe(); resultMustEqual(42); } TEST_F(JsonParser_Variant_Test, Double) { whenInputIs("3.14"); resultTypeMustBe(); resultMustEqual(3.14); } TEST_F(JsonParser_Variant_Test, String) { whenInputIs("\"hello world\""); resultTypeMustBe(); resultMustEqual("hello world"); } TEST_F(JsonParser_Variant_Test, True) { whenInputIs("true"); resultTypeMustBe(); resultMustEqual(true); } TEST_F(JsonParser_Variant_Test, False) { whenInputIs("false"); resultTypeMustBe(); resultMustEqual(false); }