JsonParser_Object_Tests.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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, OneStringNoSpace)
  47. {
  48. whenInputIs("{\"key\":\"value\"}");
  49. parseMustSucceed();
  50. sizeMustBe(1);
  51. keyMustHaveValue("key", "value");
  52. }
  53. TEST_F(JsonParser_Object_Test, OneStringSpaceBeforeKey)
  54. {
  55. whenInputIs("{ \"key\":\"value\"}");
  56. parseMustSucceed();
  57. sizeMustBe(1);
  58. keyMustHaveValue("key", "value");
  59. }
  60. TEST_F(JsonParser_Object_Test, OneStringSpaceAfterKey)
  61. {
  62. whenInputIs("{\"key\" :\"value\"}");
  63. parseMustSucceed();
  64. sizeMustBe(1);
  65. keyMustHaveValue("key", "value");
  66. }
  67. TEST_F(JsonParser_Object_Test, OneStringSpaceBeforeValue)
  68. {
  69. whenInputIs("{\"key\": \"value\"}");
  70. parseMustSucceed();
  71. sizeMustBe(1);
  72. keyMustHaveValue("key", "value");
  73. }
  74. TEST_F(JsonParser_Object_Test, OneStringSpaceAfterValue)
  75. {
  76. whenInputIs("{\"key\":\"value\" }");
  77. parseMustSucceed();
  78. sizeMustBe(1);
  79. keyMustHaveValue("key", "value");
  80. }