mirror of
				https://github.com/bblanchon/ArduinoJson.git
				synced 2025-11-04 00:21:36 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			104 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// ArduinoJson - https://arduinojson.org
 | 
						|
// Copyright © 2014-2023, Benoit BLANCHON
 | 
						|
// MIT License
 | 
						|
 | 
						|
#include <ArduinoJson.h>
 | 
						|
#include <catch.hpp>
 | 
						|
 | 
						|
#include <sstream>
 | 
						|
 | 
						|
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");
 | 
						|
  }
 | 
						|
}
 |