JsonValueTests.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. protected:
  7. virtual void SetUp() {
  8. jsonValue1 = json.createValue();
  9. jsonValue2 = json.createValue();
  10. }
  11. StaticJsonBuffer<42> json;
  12. JsonValue jsonValue1;
  13. JsonValue jsonValue2;
  14. };
  15. TEST_F(JsonValueTests, CanStoreInteger) {
  16. jsonValue1 = 123;
  17. EXPECT_EQ(123, (int)jsonValue1);
  18. }
  19. TEST_F(JsonValueTests, CanStoreDouble) {
  20. jsonValue1 = 123.45;
  21. EXPECT_EQ(123.45, (double)jsonValue1);
  22. }
  23. TEST_F(JsonValueTests, CanStoreTrue) {
  24. jsonValue1 = true;
  25. EXPECT_TRUE((bool)jsonValue1);
  26. }
  27. TEST_F(JsonValueTests, CanStoreFalse) {
  28. jsonValue1 = false;
  29. EXPECT_FALSE((bool)jsonValue1);
  30. }
  31. TEST_F(JsonValueTests, CanStoreString) {
  32. jsonValue1 = "hello";
  33. EXPECT_STREQ("hello", (const char *)jsonValue1);
  34. }
  35. TEST_F(JsonValueTests, CanStoreObject) {
  36. JsonObject innerObject1 = json.createObject();
  37. jsonValue1 = innerObject1;
  38. EXPECT_EQ(innerObject1, (JsonObject)jsonValue1);
  39. }
  40. TEST_F(JsonValueTests, IntegersAreCopiedByValue) {
  41. jsonValue1 = 123;
  42. jsonValue2 = jsonValue1;
  43. jsonValue1 = 456;
  44. EXPECT_EQ(123, (int)jsonValue2);
  45. }
  46. TEST_F(JsonValueTests, DoublesAreCopiedByValue) {
  47. jsonValue1 = 123.45;
  48. jsonValue2 = jsonValue1;
  49. jsonValue1 = 456.78;
  50. EXPECT_EQ(123.45, (double)jsonValue2);
  51. }
  52. TEST_F(JsonValueTests, BooleansAreCopiedByValue) {
  53. jsonValue1 = true;
  54. jsonValue2 = jsonValue1;
  55. jsonValue1 = false;
  56. EXPECT_TRUE((bool)jsonValue2);
  57. }
  58. TEST_F(JsonValueTests, StringsAreCopiedByValue) {
  59. jsonValue1 = "hello";
  60. jsonValue2 = jsonValue1;
  61. jsonValue1 = "world";
  62. EXPECT_STREQ("hello", (const char *)jsonValue2);
  63. }
  64. TEST_F(JsonValueTests, ObjectsAreCopiedByReference) {
  65. JsonObject object = json.createObject();
  66. jsonValue1 = object;
  67. object["hello"] = "world";
  68. EXPECT_EQ(1, ((JsonObject)jsonValue1).size());
  69. }
  70. TEST_F(JsonValueTests, ArraysAreCopiedByReference) {
  71. JsonArray array = json.createArray();
  72. jsonValue1 = array;
  73. array.add("world");
  74. EXPECT_EQ(1, ((JsonObject)jsonValue1).size());
  75. }