JsonVariant_Copy_Tests.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. // Copyright Benoit Blanchon 2014-2015
  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. DynamicJsonBuffer _jsonBuffer;
  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 = _jsonBuffer.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 = _jsonBuffer.createArray();
  46. _variant1 = array;
  47. array.add("world");
  48. EXPECT_EQ(1, _variant1.asArray().size());
  49. }