set.cpp 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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 <catch.hpp>
  9. using namespace Catch::Matchers;
  10. TEST_CASE("JsonArray::set()") {
  11. DynamicJsonBuffer _jsonBuffer;
  12. JsonArray& _array = _jsonBuffer.createArray();
  13. _array.add(0);
  14. SECTION("SizeIsUnchanged") {
  15. _array.set(0, "hello");
  16. REQUIRE(1U == _array.size());
  17. }
  18. SECTION("int") {
  19. _array.set(0, 123);
  20. REQUIRE(123 == _array[0].as<int>());
  21. REQUIRE(_array[0].is<int>());
  22. REQUIRE_FALSE(_array[0].is<bool>());
  23. }
  24. SECTION("double") {
  25. _array.set(0, 123.45);
  26. REQUIRE(123.45 == _array[0].as<double>());
  27. REQUIRE(_array[0].is<double>());
  28. REQUIRE_FALSE(_array[0].is<int>());
  29. }
  30. SECTION("bool") {
  31. _array.set(0, true);
  32. REQUIRE(true == _array[0].as<bool>());
  33. REQUIRE(_array[0].is<bool>());
  34. REQUIRE_FALSE(_array[0].is<int>());
  35. }
  36. SECTION("const char*") {
  37. _array.set(0, "hello");
  38. REQUIRE_THAT(_array[0].as<const char*>(), Equals("hello"));
  39. REQUIRE(_array[0].is<const char*>());
  40. REQUIRE_FALSE(_array[0].is<int>());
  41. }
  42. SECTION("nested array") {
  43. JsonArray& arr = _jsonBuffer.createArray();
  44. _array.set(0, arr);
  45. REQUIRE(&arr == &_array[0].as<JsonArray&>());
  46. REQUIRE(_array[0].is<JsonArray&>());
  47. REQUIRE_FALSE(_array[0].is<int>());
  48. }
  49. SECTION("nested object") {
  50. JsonObject& obj = _jsonBuffer.createObject();
  51. _array.set(0, obj);
  52. REQUIRE(&obj == &_array[0].as<JsonObject&>());
  53. REQUIRE(_array[0].is<JsonObject&>());
  54. REQUIRE_FALSE(_array[0].is<int>());
  55. }
  56. SECTION("array subscript") {
  57. JsonArray& arr = _jsonBuffer.createArray();
  58. arr.add("hello");
  59. _array.set(0, arr[0]);
  60. REQUIRE_THAT(_array[0].as<char*>(), Equals("hello"));
  61. }
  62. SECTION("object subscript") {
  63. JsonObject& obj = _jsonBuffer.createObject();
  64. obj["x"] = "hello";
  65. _array.set(0, obj["x"]);
  66. REQUIRE_THAT(_array[0].as<char*>(), Equals("hello"));
  67. }
  68. }