@@ -10,7 +10,15 @@ void testStringification(DeserializationError error, std::string expected) {
10
10
}
11
11
12
12
57AE
void testBoolification (DeserializationError error, bool expected) {
13
+ // DeserializationError on left-hand side
13
14
CHECK (error == expected);
15
+ CHECK (error != !expected);
16
+ CHECK (!error == !expected);
17
+
18
+ // DeserializationError on right-hand side
19
+ CHECK (expected == error);
20
+ CHECK (!expected != error);
21
+ CHECK (!expected == !error);
14
22
}
15
23
16
24
#define TEST_STRINGIFICATION (symbol ) \
@@ -38,15 +46,92 @@ TEST_CASE("DeserializationError") {
38
46
TEST_BOOLIFICATION (NotSupported, true );
39
47
}
40
48
41
- SECTION (" ostream code " ) {
49
+ SECTION (" ostream DeserializationError " ) {
42
50
std::stringstream s;
43
51
s << DeserializationError (DeserializationError::InvalidInput);
44
52
REQUIRE (s.str () == " InvalidInput" );
45
53
}
46
54
47
- SECTION (" ostream code " ) {
55
+ SECTION (" ostream DeserializationError::Code " ) {
48
56
std::stringstream s;
49
57
s << DeserializationError::InvalidInput;
50
58
REQUIRE (s.str () == " InvalidInput" );
51
59
}
60
+
61
+ SECTION (" out of range" ) {
62
+ int code = 666 ;
63
+ DeserializationError err (
64
+ *reinterpret_cast <DeserializationError::Code*>(&code));
65
+ REQUIRE (err.c_str () == std::string (" ???" ));
66
+ }
67
+
68
+ SECTION (" switch" ) {
69
+ DeserializationError err = DeserializationError::InvalidInput;
70
+ switch (err.code ()) {
71
+ case DeserializationError::InvalidInput:
72
+ SUCCEED ();
73
+ break ;
74
+ default :
75
+ FAIL ();
76
+ break ;
77
+ }
78
+ }
79
+
80
+ SECTION (" Comparisons" ) {
81
+ DeserializationError invalidInput (DeserializationError::InvalidInput);
82
+ DeserializationError ok (DeserializationError::Ok);
83
+
84
+ SECTION (" DeserializationError == bool" ) {
85
+ REQUIRE (invalidInput == true );
86
+ REQUIRE (ok == false );
87
+ }
88
+
89
+ SECTION (" bool == DeserializationError" ) {
90
+ REQUIRE (true == invalidInput);
91
+ REQUIRE (false == ok);
92
+ }
93
+
94
+ SECTION (" DeserializationError != bool" ) {
95
+ REQUIRE (invalidInput != false );
96
+ REQUIRE (ok != true );
97
+ }
98
+
99
+ SECTION (" bool != DeserializationError" ) {
100
+ REQUIRE (false != invalidInput);
101
+ REQUIRE (true != ok);
102
+ }
103
+
104
+ SECTION (" Negations" ) {
105
+ REQUIRE (!invalidInput == false );
106
+ REQUIRE (!ok == true );
107
+ }
108
+
109
+ SECTION (" DeserializationError == Code" ) {
110
+ REQUIRE (invalidInput == DeserializationError::InvalidInput);
111
+ REQUIRE (ok == DeserializationError::Ok);
112
+ }
113
+
114
+ SECTION (" Code == DeserializationError" ) {
115
+ REQUIRE (DeserializationError::InvalidInput == invalidInput);
116
+ REQUIRE (DeserializationError::Ok == ok);
117
+ }
118
+
119
+ SECTION (" DeserializationError != Code" ) {
120
+ REQUIRE (invalidInput != DeserializationError::Ok);
121
+ REQUIRE (ok != DeserializationError::InvalidInput);
122
+ }
123
+
124
+ SECTION (" Code != DeserializationError" ) {
125
+ REQUIRE (DeserializationError::Ok != invalidInput);
126
+ REQUIRE (DeserializationError::InvalidInput != ok);
127
+ }
128
+
129
+ SECTION (" DeserializationError == DeserializationError" ) {
130
+ REQUIRE_FALSE (invalidInput == ok);
131
+ }
132
+
133
+ SECTION (" DeserializationError != DeserializationError" ) {
134
+ REQUIRE (invalidInput != ok);
135
+ }
136
+ }
52
137
}
0 commit comments