1212#include " custom_string.hpp"
1313#include " weird_strcmp.hpp"
1414
15+ using ArduinoJson::JsonString;
1516using namespace ArduinoJson ::detail;
1617
17- TEST_CASE (" ZeroTerminatedRamString " ) {
18- SECTION (" null" ) {
19- ZeroTerminatedRamString s = adaptString (static_cast <const char *>(0 ));
18+ TEST_CASE (" adaptString() " ) {
19+ SECTION (" null const char* " ) {
20+ auto s = adaptString (static_cast <const char *>(0 ));
2021
2122 CHECK (s.isNull () == true );
2223 CHECK (s.size () == 0 );
24+ CHECK (s.isLinked () == true );
2325 }
2426
25- SECTION (" non-null" ) {
26- ZeroTerminatedRamString s = adaptString (" bravo" );
27+ SECTION (" non-null const char* " ) {
28+ auto s = adaptString (" bravo" );
2729
2830 CHECK (s.isNull () == false );
2931 CHECK (s.size () == 5 );
32+ CHECK (s.isLinked () == true );
3033 }
31- }
3234
33- TEST_CASE (" SizedRamString" ) {
34- SECTION (" null" ) {
35- SizedRamString s = adaptString (static_cast <const char *>(0 ), 10 );
35+ SECTION (" null const char* + size" ) {
36+ auto s = adaptString (static_cast <const char *>(0 ), 10 );
3637
3738 CHECK (s.isNull () == true );
39+ CHECK (s.isLinked () == false );
3840 }
3941
40- SECTION (" non-null" ) {
41- SizedRamString s = adaptString (" bravo" , 5 );
42+ SECTION (" non-null const char* + size " ) {
43+ auto s = adaptString (" bravo" , 5 );
4244
4345 CHECK (s.isNull () == false );
4446 CHECK (s.size () == 5 );
47+ CHECK (s.isLinked () == false );
4548 }
46- }
4749
48- TEST_CASE (" FlashString" ) {
49- SECTION (" null" ) {
50- FlashString s = adaptString (static_cast <const __FlashStringHelper*>(0 ));
50+ SECTION (" null Flash string" ) {
51+ auto s = adaptString (static_cast <const __FlashStringHelper*>(0 ));
5152
5253 CHECK (s.isNull () == true );
5354 CHECK (s.size () == 0 );
55+ CHECK (s.isLinked () == false );
5456 }
5557
56- SECTION (" non-null" ) {
57- FlashString s = adaptString (F (" bravo" ));
58+ SECTION (" non-null Flash string " ) {
59+ auto s = adaptString (F (" bravo" ));
5860
5961 CHECK (s.isNull () == false );
6062 CHECK (s.size () == 5 );
63+ CHECK (s.isLinked () == false );
6164 }
62- }
6365
64- TEST_CASE (" std::string" ) {
65- std::string orig (" bravo" );
66- SizedRamString s = adaptString (orig);
66+ SECTION (" std::string" ) {
67+ std::string orig (" bravo" );
68+ auto s = adaptString (orig);
6769
68- CHECK (s.isNull () == false );
69- CHECK (s.size () == 5 );
70- }
70+ CHECK (s.isNull () == false );
71+ CHECK (s.size () == 5 );
72+ CHECK (s.isLinked () == false );
73+ }
7174
72- TEST_CASE (" Arduino String" ) {
73- ::String orig (" bravo" );
74- SizedRamString s = adaptString (orig);
75+ SECTION (" Arduino String" ) {
76+ ::String orig (" bravo" );
77+ auto s = adaptString (orig);
7578
76- CHECK (s.isNull () == false );
77- CHECK (s.size () == 5 );
78- }
79+ CHECK (s.isNull () == false );
80+ CHECK (s.size () == 5 );
81+ CHECK (s.isLinked () == false );
82+ }
83+
84+ SECTION (" custom_string" ) {
85+ custom_string orig (" bravo" );
86+ auto s = adaptString (orig);
7987
80- TEST_CASE (" custom_string" ) {
81- custom_string orig (" bravo" );
82- SizedRamString s = adaptString (orig);
88+ CHECK (s.isNull () == false );
89+ CHECK (s.size () == 5 );
90+ CHECK (s.isLinked () == false );
91+ }
92+
93+ SECTION (" JsonString linked" ) {
94+ JsonString orig (" hello" , JsonString::Ownership::Linked);
95+ auto s = adaptString (orig);
96+
97+ CHECK (s.isNull () == false );
98+ CHECK (s.size () == 5 );
99+ CHECK (s.isLinked () == true );
100+ }
101+
102+ SECTION (" JsonString copied" ) {
103+ JsonString orig (" hello" , JsonString::Ownership::Copied);
104+ auto s = adaptString (orig);
83105
84- CHECK (s.isNull () == false );
85- CHECK (s.size () == 5 );
106+ CHECK (s.isNull () == false );
107+ CHECK (s.size () == 5 );
108+ CHECK (s.isLinked () == false );
109+ }
86110}
87111
88112struct EmptyStruct {};
@@ -97,6 +121,7 @@ TEST_CASE("IsString<T>") {
97121 CHECK (IsString<::String>::value == true );
98122 CHECK (IsString<::StringSumHelper>::value == true );
99123 CHECK (IsString<const EmptyStruct*>::value == false );
124+ CHECK (IsString<JsonString>::value == true );
100125}
101126
102127TEST_CASE (" stringCompare" ) {
0 commit comments