forked from bblanchon/ArduinoJson
Changed unit testing framework from Google Test to Catch
This commit is contained in:
@ -7,8 +7,8 @@
|
||||
|
||||
add_executable(IntegrationTests
|
||||
gbathree.cpp
|
||||
parse_print.cpp
|
||||
round_trip.cpp
|
||||
)
|
||||
|
||||
target_link_libraries(IntegrationTests gtest)
|
||||
target_link_libraries(IntegrationTests catch)
|
||||
add_test(IntegrationTests IntegrationTests)
|
||||
|
@ -6,210 +6,206 @@
|
||||
// If you like this project, please add a star!
|
||||
|
||||
#include <ArduinoJson.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <catch.hpp>
|
||||
|
||||
class GbathreeBug : public testing::Test {
|
||||
public:
|
||||
GbathreeBug() : _object(_buffer.parseObject(getJson())) {}
|
||||
|
||||
protected:
|
||||
char _json[1024];
|
||||
TEST_CASE("Gbathree") {
|
||||
DynamicJsonBuffer _buffer;
|
||||
const JsonObject& _object;
|
||||
|
||||
private:
|
||||
char* getJson() {
|
||||
strcpy(_json,
|
||||
"{\"protocol_name\":\"fluorescence\",\"repeats\":1,\"wait\":0,"
|
||||
"\"averages\":1,\"measurements\":3,\"meas2_light\":15,\"meas1_"
|
||||
"baseline\":0,\"act_light\":20,\"pulsesize\":25,\"pulsedistance\":"
|
||||
"10000,\"actintensity1\":50,\"actintensity2\":255,\"measintensity\":"
|
||||
"255,\"calintensity\":255,\"pulses\":[50,50,50],\"act\":[2,1,2,2],"
|
||||
"\"red\":[2,2,2,2],\"detectors\":[[34,34,34,34],[34,34,34,34],[34,"
|
||||
"34,34,34],[34,34,34,34]],\"alta\":[2,2,2,2],\"altb\":[2,2,2,2],"
|
||||
"\"measlights\":[[15,15,15,15],[15,15,15,15],[15,15,15,15],[15,15,"
|
||||
"15,15]],\"measlights2\":[[15,15,15,15],[15,15,15,15],[15,15,15,15],"
|
||||
"[15,15,15,15]],\"altc\":[2,2,2,2],\"altd\":[2,2,2,2]}");
|
||||
return _json;
|
||||
const JsonObject& _object = _buffer.parseObject(
|
||||
"{\"protocol_name\":\"fluorescence\",\"repeats\":1,\"wait\":0,"
|
||||
"\"averages\":1,\"measurements\":3,\"meas2_light\":15,\"meas1_"
|
||||
"baseline\":0,\"act_light\":20,\"pulsesize\":25,\"pulsedistance\":"
|
||||
"10000,\"actintensity1\":50,\"actintensity2\":255,\"measintensity\":"
|
||||
"255,\"calintensity\":255,\"pulses\":[50,50,50],\"act\":[2,1,2,2],"
|
||||
"\"red\":[2,2,2,2],\"detectors\":[[34,34,34,34],[34,34,34,34],[34,"
|
||||
"34,34,34],[34,34,34,34]],\"alta\":[2,2,2,2],\"altb\":[2,2,2,2],"
|
||||
"\"measlights\":[[15,15,15,15],[15,15,15,15],[15,15,15,15],[15,15,"
|
||||
"15,15]],\"measlights2\":[[15,15,15,15],[15,15,15,15],[15,15,15,15],"
|
||||
"[15,15,15,15]],\"altc\":[2,2,2,2],\"altd\":[2,2,2,2]}");
|
||||
|
||||
SECTION("Success") {
|
||||
REQUIRE(_object.success());
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(GbathreeBug, Success) {
|
||||
EXPECT_TRUE(_object.success());
|
||||
}
|
||||
SECTION("ProtocolName") {
|
||||
REQUIRE("fluorescence" == _object["protocol_name"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, ProtocolName) {
|
||||
EXPECT_STREQ("fluorescence", _object["protocol_name"]);
|
||||
}
|
||||
SECTION("Repeats") {
|
||||
REQUIRE(1 == _object["repeats"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Repeats) {
|
||||
EXPECT_EQ(1, _object["repeats"]);
|
||||
}
|
||||
SECTION("Wait") {
|
||||
REQUIRE(0 == _object["wait"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Wait) {
|
||||
EXPECT_EQ(0, _object["wait"]);
|
||||
}
|
||||
SECTION("Measurements") {
|
||||
REQUIRE(3 == _object["measurements"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Measurements) {
|
||||
EXPECT_EQ(3, _object["measurements"]);
|
||||
}
|
||||
SECTION("Meas2_Light") {
|
||||
REQUIRE(15 == _object["meas2_light"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Meas2_Light) {
|
||||
EXPECT_EQ(15, _object["meas2_light"]);
|
||||
}
|
||||
SECTION("Meas1_Baseline") {
|
||||
REQUIRE(0 == _object["meas1_baseline"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Meas1_Baseline) {
|
||||
EXPECT_EQ(0, _object["meas1_baseline"]);
|
||||
}
|
||||
SECTION("Act_Light") {
|
||||
REQUIRE(20 == _object["act_light"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Act_Light) {
|
||||
EXPECT_EQ(20, _object["act_light"]);
|
||||
}
|
||||
SECTION("Pulsesize") {
|
||||
REQUIRE(25 == _object["pulsesize"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Pulsesize) {
|
||||
EXPECT_EQ(25, _object["pulsesize"]);
|
||||
}
|
||||
SECTION("Pulsedistance") {
|
||||
REQUIRE(10000 == _object["pulsedistance"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Pulsedistance) {
|
||||
EXPECT_EQ(10000, _object["pulsedistance"]);
|
||||
}
|
||||
SECTION("Actintensity1") {
|
||||
REQUIRE(50 == _object["actintensity1"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Actintensity1) {
|
||||
EXPECT_EQ(50, _object["actintensity1"]);
|
||||
}
|
||||
SECTION("Actintensity2") {
|
||||
REQUIRE(255 == _object["actintensity2"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Actintensity2) {
|
||||
EXPECT_EQ(255, _object["actintensity2"]);
|
||||
}
|
||||
SECTION("Measintensity") {
|
||||
REQUIRE(255 == _object["measintensity"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Measintensity) {
|
||||
EXPECT_EQ(255, _object["measintensity"]);
|
||||
}
|
||||
SECTION("Calintensity") {
|
||||
REQUIRE(255 == _object["calintensity"]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Calintensity) {
|
||||
EXPECT_EQ(255, _object["calintensity"]);
|
||||
}
|
||||
SECTION("Pulses") {
|
||||
// "pulses":[50,50,50]
|
||||
|
||||
TEST_F(GbathreeBug, Pulses) {
|
||||
// "pulses":[50,50,50]
|
||||
JsonArray& array = _object["pulses"];
|
||||
REQUIRE(array.success());
|
||||
|
||||
JsonArray& array = _object["pulses"];
|
||||
EXPECT_TRUE(array.success());
|
||||
REQUIRE(3 == array.size());
|
||||
|
||||
EXPECT_EQ(3, array.size());
|
||||
for (int i = 0; i < 3; i++) {
|
||||
REQUIRE(50 == array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < 3; i++) {
|
||||
EXPECT_EQ(50, array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Act) {
|
||||
// "act":[2,1,2,2]
|
||||
|
||||
JsonArray& array = _object["act"];
|
||||
EXPECT_TRUE(array.success());
|
||||
|
||||
EXPECT_EQ(4, array.size());
|
||||
EXPECT_EQ(2, array[0]);
|
||||
EXPECT_EQ(1, array[1]);
|
||||
EXPECT_EQ(2, array[2]);
|
||||
EXPECT_EQ(2, array[3]);
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Detectors) {
|
||||
// "detectors":[[34,34,34,34],[34,34,34,34],[34,34,34,34],[34,34,34,34]]
|
||||
|
||||
JsonArray& array = _object["detectors"];
|
||||
EXPECT_TRUE(array.success());
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
JsonArray& nestedArray = array[i];
|
||||
EXPECT_EQ(4, nestedArray.size());
|
||||
|
||||
for (int j = 0; j < 4; j++) EXPECT_EQ(34, nestedArray[j]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Alta) {
|
||||
// alta:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["alta"];
|
||||
EXPECT_TRUE(array.success());
|
||||
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
EXPECT_EQ(2, array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Altb) {
|
||||
// altb:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["altb"];
|
||||
EXPECT_TRUE(array.success());
|
||||
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
EXPECT_EQ(2, array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Measlights) {
|
||||
// "measlights":[[15,15,15,15],[15,15,15,15],[15,15,15,15],[15,15,15,15]]
|
||||
|
||||
JsonArray& array = _object["measlights"];
|
||||
EXPECT_TRUE(array.success());
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
JsonArray& nestedArray = array[i];
|
||||
|
||||
EXPECT_EQ(4, nestedArray.size());
|
||||
|
||||
for (int j = 0; j < 4; j++) EXPECT_EQ(15, nestedArray[j]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Measlights2) {
|
||||
// "measlights2":[[15,15,15,15],[15,15,15,15],[15,15,15,15],[15,15,15,15]]
|
||||
|
||||
JsonArray& array = _object["measlights2"];
|
||||
EXPECT_TRUE(array.success());
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
JsonArray& nestedArray = array[i];
|
||||
EXPECT_EQ(4, nestedArray.size());
|
||||
|
||||
for (int j = 0; j < 4; j++) EXPECT_EQ(15, nestedArray[j]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Altc) {
|
||||
// altc:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["altc"];
|
||||
EXPECT_TRUE(array.success());
|
||||
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
EXPECT_EQ(2, array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
TEST_F(GbathreeBug, Altd) {
|
||||
// altd:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["altd"];
|
||||
EXPECT_TRUE(array.success());
|
||||
|
||||
EXPECT_EQ(4, array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
EXPECT_EQ(2, array[i]);
|
||||
SECTION("Act") {
|
||||
// "act":[2,1,2,2]
|
||||
|
||||
JsonArray& array = _object["act"];
|
||||
REQUIRE(array.success());
|
||||
|
||||
REQUIRE(4 == array.size());
|
||||
REQUIRE(2 == array[0]);
|
||||
REQUIRE(1 == array[1]);
|
||||
REQUIRE(2 == array[2]);
|
||||
REQUIRE(2 == array[3]);
|
||||
}
|
||||
|
||||
SECTION("Detectors") {
|
||||
// "detectors":[[34,34,34,34],[34,34,34,34],[34,34,34,34],[34,34,34,34]]
|
||||
|
||||
JsonArray& array = _object["detectors"];
|
||||
REQUIRE(array.success());
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
JsonArray& nestedArray = array[i];
|
||||
REQUIRE(4 == nestedArray.size());
|
||||
|
||||
for (int j = 0; j < 4; j++) {
|
||||
REQUIRE(34 == nestedArray[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Alta") {
|
||||
// alta:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["alta"];
|
||||
REQUIRE(array.success());
|
||||
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
REQUIRE(2 == array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Altb") {
|
||||
// altb:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["altb"];
|
||||
REQUIRE(array.success());
|
||||
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
REQUIRE(2 == array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Measlights") {
|
||||
// "measlights":[[15,15,15,15],[15,15,15,15],[15,15,15,15],[15,15,15,15]]
|
||||
|
||||
JsonArray& array = _object["measlights"];
|
||||
REQUIRE(array.success());
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
JsonArray& nestedArray = array[i];
|
||||
|
||||
REQUIRE(4 == nestedArray.size());
|
||||
|
||||
for (int j = 0; j < 4; j++) {
|
||||
REQUIRE(15 == nestedArray[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Measlights2") {
|
||||
// "measlights2":[[15,15,15,15],[15,15,15,15],[15,15,15,15],[15,15,15,15]]
|
||||
|
||||
JsonArray& array = _object["measlights2"];
|
||||
REQUIRE(array.success());
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
JsonArray& nestedArray = array[i];
|
||||
REQUIRE(4 == nestedArray.size());
|
||||
|
||||
for (int j = 0; j < 4; j++) {
|
||||
REQUIRE(15 == nestedArray[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Altc") {
|
||||
// altc:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["altc"];
|
||||
REQUIRE(array.success());
|
||||
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
REQUIRE(2 == array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Altd") {
|
||||
// altd:[2,2,2,2]
|
||||
|
||||
JsonArray& array = _object["altd"];
|
||||
REQUIRE(array.success());
|
||||
|
||||
REQUIRE(4 == array.size());
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
REQUIRE(2 == array[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -6,47 +6,23 @@
|
||||
// If you like this project, please add a star!
|
||||
|
||||
#include <ArduinoJson.h>
|
||||
#include <gtest/gtest.h>
|
||||
#include <catch.hpp>
|
||||
|
||||
class IntegrationTests : public testing::TestWithParam<const char*> {
|
||||
static const size_t MAX_JSON_SIZE = 10000;
|
||||
void check(std::string originalJson) {
|
||||
DynamicJsonBuffer jb;
|
||||
|
||||
protected:
|
||||
virtual void SetUp() {
|
||||
_input = GetParam();
|
||||
strcpy(_inputBuffer, _input);
|
||||
}
|
||||
std::string prettyJson;
|
||||
jb.parseObject(originalJson).prettyPrintTo(prettyJson);
|
||||
|
||||
void parseThenPrint(char* input, char* output) {
|
||||
DynamicJsonBuffer buffer;
|
||||
buffer.parseObject(input).printTo(output, MAX_JSON_SIZE);
|
||||
}
|
||||
std::string finalJson;
|
||||
jb.parseObject(prettyJson).printTo(finalJson);
|
||||
|
||||
void parseThenPrettyPrint(char* input, char* output) {
|
||||
DynamicJsonBuffer buffer;
|
||||
buffer.parseObject(input).prettyPrintTo(output, MAX_JSON_SIZE);
|
||||
}
|
||||
|
||||
const char* _input;
|
||||
char _inputBuffer[MAX_JSON_SIZE];
|
||||
char _outputBuffer[MAX_JSON_SIZE];
|
||||
char _intermediateBuffer[MAX_JSON_SIZE];
|
||||
};
|
||||
|
||||
TEST_P(IntegrationTests, ParseThenPrint) {
|
||||
parseThenPrint(_inputBuffer, _outputBuffer);
|
||||
ASSERT_STREQ(_input, _outputBuffer);
|
||||
REQUIRE(originalJson == finalJson);
|
||||
}
|
||||
|
||||
TEST_P(IntegrationTests, ParseThenPrettyPrintThenParseThenPrint) {
|
||||
parseThenPrettyPrint(_inputBuffer, _intermediateBuffer);
|
||||
parseThenPrint(_intermediateBuffer, _outputBuffer);
|
||||
ASSERT_STREQ(_input, _outputBuffer);
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
OpenWeatherMap, IntegrationTests,
|
||||
testing::Values(
|
||||
TEST_CASE("Round Trip: parse -> prettyPrint -> parse -> print") {
|
||||
SECTION("OpenWeatherMap") {
|
||||
check(
|
||||
"{\"coord\":{\"lon\":145.77,\"lat\":-16.92},\"sys\":{\"type\":1,\"id\":"
|
||||
"8166,\"message\":0.1222,\"country\":\"AU\",\"sunrise\":1414784325,"
|
||||
"\"sunset\":1414830137},\"weather\":[{\"id\":801,\"main\":\"Clouds\","
|
||||
@ -54,11 +30,11 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"stations\",\"main\":{\"temp\":296.15,\"pressure\":1014,\"humidity\":"
|
||||
"83,\"temp_min\":296.15,\"temp_max\":296.15},\"wind\":{\"speed\":2.22,"
|
||||
"\"deg\":114.501},\"clouds\":{\"all\":20},\"dt\":1414846800,\"id\":"
|
||||
"2172797,\"name\":\"Cairns\",\"cod\":200}"));
|
||||
"2172797,\"name\":\"Cairns\",\"cod\":200}");
|
||||
}
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
YahooQueryLanguage, IntegrationTests,
|
||||
testing::Values(
|
||||
SECTION("YahooQueryLanguage") {
|
||||
check(
|
||||
"{\"query\":{\"count\":40,\"created\":\"2014-11-01T14:16:49Z\","
|
||||
"\"lang\":\"fr-FR\",\"results\":{\"item\":[{\"title\":\"Burkina army "
|
||||
"backs Zida as interim leader\"},{\"title\":\"British jets intercept "
|
||||
@ -102,4 +78,6 @@ INSTANTIATE_TEST_CASE_P(
|
||||
"release of Marine veteran\"},{\"title\":\"As election closes in, "
|
||||
"Obama on center stage\"},{\"title\":\"Body of Zambian president "
|
||||
"arrives home\"},{\"title\":\"South Africa arrests 2 Vietnamese for "
|
||||
"poaching\"}]}}}"));
|
||||
"poaching\"}]}}}");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user