JsonVariant_Copy_Tests.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright Benoit Blanchon 2014
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #include <gtest/gtest.h>
  7. #include <ArduinoJson.h>
  8. class JsonVariant_Copy_Tests : public ::testing::Test {
  9. protected:
  10. StaticJsonBuffer<200> json;
  11. JsonVariant variant1;
  12. JsonVariant variant2;
  13. };
  14. TEST_F(JsonVariant_Copy_Tests, IntegersAreCopiedByValue) {
  15. variant1 = 123;
  16. variant2 = variant1;
  17. variant1 = 456;
  18. EXPECT_EQ(123, variant2.as<int>());
  19. }
  20. TEST_F(JsonVariant_Copy_Tests, DoublesAreCopiedByValue) {
  21. variant1 = 123.45;
  22. variant2 = variant1;
  23. variant1 = 456.78;
  24. EXPECT_EQ(123.45, variant2.as<double>());
  25. }
  26. TEST_F(JsonVariant_Copy_Tests, BooleansAreCopiedByValue) {
  27. variant1 = true;
  28. variant2 = variant1;
  29. variant1 = false;
  30. EXPECT_TRUE(variant2.as<bool>());
  31. }
  32. TEST_F(JsonVariant_Copy_Tests, StringsAreCopiedByValue) {
  33. variant1 = "hello";
  34. variant2 = variant1;
  35. variant1 = "world";
  36. EXPECT_STREQ("hello", variant2.as<const char *>());
  37. }
  38. TEST_F(JsonVariant_Copy_Tests, ObjectsAreCopiedByReference) {
  39. JsonObject &object = json.createObject();
  40. variant1 = object;
  41. object["hello"] = "world";
  42. EXPECT_EQ(1, variant1.asObject().size());
  43. }
  44. TEST_F(JsonVariant_Copy_Tests, ArraysAreCopiedByReference) {
  45. JsonArray &array = json.createArray();
  46. variant1 = array;
  47. array.add("world");
  48. EXPECT_EQ(1, variant1.asArray().size());
  49. }