JsonVariant_Copy_Tests.cpp 1.5 KB

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