forked from bblanchon/ArduinoJson
Added JsonVariant::success()
(issue #279)
This commit is contained in:
@ -1,6 +1,11 @@
|
|||||||
ArduinoJson: change log
|
ArduinoJson: change log
|
||||||
=======================
|
=======================
|
||||||
|
|
||||||
|
HEAD
|
||||||
|
----
|
||||||
|
|
||||||
|
* Added `JsonVariant::success()` (issue #279)
|
||||||
|
|
||||||
v5.4.0
|
v5.4.0
|
||||||
------
|
------
|
||||||
|
|
||||||
|
@ -256,6 +256,8 @@ class JsonVariant : public JsonVariantBase<JsonVariant> {
|
|||||||
return isObject();
|
return isObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool success() const { return _type != Internals::JSON_UNDEFINED; }
|
||||||
|
|
||||||
// Serialize the variant to a JsonWriter
|
// Serialize the variant to a JsonWriter
|
||||||
void writeTo(Internals::JsonWriter &writer) const;
|
void writeTo(Internals::JsonWriter &writer) const;
|
||||||
|
|
||||||
|
@ -29,6 +29,9 @@ class JsonParser_Variant_Test : public testing::Test {
|
|||||||
EXPECT_TRUE(_result.is<T>());
|
EXPECT_TRUE(_result.is<T>());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void resultMustBeInvalid() { EXPECT_FALSE(_result.success()); }
|
||||||
|
void resultMustBeValid() { EXPECT_TRUE(_result.success()); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DynamicJsonBuffer _jsonBuffer;
|
DynamicJsonBuffer _jsonBuffer;
|
||||||
JsonVariant _result;
|
JsonVariant _result;
|
||||||
@ -37,40 +40,52 @@ class JsonParser_Variant_Test : public testing::Test {
|
|||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, EmptyObject) {
|
TEST_F(JsonParser_Variant_Test, EmptyObject) {
|
||||||
whenInputIs("{}");
|
whenInputIs("{}");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<JsonObject>();
|
resultTypeMustBe<JsonObject>();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, EmptyArray) {
|
TEST_F(JsonParser_Variant_Test, EmptyArray) {
|
||||||
whenInputIs("[]");
|
whenInputIs("[]");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<JsonArray>();
|
resultTypeMustBe<JsonArray>();
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, Integer) {
|
TEST_F(JsonParser_Variant_Test, Integer) {
|
||||||
whenInputIs("42");
|
whenInputIs("42");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<int>();
|
resultTypeMustBe<int>();
|
||||||
resultMustEqual(42);
|
resultMustEqual(42);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, Double) {
|
TEST_F(JsonParser_Variant_Test, Double) {
|
||||||
whenInputIs("3.14");
|
whenInputIs("3.14");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<double>();
|
resultTypeMustBe<double>();
|
||||||
resultMustEqual(3.14);
|
resultMustEqual(3.14);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, String) {
|
TEST_F(JsonParser_Variant_Test, String) {
|
||||||
whenInputIs("\"hello world\"");
|
whenInputIs("\"hello world\"");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<char*>();
|
resultTypeMustBe<char*>();
|
||||||
resultMustEqual("hello world");
|
resultMustEqual("hello world");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, True) {
|
TEST_F(JsonParser_Variant_Test, True) {
|
||||||
whenInputIs("true");
|
whenInputIs("true");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<bool>();
|
resultTypeMustBe<bool>();
|
||||||
resultMustEqual(true);
|
resultMustEqual(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(JsonParser_Variant_Test, False) {
|
TEST_F(JsonParser_Variant_Test, False) {
|
||||||
whenInputIs("false");
|
whenInputIs("false");
|
||||||
|
resultMustBeValid();
|
||||||
resultTypeMustBe<bool>();
|
resultTypeMustBe<bool>();
|
||||||
resultMustEqual(false);
|
resultMustEqual(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(JsonParser_Variant_Test, Invalid) {
|
||||||
|
whenInputIs("{");
|
||||||
|
resultMustBeInvalid();
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user