JsonValueTests.cpp 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. #include <gtest/gtest.h>
  2. #include <ArduinoJson/StaticJsonBuffer.hpp>
  3. #include <ArduinoJson/JsonValue.hpp>
  4. using namespace ArduinoJson;
  5. class JsonValueTests : public ::testing::Test
  6. {
  7. protected:
  8. virtual void SetUp()
  9. {
  10. jsonValue1 = json.createValue();
  11. jsonValue2 = json.createValue();
  12. }
  13. StaticJsonBuffer<42> json;
  14. JsonValue jsonValue1;
  15. JsonValue jsonValue2;
  16. };
  17. TEST_F(JsonValueTests, CanStoreInteger)
  18. {
  19. jsonValue1 = 123;
  20. EXPECT_EQ(123, (int) jsonValue1);
  21. }
  22. TEST_F(JsonValueTests, CanStoreDouble)
  23. {
  24. jsonValue1 = 123.45;
  25. EXPECT_EQ(123.45, (double) jsonValue1);
  26. }
  27. TEST_F(JsonValueTests, CanStoreTrue)
  28. {
  29. jsonValue1 = true;
  30. EXPECT_TRUE((bool) jsonValue1);
  31. }
  32. TEST_F(JsonValueTests, CanStoreFalse)
  33. {
  34. jsonValue1 = false;
  35. EXPECT_FALSE((bool) jsonValue1);
  36. }
  37. TEST_F(JsonValueTests, CanStoreString)
  38. {
  39. jsonValue1 = "hello";
  40. EXPECT_STREQ("hello", (const char*) jsonValue1);
  41. }
  42. TEST_F(JsonValueTests, CanStoreObject)
  43. {
  44. JsonObject innerObject1 = json.createObject();
  45. jsonValue1 = innerObject1;
  46. EXPECT_EQ(innerObject1, (JsonObject) jsonValue1);
  47. }
  48. TEST_F(JsonValueTests, IntegersAreCopiedByValue)
  49. {
  50. jsonValue1 = 123;
  51. jsonValue2 = jsonValue1;
  52. jsonValue1 = 456;
  53. EXPECT_EQ(123, (int) jsonValue2);
  54. }
  55. TEST_F(JsonValueTests, DoublesAreCopiedByValue)
  56. {
  57. jsonValue1 = 123.45;
  58. jsonValue2 = jsonValue1;
  59. jsonValue1 = 456.78;
  60. EXPECT_EQ(123.45, (double) jsonValue2);
  61. }
  62. TEST_F(JsonValueTests, BooleansAreCopiedByValue)
  63. {
  64. jsonValue1 = true;
  65. jsonValue2 = jsonValue1;
  66. jsonValue1 = false;
  67. EXPECT_TRUE((bool) jsonValue2);
  68. }
  69. TEST_F(JsonValueTests, StringsAreCopiedByValue)
  70. {
  71. jsonValue1 = "hello";
  72. jsonValue2 = jsonValue1;
  73. jsonValue1 = "world";
  74. EXPECT_STREQ("hello", (const char*) jsonValue2);
  75. }
  76. TEST_F(JsonValueTests, ObjectsAreCopiedByReference)
  77. {
  78. JsonObject object = json.createObject();
  79. jsonValue1 = object;
  80. object["hello"] = "world";
  81. EXPECT_EQ(1, ((JsonObject) jsonValue1).size());
  82. }
  83. TEST_F(JsonValueTests, ArraysAreCopiedByReference)
  84. {
  85. JsonArray array = json.createArray();
  86. jsonValue1 = array;
  87. array.add("world");
  88. EXPECT_EQ(1, ((JsonObject) jsonValue1).size());
  89. }