| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- // ArduinoJson - arduinojson.org
- // Copyright Benoit Blanchon 2014-2018
- // MIT License
- #include <ArduinoJson.h>
- #include <catch.hpp>
- void checkIsArray(JsonVariant var) {
- REQUIRE(var.is<JsonArray>());
- REQUIRE(var.is<JsonArray>());
- REQUIRE(var.is<const JsonArray>());
- REQUIRE(var.is<const JsonArray>());
- REQUIRE_FALSE(var.is<bool>());
- REQUIRE_FALSE(var.is<double>());
- REQUIRE_FALSE(var.is<float>());
- REQUIRE_FALSE(var.is<int>());
- REQUIRE_FALSE(var.is<long>());
- REQUIRE_FALSE(var.is<const char*>());
- REQUIRE_FALSE(var.is<JsonObject>());
- }
- void checkIsBool(JsonVariant var) {
- REQUIRE(var.is<bool>());
- REQUIRE_FALSE(var.is<double>());
- REQUIRE_FALSE(var.is<float>());
- REQUIRE_FALSE(var.is<int>());
- REQUIRE_FALSE(var.is<long>());
- REQUIRE_FALSE(var.is<const char*>());
- REQUIRE_FALSE(var.is<JsonArray>());
- REQUIRE_FALSE(var.is<JsonObject>());
- }
- void checkIsFloat(JsonVariant var) {
- REQUIRE(var.is<double>());
- REQUIRE(var.is<float>());
- REQUIRE_FALSE(var.is<bool>());
- REQUIRE_FALSE(var.is<int>());
- REQUIRE_FALSE(var.is<long>());
- REQUIRE_FALSE(var.is<const char*>());
- REQUIRE_FALSE(var.is<JsonArray>());
- REQUIRE_FALSE(var.is<JsonObject>());
- }
- void checkIsInteger(JsonVariant var) {
- REQUIRE(var.is<long>());
- REQUIRE(var.is<int>());
- REQUIRE(var.is<float>());
- REQUIRE(var.is<double>());
- REQUIRE_FALSE(var.is<bool>());
- REQUIRE_FALSE(var.is<const char*>());
- REQUIRE_FALSE(var.is<JsonArray>());
- REQUIRE_FALSE(var.is<JsonObject>());
- }
- void checkIsString(JsonVariant var) {
- REQUIRE(var.is<const char*>());
- REQUIRE_FALSE(var.is<bool>());
- REQUIRE_FALSE(var.is<int>());
- REQUIRE_FALSE(var.is<double>());
- REQUIRE_FALSE(var.is<float>());
- REQUIRE_FALSE(var.is<long>());
- REQUIRE_FALSE(var.is<JsonArray>());
- REQUIRE_FALSE(var.is<JsonObject>());
- }
- TEST_CASE("JsonVariant::is()") {
- SECTION("JsonArray") {
- DynamicJsonDocument doc;
- JsonArray array = doc.to<JsonArray>();
- checkIsArray(array);
- }
- SECTION("bool") {
- checkIsBool(true);
- checkIsBool(false);
- }
- SECTION("double") {
- checkIsFloat(4.2);
- }
- SECTION("int") {
- checkIsInteger(42);
- }
- SECTION("long") {
- checkIsInteger(42L);
- }
- SECTION("string") {
- checkIsString("42");
- }
- }
|