mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added JsonString::operator!=
This commit is contained in:
		| @@ -6,6 +6,7 @@ HEAD | |||||||
|  |  | ||||||
| * Added comparisons (`>`, `>=`, `==`, `!=`, `<`, and `<=`) between `JsonVariant`s | * Added comparisons (`>`, `>=`, `==`, `!=`, `<`, and `<=`) between `JsonVariant`s | ||||||
| * Added string deduplication (issue #1303) | * Added string deduplication (issue #1303) | ||||||
|  | * Added `JsonString::operator!=` | ||||||
| * Set `ARDUINOJSON_DECODE_UNICODE` to `1` by default | * Set `ARDUINOJSON_DECODE_UNICODE` to `1` by default | ||||||
| * Fixed `copyArray()` not working with `String`, `ElementProxy`, and `MemberProxy` | * Fixed `copyArray()` not working with `String`, `ElementProxy`, and `MemberProxy` | ||||||
| * Fixed error `getOrAddElement is not a member of ElementProxy` (issue #1311) | * Fixed error `getOrAddElement is not a member of ElementProxy` (issue #1311) | ||||||
|   | |||||||
| @@ -6,13 +6,14 @@ add_executable(MiscTests | |||||||
| 	arithmeticCompare.cpp | 	arithmeticCompare.cpp | ||||||
| 	conflicts.cpp | 	conflicts.cpp | ||||||
| 	FloatParts.cpp | 	FloatParts.cpp | ||||||
|  | 	JsonString.cpp | ||||||
| 	Readers.cpp | 	Readers.cpp | ||||||
| 	StringAdapters.cpp | 	StringAdapters.cpp | ||||||
| 	StringWriter.cpp | 	StringWriter.cpp | ||||||
| 	TypeTraits.cpp | 	TypeTraits.cpp | ||||||
| 	unsigned_char.cpp | 	unsigned_char.cpp | ||||||
| 	Utf8.cpp |  | ||||||
| 	Utf16.cpp | 	Utf16.cpp | ||||||
|  | 	Utf8.cpp | ||||||
| 	version.cpp | 	version.cpp | ||||||
| ) | ) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										60
									
								
								extras/tests/Misc/JsonString.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								extras/tests/Misc/JsonString.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,60 @@ | |||||||
|  | // ArduinoJson - arduinojson.org | ||||||
|  | // Copyright Benoit Blanchon 2014-2020 | ||||||
|  | // MIT License | ||||||
|  |  | ||||||
|  | #include <ArduinoJson.h> | ||||||
|  | #include <catch.hpp> | ||||||
|  |  | ||||||
|  | TEST_CASE("JsonString") { | ||||||
|  |   SECTION("Default constructor creates a null JsonString") { | ||||||
|  |     JsonString s; | ||||||
|  |  | ||||||
|  |     CHECK(s.isNull() == true); | ||||||
|  |     CHECK(s.c_str() == 0); | ||||||
|  |     CHECK(s.isStatic() == true); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare null with null") { | ||||||
|  |     JsonString a, b; | ||||||
|  |  | ||||||
|  |     CHECK(a == b); | ||||||
|  |     CHECK_FALSE(a != b); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare null with non-null") { | ||||||
|  |     JsonString a(0), b("hello"); | ||||||
|  |  | ||||||
|  |     CHECK_FALSE(a == b); | ||||||
|  |     CHECK(a != b); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare non-null with null") { | ||||||
|  |     JsonString a("hello"), b(0); | ||||||
|  |  | ||||||
|  |     CHECK_FALSE(a == b); | ||||||
|  |     CHECK(a != b); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare different strings") { | ||||||
|  |     JsonString a("hello"), b("world"); | ||||||
|  |  | ||||||
|  |     CHECK_FALSE(a == b); | ||||||
|  |     CHECK(a != b); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare identical by pointer") { | ||||||
|  |     JsonString a("hello"), b("hello"); | ||||||
|  |  | ||||||
|  |     CHECK(a == b); | ||||||
|  |     CHECK_FALSE(a != b); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   SECTION("Compare identical by value") { | ||||||
|  |     char s1[] = "hello"; | ||||||
|  |     char s2[] = "hello"; | ||||||
|  |     JsonString a(s1), b(s2); | ||||||
|  |  | ||||||
|  |     CHECK(a == b); | ||||||
|  |     CHECK_FALSE(a != b); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -38,6 +38,16 @@ class String { | |||||||
|     return strcmp(lhs._data, rhs._data) == 0; |     return strcmp(lhs._data, rhs._data) == 0; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   friend bool operator!=(String lhs, String rhs) { | ||||||
|  |     if (lhs._data == rhs._data) | ||||||
|  |       return false; | ||||||
|  |     if (!lhs._data) | ||||||
|  |       return true; | ||||||
|  |     if (!rhs._data) | ||||||
|  |       return true; | ||||||
|  |     return strcmp(lhs._data, rhs._data) != 0; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  private: |  private: | ||||||
|   const char* _data; |   const char* _data; | ||||||
|   bool _isStatic; |   bool _isStatic; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user