set.cpp 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. // Copyright Benoit Blanchon 2014-2017
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://bblanchon.github.io/ArduinoJson/
  6. // If you like this project, please add a star!
  7. #include <ArduinoJson.h>
  8. #include <gtest/gtest.h>
  9. class JsonArray_Set_Tests : public ::testing::Test {
  10. protected:
  11. JsonArray_Set_Tests() : _array(_jsonBuffer.createArray()) {
  12. _array.add(0);
  13. }
  14. DynamicJsonBuffer _jsonBuffer;
  15. JsonArray& _array;
  16. };
  17. #define TEST_(name) TEST_F(JsonArray_Set_Tests, name)
  18. TEST_(SizeIsUnchanged) {
  19. _array.set(0, "hello");
  20. EXPECT_EQ(1U, _array.size());
  21. }
  22. TEST_(StoreInteger) {
  23. _array.set(0, 123);
  24. EXPECT_EQ(123, _array[0].as<int>());
  25. EXPECT_TRUE(_array[0].is<int>());
  26. EXPECT_FALSE(_array[0].is<double>());
  27. }
  28. TEST_(StoreDouble) {
  29. _array.set(0, 123.45);
  30. EXPECT_EQ(123.45, _array[0].as<double>());
  31. EXPECT_TRUE(_array[0].is<double>());
  32. EXPECT_FALSE(_array[0].is<int>());
  33. }
  34. TEST_(StoreBoolean) {
  35. _array.set(0, true);
  36. EXPECT_EQ(true, _array[0].as<bool>());
  37. EXPECT_TRUE(_array[0].is<bool>());
  38. EXPECT_FALSE(_array[0].is<int>());
  39. }
  40. TEST_(StoreString) {
  41. _array.set(0, "hello");
  42. EXPECT_STREQ("hello", _array[0].as<const char*>());
  43. EXPECT_TRUE(_array[0].is<const char*>());
  44. EXPECT_FALSE(_array[0].is<int>());
  45. }
  46. TEST_(StoreNestedArray) {
  47. JsonArray& arr = _jsonBuffer.createArray();
  48. _array.set(0, arr);
  49. EXPECT_EQ(&arr, &_array[0].as<JsonArray&>());
  50. EXPECT_TRUE(_array[0].is<JsonArray&>());
  51. EXPECT_FALSE(_array[0].is<int>());
  52. }
  53. TEST_(StoreNestedObject) {
  54. JsonObject& obj = _jsonBuffer.createObject();
  55. _array.set(0, obj);
  56. EXPECT_EQ(&obj, &_array[0].as<JsonObject&>());
  57. EXPECT_TRUE(_array[0].is<JsonObject&>());
  58. EXPECT_FALSE(_array[0].is<int>());
  59. }
  60. TEST_(StoreArraySubscript) {
  61. JsonArray& arr = _jsonBuffer.createArray();
  62. arr.add("hello");
  63. _array.set(0, arr[0]);
  64. EXPECT_STREQ("hello", _array[0]);
  65. }
  66. TEST_(StoreObjectSubscript) {
  67. JsonObject& obj = _jsonBuffer.createObject();
  68. obj["x"] = "hello";
  69. _array.set(0, obj["x"]);
  70. EXPECT_STREQ("hello", _array[0]);
  71. }