From cd773e3f37651fa3cd598ef5458bb4824642bcf8 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Sat, 1 Nov 2014 13:45:07 +0100 Subject: [PATCH] Added an integration test that uses prettyPrintTo() --- test/IntegrationTests.cpp | 55 +++++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/test/IntegrationTests.cpp b/test/IntegrationTests.cpp index c2c6a02a..730f8073 100644 --- a/test/IntegrationTests.cpp +++ b/test/IntegrationTests.cpp @@ -11,27 +11,42 @@ using namespace ArduinoJson; -TEST(IntegrationTests, OpenWeatherMap) { +class IntegrationTests : public testing::TestWithParam { + protected: + virtual void SetUp() { + _input = GetParam(); + strcpy(inputBuffer, _input); + } + + const char* _input; + char inputBuffer[2048]; + char outputBuffer[2048]; + char intermediateBuffer[2048]; StaticJsonBuffer<2048> json; - const char* input = - "{\"coord\":{\"lon\":-0.13,\"lat\":51.51},\"sys\":{\"type\":1,\"id\":" - "5093,\"message\":0.1177,\"country\":\"GB\",\"sunrise\":1414824893," - "\"sunset\":1414859596},\"weather\":[{\"id\":802,\"main\":\"Clouds\"," - "\"description\":\"scattered clouds\",\"icon\":\"03d\"}],\"base\":\"cmc " - "stations\",\"main\":{\"temp\":288.62,\"pressure\":1015,\"humidity\":87," - "\"temp_min\":287.15,\"temp_max\":290.15},\"wind\":{\"speed\":4.6," - "\"deg\":240},\"clouds\":{\"all\":40},\"dt\":1414825810,\"id\":2643743," - "\"name\":\"London\",\"cod\":200}"; +}; - char inputBuffer[1024]; +TEST_P(IntegrationTests, ParseThenPrint) { + json.parseObject(inputBuffer).printTo(outputBuffer, sizeof(outputBuffer)); + ASSERT_STREQ(_input, outputBuffer); +} - strcpy(inputBuffer, input); +TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) { + json.parseObject(inputBuffer) + .prettyPrintTo(intermediateBuffer, sizeof(intermediateBuffer)); + json.parseObject(intermediateBuffer) + .printTo(outputBuffer, sizeof(outputBuffer)); + ASSERT_STREQ(_input, outputBuffer); +} - JsonObject& o1 = json.parseObject(inputBuffer); - - char outputBuffer[1024]; - - o1.printTo(outputBuffer, sizeof(outputBuffer)); - - ASSERT_STREQ(input, outputBuffer); -} \ No newline at end of file +INSTANTIATE_TEST_CASE_P( + OpenWeatherMap, IntegrationTests, + testing::Values( + "{\"coord\":{\"lon\":-0.13,\"lat\":51.51},\"sys\":{\"type\":1,\"id\":" + "5093,\"message\":0.1177,\"country\":\"GB\",\"sunrise\":1414824893," + "\"sunset\":1414859596},\"weather\":[{\"id\":802,\"main\":\"Clouds\"," + "\"description\":\"scattered " + "clouds\",\"icon\":\"03d\"}],\"base\":\"cmc " + "stations\",\"main\":{\"temp\":288.62,\"pressure\":1015,\"humidity\":" + "87,\"temp_min\":287.15,\"temp_max\":290.15},\"wind\":{\"speed\":4.6," + "\"deg\":240},\"clouds\":{\"all\":40},\"dt\":1414825810,\"id\":2643743," + "\"name\":\"London\",\"cod\":200}")); \ No newline at end of file