forked from bblanchon/ArduinoJson
Added an integration test that uses prettyPrintTo()
This commit is contained in:
@ -11,27 +11,42 @@
|
|||||||
|
|
||||||
using namespace ArduinoJson;
|
using namespace ArduinoJson;
|
||||||
|
|
||||||
TEST(IntegrationTests, OpenWeatherMap) {
|
class IntegrationTests : public testing::TestWithParam<const char*> {
|
||||||
|
protected:
|
||||||
|
virtual void SetUp() {
|
||||||
|
_input = GetParam();
|
||||||
|
strcpy(inputBuffer, _input);
|
||||||
|
}
|
||||||
|
|
||||||
|
const char* _input;
|
||||||
|
char inputBuffer[2048];
|
||||||
|
char outputBuffer[2048];
|
||||||
|
char intermediateBuffer[2048];
|
||||||
StaticJsonBuffer<2048> json;
|
StaticJsonBuffer<2048> json;
|
||||||
const char* input =
|
};
|
||||||
|
|
||||||
|
TEST_P(IntegrationTests, ParseThenPrint) {
|
||||||
|
json.parseObject(inputBuffer).printTo(outputBuffer, sizeof(outputBuffer));
|
||||||
|
ASSERT_STREQ(_input, outputBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) {
|
||||||
|
json.parseObject(inputBuffer)
|
||||||
|
.prettyPrintTo(intermediateBuffer, sizeof(intermediateBuffer));
|
||||||
|
json.parseObject(intermediateBuffer)
|
||||||
|
.printTo(outputBuffer, sizeof(outputBuffer));
|
||||||
|
ASSERT_STREQ(_input, outputBuffer);
|
||||||
|
}
|
||||||
|
|
||||||
|
INSTANTIATE_TEST_CASE_P(
|
||||||
|
OpenWeatherMap, IntegrationTests,
|
||||||
|
testing::Values(
|
||||||
"{\"coord\":{\"lon\":-0.13,\"lat\":51.51},\"sys\":{\"type\":1,\"id\":"
|
"{\"coord\":{\"lon\":-0.13,\"lat\":51.51},\"sys\":{\"type\":1,\"id\":"
|
||||||
"5093,\"message\":0.1177,\"country\":\"GB\",\"sunrise\":1414824893,"
|
"5093,\"message\":0.1177,\"country\":\"GB\",\"sunrise\":1414824893,"
|
||||||
"\"sunset\":1414859596},\"weather\":[{\"id\":802,\"main\":\"Clouds\","
|
"\"sunset\":1414859596},\"weather\":[{\"id\":802,\"main\":\"Clouds\","
|
||||||
"\"description\":\"scattered clouds\",\"icon\":\"03d\"}],\"base\":\"cmc "
|
"\"description\":\"scattered "
|
||||||
"stations\",\"main\":{\"temp\":288.62,\"pressure\":1015,\"humidity\":87,"
|
"clouds\",\"icon\":\"03d\"}],\"base\":\"cmc "
|
||||||
"\"temp_min\":287.15,\"temp_max\":290.15},\"wind\":{\"speed\":4.6,"
|
"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,"
|
"\"deg\":240},\"clouds\":{\"all\":40},\"dt\":1414825810,\"id\":2643743,"
|
||||||
"\"name\":\"London\",\"cod\":200}";
|
"\"name\":\"London\",\"cod\":200}"));
|
||||||
|
|
||||||
char inputBuffer[1024];
|
|
||||||
|
|
||||||
strcpy(inputBuffer, input);
|
|
||||||
|
|
||||||
JsonObject& o1 = json.parseObject(inputBuffer);
|
|
||||||
|
|
||||||
char outputBuffer[1024];
|
|
||||||
|
|
||||||
o1.printTo(outputBuffer, sizeof(outputBuffer));
|
|
||||||
|
|
||||||
ASSERT_STREQ(input, outputBuffer);
|
|
||||||
}
|
|
Reference in New Issue
Block a user