JsonArray_Add_Tests.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. // Copyright Benoit Blanchon 2014-2017
  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 <ArduinoJson.h>
  8. #include <gtest/gtest.h>
  9. class JsonArray_Add_Tests : public ::testing::Test {
  10. protected:
  11. JsonArray_Add_Tests() : _array(_jsonBuffer.createArray()) {}
  12. DynamicJsonBuffer _jsonBuffer;
  13. JsonArray& _array;
  14. };
  15. #define TEST_(name) TEST_F(JsonArray_Add_Tests, name)
  16. TEST_(SizeIncreased_WhenValuesAreAdded) {
  17. _array.add("hello");
  18. EXPECT_EQ(1U, _array.size());
  19. }
  20. TEST_(StoreInteger) {
  21. _array.add(123);
  22. EXPECT_EQ(123, _array[0].as<int>());
  23. EXPECT_TRUE(_array[0].is<int>());
  24. EXPECT_FALSE(_array[0].is<double>());
  25. }
  26. TEST_(StoreDouble) {
  27. _array.add(123.45);
  28. EXPECT_EQ(123.45, _array[0].as<double>());
  29. EXPECT_TRUE(_array[0].is<double>());
  30. EXPECT_FALSE(_array[0].is<int>());
  31. }
  32. TEST_(StoreBoolean) {
  33. _array.add(true);
  34. EXPECT_EQ(true, _array[0].as<bool>());
  35. EXPECT_TRUE(_array[0].is<bool>());
  36. EXPECT_FALSE(_array[0].is<int>());
  37. }
  38. TEST_(StoreString) {
  39. _array.add("hello");
  40. EXPECT_STREQ("hello", _array[0].as<const char*>());
  41. EXPECT_TRUE(_array[0].is<const char*>());
  42. EXPECT_FALSE(_array[0].is<int>());
  43. }
  44. TEST_(StoreNestedArray) {
  45. JsonArray& arr = _jsonBuffer.createArray();
  46. _array.add(arr);
  47. EXPECT_EQ(&arr, &_array[0].as<JsonArray&>());
  48. EXPECT_TRUE(_array[0].is<JsonArray&>());
  49. EXPECT_FALSE(_array[0].is<int>());
  50. }
  51. TEST_(StoreNestedObject) {
  52. JsonObject& obj = _jsonBuffer.createObject();
  53. _array.add(obj);
  54. EXPECT_EQ(&obj, &_array[0].as<JsonObject&>());
  55. EXPECT_TRUE(_array[0].is<JsonObject&>());
  56. EXPECT_FALSE(_array[0].is<int>());
  57. }
  58. TEST_(StoreArraySubscript) {
  59. JsonArray& arr = _jsonBuffer.createArray();
  60. arr.add("hello");
  61. _array.add(arr[0]);
  62. EXPECT_STREQ("hello", _array[0]);
  63. }
  64. TEST_(StoreObjectSubscript) {
  65. JsonObject& obj = _jsonBuffer.createObject();
  66. obj["x"] = "hello";
  67. _array.add(obj["x"]);
  68. EXPECT_STREQ("hello", _array[0]);
  69. }