JsonParser_Object_Tests.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include <gtest/gtest.h>
  2. #include <ArduinoJson/StaticJsonBuffer.hpp>
  3. #include <ArduinoJson/JsonValue.hpp>
  4. using namespace ArduinoJson;
  5. class JsonParser_Object_Test : public testing::Test
  6. {
  7. protected:
  8. void whenInputIs(const char* jsonString)
  9. {
  10. strcpy(_jsonString, jsonString);
  11. _object = _jsonBuffer.parseObject(_jsonString);
  12. }
  13. void parseMustSucceed()
  14. {
  15. EXPECT_TRUE(_object.success());
  16. }
  17. void parseMustFail()
  18. {
  19. EXPECT_FALSE(_object.success());
  20. }
  21. void sizeMustBe(int expected)
  22. {
  23. EXPECT_EQ(expected, _object.size());
  24. }
  25. void keyMustHaveValue(const char* key, const char* expected)
  26. {
  27. EXPECT_STREQ(expected, static_cast<const char*>(_object[key]));
  28. }
  29. private:
  30. StaticJsonBuffer<10> _jsonBuffer;
  31. JsonObject _object;
  32. char _jsonString[256];
  33. };
  34. TEST_F(JsonParser_Object_Test, EmptyObject)
  35. {
  36. whenInputIs("{}");
  37. parseMustSucceed();
  38. sizeMustBe(0);
  39. }
  40. TEST_F(JsonParser_Object_Test, MissingClosingBrace)
  41. {
  42. whenInputIs("{");
  43. parseMustFail();
  44. sizeMustBe(0);
  45. }
  46. TEST_F(JsonParser_Object_Test, OneString)
  47. {
  48. whenInputIs("{\"key\":\"value\"}");
  49. parseMustSucceed();
  50. sizeMustBe(1);
  51. keyMustHaveValue("key", "value");
  52. }