add.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // ArduinoJson - arduinojson.org
  2. // Copyright Benoit Blanchon 2014-2017
  3. // MIT License
  4. #include <ArduinoJson.h>
  5. #include <catch.hpp>
  6. TEST_CASE("JsonArray::add()") {
  7. DynamicJsonBuffer _jsonBuffer;
  8. JsonArray& _array = _jsonBuffer.createArray();
  9. SECTION("SizeIncreased_WhenValuesAreAdded") {
  10. _array.add("hello");
  11. REQUIRE(1U == _array.size());
  12. }
  13. SECTION("int") {
  14. _array.add(123);
  15. REQUIRE(123 == _array[0].as<int>());
  16. REQUIRE(_array[0].is<int>());
  17. REQUIRE(_array[0].is<double>());
  18. }
  19. SECTION("double") {
  20. _array.add(123.45);
  21. REQUIRE(123.45 == _array[0].as<double>());
  22. REQUIRE(_array[0].is<double>());
  23. REQUIRE_FALSE(_array[0].is<bool>());
  24. }
  25. SECTION("bool") {
  26. _array.add(true);
  27. REQUIRE(true == _array[0].as<bool>());
  28. REQUIRE(_array[0].is<bool>());
  29. REQUIRE_FALSE(_array[0].is<int>());
  30. }
  31. SECTION("const char*") {
  32. const char* str = "hello";
  33. _array.add(str);
  34. REQUIRE(str == _array[0].as<const char*>());
  35. REQUIRE(_array[0].is<const char*>());
  36. REQUIRE_FALSE(_array[0].is<int>());
  37. }
  38. SECTION("nested array") {
  39. JsonArray& arr = _jsonBuffer.createArray();
  40. _array.add(arr);
  41. REQUIRE(&arr == &_array[0].as<JsonArray&>());
  42. REQUIRE(_array[0].is<JsonArray&>());
  43. REQUIRE_FALSE(_array[0].is<int>());
  44. }
  45. SECTION("nested object") {
  46. JsonObject& obj = _jsonBuffer.createObject();
  47. _array.add(obj);
  48. REQUIRE(&obj == &_array[0].as<JsonObject&>());
  49. REQUIRE(_array[0].is<JsonObject&>());
  50. REQUIRE_FALSE(_array[0].is<int>());
  51. }
  52. SECTION("array subscript") {
  53. const char* str = "hello";
  54. JsonArray& arr = _jsonBuffer.createArray();
  55. arr.add(str);
  56. _array.add(arr[0]);
  57. REQUIRE(str == _array[0]);
  58. }
  59. SECTION("object subscript") {
  60. const char* str = "hello";
  61. JsonObject& obj = _jsonBuffer.createObject();
  62. obj["x"] = str;
  63. _array.add(obj["x"]);
  64. REQUIRE(str == _array[0]);
  65. }
  66. }