JsonArray_CopyTo_Tests.cpp 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. TEST(JsonArray_CopyTo_Tests, BiggerOneDimensionIntegerArray) {
  10. char json[] = "[1,2,3]";
  11. DynamicJsonBuffer jsonBuffer;
  12. JsonArray& array = jsonBuffer.parseArray(json);
  13. int destination[4] = {0};
  14. size_t result = array.copyTo(destination);
  15. ASSERT_EQ(3, result);
  16. ASSERT_EQ(1, destination[0]);
  17. ASSERT_EQ(2, destination[1]);
  18. ASSERT_EQ(3, destination[2]);
  19. ASSERT_EQ(0, destination[3]);
  20. }
  21. TEST(JsonArray_CopyTo_Tests, SmallerOneDimensionIntegerArray) {
  22. char json[] = "[1,2,3]";
  23. DynamicJsonBuffer jsonBuffer;
  24. JsonArray& array = jsonBuffer.parseArray(json);
  25. int destination[2] = {0};
  26. size_t result = array.copyTo(destination);
  27. ASSERT_EQ(2, result);
  28. ASSERT_EQ(1, destination[0]);
  29. ASSERT_EQ(2, destination[1]);
  30. }
  31. TEST(JsonArray_CopyTo_Tests, TwoOneDimensionIntegerArray) {
  32. char json[] = "[[1,2],[3],[4]]";
  33. DynamicJsonBuffer jsonBuffer;
  34. JsonArray& array = jsonBuffer.parseArray(json);
  35. int destination[3][2] = {{0}};
  36. array.copyTo(destination);
  37. ASSERT_EQ(1, destination[0][0]);
  38. ASSERT_EQ(2, destination[0][1]);
  39. ASSERT_EQ(3, destination[1][0]);
  40. ASSERT_EQ(0, destination[1][1]);
  41. ASSERT_EQ(4, destination[2][0]);
  42. ASSERT_EQ(0, destination[2][1]);
  43. }