5 #include "custom_string.hpp"
6 #include "progmem_emulation.hpp"
7 #include "weird_strcmp.hpp"
9 #include <ArduinoJson/Strings/ArduinoStringAdapter.hpp>
10 #include <ArduinoJson/Strings/ConstRamStringAdapter.hpp>
11 #include <ArduinoJson/Strings/FlashStringAdapter.hpp>
12 #include <ArduinoJson/Strings/SizedRamStringAdapter.hpp>
13 #include <ArduinoJson/Strings/StdStringAdapter.hpp>
17 using namespace ARDUINOJSON_NAMESPACE;
19 TEST_CASE(
"ConstRamStringAdapter") {
23 CHECK(adapter.compare(
"bravo") < 0);
24 CHECK(adapter.compare(NULL) == 0);
26 CHECK(adapter.equals(NULL));
27 CHECK_FALSE(adapter.equals(
"charlie"));
29 CHECK(adapter.size() == 0);
35 CHECK(adapter.compare(NULL) > 0);
36 CHECK(adapter.compare(
"alpha") > 0);
37 CHECK(adapter.compare(
"bravo") == 0);
38 CHECK(adapter.compare(
"charlie") < 0);
40 CHECK(adapter.equals(
"bravo"));
41 CHECK_FALSE(adapter.equals(
"charlie"));
43 CHECK(adapter.size() == 5);
47 TEST_CASE(
"SizedRamStringAdapter") {
51 CHECK(adapter.compare(
"bravo") < 0);
52 CHECK(adapter.compare(NULL) == 0);
54 CHECK(adapter.equals(NULL));
55 CHECK_FALSE(adapter.equals(
"charlie"));
57 CHECK(adapter.size() == 10);
63 CHECK(adapter.compare(NULL) > 0);
64 CHECK(adapter.compare(
"alpha") > 0);
65 CHECK(adapter.compare(
"bravo") == 0);
66 CHECK(adapter.compare(
"charlie") < 0);
68 CHECK(adapter.equals(
"bravo"));
69 CHECK_FALSE(adapter.equals(
"charlie"));
71 CHECK(adapter.size() == 5);
75 TEST_CASE(
"FlashStringAdapter") {
79 CHECK(adapter.compare(
"bravo") < 0);
80 CHECK(adapter.compare(NULL) == 0);
82 CHECK(adapter.equals(NULL));
83 CHECK_FALSE(adapter.equals(
"charlie"));
85 CHECK(adapter.size() == 0);
91 CHECK(adapter.compare(NULL) > 0);
92 CHECK(adapter.compare(
"alpha") > 0);
93 CHECK(adapter.compare(
"bravo") == 0);
94 CHECK(adapter.compare(
"charlie") < 0);
96 CHECK(adapter.equals(
"bravo"));
97 CHECK_FALSE(adapter.equals(
"charlie"));
99 CHECK(adapter.size() == 5);
103 TEST_CASE(
"std::string") {
107 CHECK(adapter.compare(NULL) > 0);
108 CHECK(adapter.compare(
"alpha") > 0);
109 CHECK(adapter.compare(
"bravo") == 0);
110 CHECK(adapter.compare(
"charlie") < 0);
112 CHECK(adapter.equals(
"bravo"));
113 CHECK_FALSE(adapter.equals(
"charlie"));
115 CHECK(adapter.size() == 5);
118 TEST_CASE(
"Arduino String") {
122 CHECK(adapter.compare(NULL) > 0);
123 CHECK(adapter.compare(
"alpha") > 0);
124 CHECK(adapter.compare(
"bravo") == 0);
125 CHECK(adapter.compare(
"charlie") < 0);
127 CHECK(adapter.equals(
"bravo"));
128 CHECK_FALSE(adapter.equals(
"charlie"));
130 CHECK(adapter.size() == 5);
133 TEST_CASE(
"custom_string") {
134 custom_string str(
"bravo");
137 CHECK(adapter.compare(NULL) > 0);
138 CHECK(adapter.compare(
"alpha") > 0);
139 CHECK(adapter.compare(
"bravo") == 0);
140 CHECK(adapter.compare(
"charlie") < 0);
142 CHECK(adapter.equals(
"bravo"));
143 CHECK_FALSE(adapter.equals(
"charlie"));
145 CHECK(adapter.size() == 5);
148 TEST_CASE(
"IsString<T>") {
149 SECTION(
"std::string") {
153 SECTION(
"basic_string<wchar_t>") {
154 CHECK(
IsString<std::basic_string<wchar_t> >::value ==
false);
157 SECTION(
"custom_string") {
161 SECTION(
"const __FlashStringHelper*") {
165 SECTION(
"const char*") {
169 SECTION(
"const char[]") {