#include #include #include using namespace ArduinoJson; class JsonParser_Object_Test : public testing::Test { protected: void whenInputIs(const char* jsonString) { strcpy(_jsonString, jsonString); _object = _jsonBuffer.parseObject(_jsonString); } void parseMustSucceed() { EXPECT_TRUE(_object.success()); } void parseMustFail() { EXPECT_FALSE(_object.success()); } void sizeMustBe(int expected) { EXPECT_EQ(expected, _object.size()); } void keyMustHaveValue(const char* key, const char* expected) { EXPECT_STREQ(expected, static_cast(_object[key])); } private: StaticJsonBuffer<10> _jsonBuffer; JsonObject _object; char _jsonString[256]; }; TEST_F(JsonParser_Object_Test, EmptyObject) { whenInputIs("{}"); parseMustSucceed(); sizeMustBe(0); } TEST_F(JsonParser_Object_Test, MissingClosingBrace) { whenInputIs("{"); parseMustFail(); sizeMustBe(0); } TEST_F(JsonParser_Object_Test, OneString) { whenInputIs("{\"key\":\"value\"}"); parseMustSucceed(); sizeMustBe(1); keyMustHaveValue("key", "value"); }