mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-30 10:47:34 +02: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