93
93
json_object_1["branch_u"] = Json::Value(3.);
94
94
EXPECT_TRUE(not_req_proc.HasUnknownBranches(json_object_1));
96
EXPECT_THROW(not_req_proc.JsonToCpp(json_object_1), Squeal);
96
EXPECT_THROW(not_req_proc.JsonToCpp(json_object_1), MAUS::Exception);
97
97
not_req_proc.SetThrowsIfUnknownBranches(false);
98
98
TestObject* cpp_object = NULL;
99
99
EXPECT_NO_THROW(cpp_object = not_req_proc.JsonToCpp(json_object_1));
105
105
TEST_F(ObjectProcessorTest, JsonToCppRequiredTest) {
106
106
Json::Value json_int(1);
107
107
// should throw if this is not an object at all
108
EXPECT_THROW(req_proc.JsonToCpp(json_int), Squeal);
108
EXPECT_THROW(req_proc.JsonToCpp(json_int), MAUS::Exception);
110
110
Json::Value json_object(Json::objectValue);
111
111
json_object["branch_a"] = Json::Value(1.);
124
124
json_object["branch_b"] = Json::Value();
125
125
json_object["branch_c"] = Json::Value("const");
126
126
json_object["branch_d"] = Json::Value("const");
127
EXPECT_THROW(req_proc.JsonToCpp(json_object), Squeal);
127
EXPECT_THROW(req_proc.JsonToCpp(json_object), MAUS::Exception);
129
129
// should throw if object is missing
130
130
Json::Value json_object_missing_a(Json::objectValue);
131
131
json_object_missing_a["branch_b"] = Json::Value(2.);
132
132
json_object_missing_a["branch_c"] = Json::Value("const");
133
133
json_object_missing_a["branch_d"] = Json::Value("const");
134
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_a), Squeal);
134
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_a), MAUS::Exception);
136
136
Json::Value json_object_missing_b(Json::objectValue);
137
137
json_object_missing_b["branch_a"] = Json::Value(2.);
138
138
json_object_missing_b["branch_c"] = Json::Value("const");
139
139
json_object_missing_b["branch_d"] = Json::Value("const");
140
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_b), Squeal);
140
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_b), MAUS::Exception);
142
142
Json::Value json_object_missing_c(Json::objectValue);
143
143
json_object_missing_c["branch_a"] = Json::Value(2.);
144
144
json_object_missing_c["branch_b"] = Json::Value(1.);
145
145
json_object_missing_c["branch_d"] = Json::Value("const");
146
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_c), Squeal);
146
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_c), MAUS::Exception);
148
148
Json::Value json_object_missing_d(Json::objectValue);
149
149
json_object_missing_d["branch_a"] = Json::Value(1.);
150
150
json_object_missing_d["branch_b"] = Json::Value();
151
151
json_object_missing_d["branch_c"] = Json::Value("const");
152
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_d), Squeal);
152
EXPECT_THROW(req_proc.JsonToCpp(json_object_missing_d), MAUS::Exception);
154
154
// should throw if object is present but can't be processed
155
155
json_object["branch_b"] = Json::Value("string");
156
EXPECT_THROW(req_proc.JsonToCpp(json_object), Squeal);
156
EXPECT_THROW(req_proc.JsonToCpp(json_object), MAUS::Exception);
158
158
json_object["branch_b"] = Json::Value(2.);
159
159
json_object["branch_a"] = Json::Value("string");
160
EXPECT_THROW(req_proc.JsonToCpp(json_object), Squeal);
160
EXPECT_THROW(req_proc.JsonToCpp(json_object), MAUS::Exception);
162
162
json_object["branch_c"] = Json::Value("not_const");
163
163
json_object["branch_a"] = Json::Value(2.);
164
EXPECT_THROW(req_proc.JsonToCpp(json_object), Squeal);
164
EXPECT_THROW(req_proc.JsonToCpp(json_object), MAUS::Exception);
167
167
TEST_F(ObjectProcessorTest, JsonToCppNotRequiredTest) {
185
185
// should throw if object is present but can't be processed
186
186
json_object["branch_b"] = Json::Value("string");
187
EXPECT_THROW(req_proc.JsonToCpp(json_object), Squeal);
187
EXPECT_THROW(req_proc.JsonToCpp(json_object), MAUS::Exception);
189
189
json_object["branch_b"] = Json::Value(2.);
190
190
json_object["branch_a"] = Json::Value("string");
191
EXPECT_THROW(not_req_proc.JsonToCpp(json_object), Squeal);
191
EXPECT_THROW(not_req_proc.JsonToCpp(json_object), MAUS::Exception);
193
193
json_object["branch_c"] = Json::Value("not_const");
194
194
json_object["branch_a"] = Json::Value(1.);
195
EXPECT_THROW(not_req_proc.JsonToCpp(json_object), Squeal);
195
EXPECT_THROW(not_req_proc.JsonToCpp(json_object), MAUS::Exception);
197
197
// should return NULL on nullValue
198
198
double* null_value = NULL;