Skip to content

Commit 67a512a

Browse files
committed
Clean up tests of adaptString()
1 parent 9cf4f38 commit 67a512a

File tree

1 file changed

+60
-35
lines changed

1 file changed

+60
-35
lines changed

extras/tests/Misc/StringAdapters.cpp

Lines changed: 60 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -12,77 +12,101 @@
1212
#include "custom_string.hpp"
1313
#include "weird_strcmp.hpp"
1414

15+
using ArduinoJson::JsonString;
1516
using 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

88112
struct 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

102127
TEST_CASE("stringCompare") {

0 commit comments

Comments
 (0)