IntegrationTests.cpp 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Copyright Benoit Blanchon 2014
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #include <gtest/gtest.h>
  7. #include <ArduinoJson/StaticJsonBuffer.hpp>
  8. #include <ArduinoJson/JsonArray.hpp>
  9. #include <ArduinoJson/JsonObject.hpp>
  10. using namespace ArduinoJson;
  11. class IntegrationTests : public testing::TestWithParam<const char*> {
  12. protected:
  13. virtual void SetUp() {
  14. _input = GetParam();
  15. strcpy(inputBuffer, _input);
  16. }
  17. const char* _input;
  18. char inputBuffer[2048];
  19. char outputBuffer[2048];
  20. char intermediateBuffer[2048];
  21. StaticJsonBuffer<2048> json;
  22. };
  23. TEST_P(IntegrationTests, ParseThenPrint) {
  24. json.parseObject(inputBuffer).printTo(outputBuffer, sizeof(outputBuffer));
  25. ASSERT_STREQ(_input, outputBuffer);
  26. }
  27. TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) {
  28. json.parseObject(inputBuffer)
  29. .prettyPrintTo(intermediateBuffer, sizeof(intermediateBuffer));
  30. json.parseObject(intermediateBuffer)
  31. .printTo(outputBuffer, sizeof(outputBuffer));
  32. ASSERT_STREQ(_input, outputBuffer);
  33. }
  34. INSTANTIATE_TEST_CASE_P(
  35. OpenWeatherMap, IntegrationTests,
  36. testing::Values(
  37. "{\"coord\":{\"lon\":-0.13,\"lat\":51.51},\"sys\":{\"type\":1,\"id\":"
  38. "5093,\"message\":0.1177,\"country\":\"GB\",\"sunrise\":1414824893,"
  39. "\"sunset\":1414859596},\"weather\":[{\"id\":802,\"main\":\"Clouds\","
  40. "\"description\":\"scattered "
  41. "clouds\",\"icon\":\"03d\"}],\"base\":\"cmc "
  42. "stations\",\"main\":{\"temp\":288.62,\"pressure\":1015,\"humidity\":"
  43. "87,\"temp_min\":287.15,\"temp_max\":290.15},\"wind\":{\"speed\":4.6,"
  44. "\"deg\":240},\"clouds\":{\"all\":40},\"dt\":1414825810,\"id\":2643743,"
  45. "\"name\":\"London\",\"cod\":200}"));