mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added JsonDocument::containsKey() (issue #938)
				
					
				
			This commit is contained in:
		| @@ -9,6 +9,7 @@ HEAD | ||||
|    - `as<T>()` returns `0` if the integer `T` overflows | ||||
|    - `is<T>()` returns `false` if the integer `T` overflows | ||||
| * Added `BasicJsonDocument` to support custom allocator (issue #876) | ||||
| * Added `JsonDocument::containsKey()` (issue #938) | ||||
|  | ||||
| v6.9.1 (2019-03-01) | ||||
| ------ | ||||
|   | ||||
| @@ -124,6 +124,21 @@ class JsonDocument : public Visitable { | ||||
|     return getOrAddMember(key).template to<ObjectRef>(); | ||||
|   } | ||||
|  | ||||
|   // containsKey(char*) const | ||||
|   // containsKey(const char*) const | ||||
|   // containsKey(const __FlashStringHelper*) const | ||||
|   template <typename TChar> | ||||
|   bool containsKey(TChar* key) const { | ||||
|     return as<ObjectRef>().containsKey(key); | ||||
|   } | ||||
|  | ||||
|   // containsKey(const std::string&) const | ||||
|   // containsKey(const String&) const | ||||
|   template <typename TString> | ||||
|   bool containsKey(const TString& key) const { | ||||
|     return as<ObjectRef>().containsKey(key); | ||||
|   } | ||||
|  | ||||
|   // operator[](const std::string&) | ||||
|   // operator[](const String&) | ||||
|   template <typename TString> | ||||
|   | ||||
| @@ -5,6 +5,7 @@ | ||||
| add_executable(JsonDocumentTests | ||||
| 	add.cpp | ||||
| 	BasicJsonDocument.cpp | ||||
| 	containsKey.cpp | ||||
| 	createNested.cpp | ||||
| 	DynamicJsonDocument.cpp | ||||
| 	isNull.cpp | ||||
|   | ||||
							
								
								
									
										44
									
								
								test/JsonDocument/containsKey.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								test/JsonDocument/containsKey.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,44 @@ | ||||
| // ArduinoJson - arduinojson.org | ||||
| // Copyright Benoit Blanchon 2014-2019 | ||||
| // MIT License | ||||
|  | ||||
| #include <ArduinoJson.h> | ||||
| #include <catch.hpp> | ||||
|  | ||||
| TEST_CASE("JsonDocument::containsKey()") { | ||||
|   DynamicJsonDocument doc(4096); | ||||
|  | ||||
|   SECTION("returns true on object") { | ||||
|     doc["hello"] = "world"; | ||||
|  | ||||
|     REQUIRE(doc.containsKey("hello") == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("returns true when value is null") { | ||||
|     doc["hello"] = static_cast<const char*>(0); | ||||
|  | ||||
|     REQUIRE(doc.containsKey("hello") == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("returns true when key is a std::string") { | ||||
|     doc["hello"] = "world"; | ||||
|  | ||||
|     REQUIRE(doc.containsKey(std::string("hello")) == true); | ||||
|   } | ||||
|  | ||||
|   SECTION("returns false  on object") { | ||||
|     doc["world"] = "hello"; | ||||
|  | ||||
|     REQUIRE(doc.containsKey("hello") == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("returns false on array") { | ||||
|     doc.add("hello"); | ||||
|  | ||||
|     REQUIRE(doc.containsKey("hello") == false); | ||||
|   } | ||||
|  | ||||
|   SECTION("returns false on null") { | ||||
|     REQUIRE(doc.containsKey("hello") == false); | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user