// ArduinoJson - https://arduinojson.org // Copyright © 2014-2024, Benoit BLANCHON // MIT License #include #include #include TEST_CASE("JsonString") { SECTION("Default constructor creates a null JsonString") { JsonString s; CHECK(s.isNull() == true); CHECK(s.c_str() == 0); CHECK(s.isLinked() == true); CHECK(s == JsonString()); CHECK(s != ""); } SECTION("Null converts to false") { JsonString s; CHECK(bool(s) == false); } SECTION("Empty string converts to true") { JsonString s(""); CHECK(bool(s) == true); } SECTION("Non-empty string converts to true") { JsonString s(""); CHECK(bool(s) == true); } SECTION("Null strings equals each others") { JsonString a, b; CHECK(a == b); CHECK_FALSE(a != b); } SECTION("Null and empty strings differ") { JsonString a, b(""); CHECK_FALSE(a == b); CHECK(a != b); CHECK_FALSE(b == a); CHECK(b != a); } SECTION("Null and non-empty strings differ") { JsonString a, b("hello"); CHECK_FALSE(a == b); CHECK(a != b); CHECK_FALSE(b == a); CHECK(b != a); } 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); } SECTION("std::stream") { std::stringstream ss; ss << JsonString("hello world!"); CHECK(ss.str() == "hello world!"); } SECTION("Construct with a size") { JsonString s("hello world", 5); CHECK(s.size() == 5); CHECK(s.isLinked() == true); CHECK(s == "hello"); CHECK(s != "hello world"); } }