1414
1515using namespace ArduinoJson ::detail;
1616
17- TEST_CASE (" ZeroTerminatedRamString" ) {
18- SECTION (" null" ) {
19- ZeroTerminatedRamString s = adaptString (static_cast <const char *>(0 ));
17+ TEST_CASE (" String literal" ) {
18+ auto s = adaptString (" bravo" );
2019
21- CHECK (s.isNull () == true );
22- CHECK (s.size () == 0 );
23- }
20+ CHECK (s.isNull () == false );
21+ CHECK (s.size () == 5 );
22+ CHECK (s.isLinked () == true );
23+ }
2424
25- SECTION ( " non- null" ) {
26- ZeroTerminatedRamString s = adaptString (" bravo " );
25+ TEST_CASE ( " null const char* " ) {
26+ auto s = adaptString (static_cast < const char *>( 0 ) );
2727
28- CHECK (s.isNull () == false );
29- CHECK (s.size () == 5 );
30- }
28+ CHECK (s.isNull () == true );
29+ CHECK (s.size () == 0 );
30+ CHECK (s. isLinked () == false );
3131}
3232
33- TEST_CASE (" SizedRamString " ) {
34- SECTION ( " null " ) {
35- SizedRamString s = adaptString (static_cast < const char *>( 0 ), 10 );
33+ TEST_CASE (" const char* " ) {
34+ const char * p = " bravo " ;
35+ ZeroTerminatedRamString s = adaptString (p );
3636
37- CHECK (s.isNull () == true );
38- }
37+ CHECK (s.isNull () == false );
38+ CHECK (s.size () == 5 );
39+ CHECK (s.isLinked () == false );
40+ }
3941
40- SECTION (" non-null" ) {
41- SizedRamString s = adaptString (" bravo" , 5 );
42+ TEST_CASE (" char[]" ) {
43+ char p[] = " bravo" ;
44+ ZeroTerminatedRamString s = adaptString (p);
4245
43- CHECK (s.isNull () == false );
44- CHECK (s.size () == 5 );
45- }
46+ CHECK (s.isNull () == false );
47+ CHECK (s.size () == 5 );
48+ CHECK (s. isLinked () == false );
4649}
4750
48- TEST_CASE (" FlashString" ) {
49- SECTION (" null" ) {
50- FlashString s = adaptString (static_cast <const __FlashStringHelper*>(0 ));
51+ TEST_CASE (" null const char* + size" ) {
52+ auto s = adaptString (static_cast <const char *>(0 ), 10 );
5153
52- CHECK (s.isNull () == true );
53- CHECK (s.size () == 0 );
54- }
54+ CHECK (s.isNull () == true );
55+ CHECK (s.isLinked () == false );
56+ }
5557
56- SECTION ( " non-null " ) {
57- FlashString s = adaptString (F ( " bravo" ) );
58+ TEST_CASE ( " const char* + size " ) {
59+ auto s = adaptString (" bravo" , 5 );
5860
59- CHECK (s.isNull () == false );
60- CHECK (s.size () == 5 );
61- }
61+ CHECK (s.isNull () == false );
62+ CHECK (s.size () == 5 );
63+ CHECK (s.isLinked () == false );
64+ }
65+
66+ TEST_CASE (" null Flash string" ) {
67+ auto s = adaptString (static_cast <const __FlashStringHelper*>(0 ));
68+
69+ CHECK (s.isNull () == true );
70+ CHECK (s.size () == 0 );
71+ CHECK (s.isLinked () == false );
72+ }
73+
74+ TEST_CASE (" Flash string" ) {
75+ FlashString s = adaptString (F (" bravo" ));
76+
77+ CHECK (s.isNull () == false );
78+ CHECK (s.size () == 5 );
79+ CHECK (s.isLinked () == false );
6280}
6381
6482TEST_CASE (" std::string" ) {
6583 std::string orig (" bravo" );
66- SizedRamString s = adaptString (orig);
84+ auto s = adaptString (orig);
6785
6886 CHECK (s.isNull () == false );
6987 CHECK (s.size () == 5 );
7088}
7189
7290TEST_CASE (" Arduino String" ) {
7391 ::String orig (" bravo" );
74- SizedRamString s = adaptString (orig);
92+ auto s = adaptString (orig);
7593
7694 CHECK (s.isNull () == false );
7795 CHECK (s.size () == 5 );
7896}
7997
8098TEST_CASE (" custom_string" ) {
8199 custom_string orig (" bravo" );
82- SizedRamString s = adaptString (orig);
100+ auto s = adaptString (orig);
83101
84102 CHECK (s.isNull () == false );
85103 CHECK (s.size () == 5 );
@@ -88,17 +106,25 @@ TEST_CASE("custom_string") {
88106struct EmptyStruct {};
89107
90108TEST_CASE (" IsString<T>" ) {
109+ char charArray[8 ];
110+
91111 CHECK (IsString<std::string>::value == true );
92112 CHECK (IsString<std::basic_string<wchar_t >>::value == false );
93113 CHECK (IsString<custom_string>::value == true );
94114 CHECK (IsString<const __FlashStringHelper*>::value == true );
95115 CHECK (IsString<const char *>::value == true );
96- CHECK (IsString<const char [ 8 ] >::value == true );
116+ CHECK (IsString<decltype (charArray) >::value == true );
97117 CHECK (IsString<::String>::value == true );
98118 CHECK (IsString<::StringSumHelper>::value == true );
99119 CHECK (IsString<const EmptyStruct*>::value == false );
100120}
101121
122+ TEST_CASE (" IsStringLiteral" ) {
123+ CHECK (IsStringLiteral<const char *>::value == false );
124+ CHECK (IsStringLiteral<decltype (" toto" )>::value == true );
125+ CHECK (IsStringLiteral<char [8 ]>::value == false );
126+ }
127+
102128TEST_CASE (" stringCompare" ) {
103129 SECTION (" ZeroTerminatedRamString vs ZeroTerminatedRamString" ) {
104130 CHECK (stringCompare (adaptString (" bravo" ), adaptString (" alpha" )) > 0 );
0 commit comments