JsonObject_PrettyPrintTo_Tests.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * Arduino JSON library
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #include <gtest/gtest.h>
  6. #include <ArduinoJson/JsonObject.hpp>
  7. #include <ArduinoJson/JsonValue.hpp>
  8. #include <ArduinoJson/StaticJsonBuffer.hpp>
  9. using namespace ArduinoJson;
  10. class JsonObject_PrettyPrintTo_Tests : public testing::Test {
  11. protected:
  12. JsonObject object;
  13. StaticJsonBuffer<30> json;
  14. virtual void SetUp() { object = json.createObject(); }
  15. void outputMustBe(const char *expected) {
  16. size_t n = object.prettyPrintTo(buffer, sizeof(buffer));
  17. EXPECT_STREQ(expected, buffer);
  18. EXPECT_EQ(strlen(expected), n);
  19. }
  20. private:
  21. char buffer[256];
  22. };
  23. TEST_F(JsonObject_PrettyPrintTo_Tests, EmptyObject) { outputMustBe("{}"); }
  24. TEST_F(JsonObject_PrettyPrintTo_Tests, OneMember) {
  25. object["key"] = "value";
  26. outputMustBe("{\r\n"
  27. " \"key\": \"value\"\r\n"
  28. "}");
  29. }
  30. TEST_F(JsonObject_PrettyPrintTo_Tests, TwoMembers) {
  31. object["key1"] = "value1";
  32. object["key2"] = "value2";
  33. outputMustBe("{\r\n"
  34. " \"key1\": \"value1\",\r\n"
  35. " \"key2\": \"value2\"\r\n"
  36. "}");
  37. }
  38. TEST_F(JsonObject_PrettyPrintTo_Tests, EmptyNestedContainers) {
  39. object.createNestedObject("key1");
  40. object.createNestedArray("key2");
  41. outputMustBe("{\r\n"
  42. " \"key1\": {},\r\n"
  43. " \"key2\": []\r\n"
  44. "}");
  45. }
  46. TEST_F(JsonObject_PrettyPrintTo_Tests, NestedContainers) {
  47. JsonObject nested1 = object.createNestedObject("key1");
  48. nested1["a"] = 1;
  49. JsonArray nested2 = object.createNestedArray("key2");
  50. nested2.add(2);
  51. outputMustBe("{\r\n"
  52. " \"key1\": {\r\n"
  53. " \"a\": 1\r\n"
  54. " },\r\n"
  55. " \"key2\": [\r\n"
  56. " 2\r\n"
  57. " ]\r\n"
  58. "}");
  59. }