mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Simplified JsonVariant::as<T>() to always return T
				
					
				
			This commit is contained in:
		| @@ -60,7 +60,6 @@ TEST_CASE("JsonArray::operator[]") { | ||||
|  | ||||
|     array[0] = str; | ||||
|     REQUIRE(str == array[0].as<const char*>()); | ||||
|     REQUIRE(str == array[0].as<char*>());  // <- short hand | ||||
|     REQUIRE(true == array[0].is<const char*>()); | ||||
|     REQUIRE(false == array[0].is<int>()); | ||||
|   } | ||||
|   | ||||
| @@ -99,8 +99,8 @@ TEST_CASE("deserialize JSON array") { | ||||
|  | ||||
|       REQUIRE(err == DeserializationError::Ok); | ||||
|       REQUIRE(2 == arr.size()); | ||||
|       REQUIRE(arr[0].as<char*>() == 0); | ||||
|       REQUIRE(arr[1].as<char*>() == 0); | ||||
|       REQUIRE(arr[0].as<const char*>() == 0); | ||||
|       REQUIRE(arr[1].as<const char*>() == 0); | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   | ||||
| @@ -182,8 +182,8 @@ TEST_CASE("deserialize JSON object") { | ||||
|       REQUIRE(err == DeserializationError::Ok); | ||||
|       REQUIRE(doc.is<JsonObject>()); | ||||
|       REQUIRE(obj.size() == 2); | ||||
|       REQUIRE(obj["key1"].as<char*>() == 0); | ||||
|       REQUIRE(obj["key2"].as<char*>() == 0); | ||||
|       REQUIRE(obj["key1"].as<const char*>() == 0); | ||||
|       REQUIRE(obj["key2"].as<const char*>() == 0); | ||||
|     } | ||||
|  | ||||
|     SECTION("Array") { | ||||
|   | ||||
| @@ -48,7 +48,6 @@ TEST_CASE("JsonObject::operator[]") { | ||||
|     REQUIRE(true == obj["hello"].is<const char*>()); | ||||
|     REQUIRE(false == obj["hello"].is<long>()); | ||||
|     REQUIRE(std::string("h3110") == obj["hello"].as<const char*>()); | ||||
|     REQUIRE(std::string("h3110") == obj["hello"].as<char*>());  // <- short hand | ||||
|   } | ||||
|  | ||||
|   SECTION("array") { | ||||
| @@ -189,7 +188,7 @@ TEST_CASE("JsonObject::operator[]") { | ||||
|  | ||||
|     obj["hello"] = vla; | ||||
|  | ||||
|     REQUIRE(std::string("world") == obj["hello"].as<char*>()); | ||||
|     REQUIRE(std::string("world") == obj["hello"].as<const char*>()); | ||||
|   } | ||||
|  | ||||
|   SECTION("obj.set(VLA, str)") { | ||||
| @@ -209,7 +208,7 @@ TEST_CASE("JsonObject::operator[]") { | ||||
|  | ||||
|     obj["hello"].set(vla); | ||||
|  | ||||
|     REQUIRE(std::string("world") == obj["hello"].as<char*>()); | ||||
|     REQUIRE(std::string("world") == obj["hello"].as<const char*>()); | ||||
|   } | ||||
|  | ||||
|   SECTION("obj[VLA]") { | ||||
|   | ||||
| @@ -22,7 +22,7 @@ TEST_CASE("JsonVariant::as()") { | ||||
|     REQUIRE(false == variant.as<bool>()); | ||||
|     REQUIRE(0 == variant.as<int>()); | ||||
|     REQUIRE(0.0f == variant.as<float>()); | ||||
|     REQUIRE(0 == variant.as<char*>()); | ||||
|     REQUIRE(0 == variant.as<const char*>()); | ||||
|     REQUIRE("null" == variant.as<std::string>()); | ||||
|   } | ||||
|  | ||||
| @@ -104,7 +104,7 @@ TEST_CASE("JsonVariant::as()") { | ||||
|     REQUIRE(variant.as<bool>() == true); | ||||
|     REQUIRE(variant.as<long>() == 0L); | ||||
|     REQUIRE(variant.as<const char*>() == std::string("hello")); | ||||
|     REQUIRE(variant.as<char*>() == std::string("hello")); | ||||
|     REQUIRE(variant.as<const char*>() == std::string("hello")); | ||||
|     REQUIRE(variant.as<std::string>() == std::string("hello")); | ||||
|   } | ||||
|  | ||||
| @@ -114,7 +114,7 @@ TEST_CASE("JsonVariant::as()") { | ||||
|     REQUIRE(variant.as<bool>() == true); | ||||
|     REQUIRE(variant.as<long>() == 4L); | ||||
|     REQUIRE(variant.as<double>() == 4.2); | ||||
|     REQUIRE(variant.as<char*>() == std::string("4.2")); | ||||
|     REQUIRE(variant.as<const char*>() == std::string("4.2")); | ||||
|     REQUIRE(variant.as<std::string>() == std::string("4.2")); | ||||
|   } | ||||
|  | ||||
| @@ -211,8 +211,7 @@ TEST_CASE("JsonVariant::as()") { | ||||
|     REQUIRE(cvar.as<bool>() == true); | ||||
|     REQUIRE(cvar.as<long>() == 0L); | ||||
|     REQUIRE(cvar.as<const char*>() == std::string("hello")); | ||||
|     REQUIRE(cvar.as<char*>() == std::string("hello")); | ||||
|     // REQUIRE(cvar.as<std::string>() == std::string("hello")); | ||||
|     REQUIRE(cvar.as<std::string>() == std::string("hello")); | ||||
|   } | ||||
|  | ||||
|   SECTION("as<enum>()") { | ||||
|   | ||||
| @@ -17,8 +17,8 @@ TEST_CASE("JsonVariant undefined") { | ||||
|       REQUIRE(variant.as<unsigned>() == 0); | ||||
|     } | ||||
|  | ||||
|     SECTION("char*") { | ||||
|       REQUIRE(variant.as<char*>() == 0); | ||||
|     SECTION("const char*") { | ||||
|       REQUIRE(variant.as<const char*>() == 0); | ||||
|     } | ||||
|  | ||||
|     SECTION("double") { | ||||
|   | ||||
| @@ -19,7 +19,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 0") { | ||||
|       deserializeJson(doc, "[\"example\",\"example\"]"); | ||||
|  | ||||
|       CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 16); | ||||
|       CHECK(doc[0].as<char*>() != doc[1].as<char*>()); | ||||
|       CHECK(doc[0].as<const char*>() != doc[1].as<const char*>()); | ||||
|     } | ||||
|  | ||||
|     SECTION("Deduplicate keys") { | ||||
| @@ -42,7 +42,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 0") { | ||||
|         doc.add(std::string("example")); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 16); | ||||
|         CHECK(doc[0].as<char*>() != doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() != doc[1].as<const char*>()); | ||||
|       } | ||||
|  | ||||
|       SECTION("char*") { | ||||
| @@ -51,7 +51,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 0") { | ||||
|         doc.add(value); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 16); | ||||
|         CHECK(doc[0].as<char*>() != doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() != doc[1].as<const char*>()); | ||||
|       } | ||||
|  | ||||
|       SECTION("Arduino String") { | ||||
| @@ -59,7 +59,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 0") { | ||||
|         doc.add(String("example")); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 16); | ||||
|         CHECK(doc[0].as<char*>() != doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() != doc[1].as<const char*>()); | ||||
|       } | ||||
|  | ||||
|       SECTION("Flash string") { | ||||
| @@ -67,7 +67,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 0") { | ||||
|         doc.add(F("example")); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 16); | ||||
|         CHECK(doc[0].as<char*>() != doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() != doc[1].as<const char*>()); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -19,7 +19,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 1") { | ||||
|       deserializeJson(doc, "[\"example\",\"example\"]"); | ||||
|  | ||||
|       CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 8); | ||||
|       CHECK(doc[0].as<char*>() == doc[1].as<char*>()); | ||||
|       CHECK(doc[0].as<const char*>() == doc[1].as<const char*>()); | ||||
|     } | ||||
|  | ||||
|     SECTION("Deduplicate keys") { | ||||
| @@ -41,7 +41,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 1") { | ||||
|         doc.add(std::string("example")); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 8); | ||||
|         CHECK(doc[0].as<char*>() == doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() == doc[1].as<const char*>()); | ||||
|       } | ||||
|  | ||||
|       SECTION("char*") { | ||||
| @@ -50,7 +50,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 1") { | ||||
|         doc.add(value); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 8); | ||||
|         CHECK(doc[0].as<char*>() == doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() == doc[1].as<const char*>()); | ||||
|       } | ||||
|  | ||||
|       SECTION("Arduino String") { | ||||
| @@ -58,7 +58,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 1") { | ||||
|         doc.add(String("example")); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 8); | ||||
|         CHECK(doc[0].as<char*>() == doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() == doc[1].as<const char*>()); | ||||
|       } | ||||
|  | ||||
|       SECTION("Flash string") { | ||||
| @@ -66,7 +66,7 @@ TEST_CASE("ARDUINOJSON_ENABLE_STRING_DEDUPLICATION = 1") { | ||||
|         doc.add(F("example")); | ||||
|  | ||||
|         CHECK(doc.memoryUsage() == JSON_ARRAY_SIZE(2) + 8); | ||||
|         CHECK(doc[0].as<char*>() == doc[1].as<char*>()); | ||||
|         CHECK(doc[0].as<const char*>() == doc[1].as<const char*>()); | ||||
|       } | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user