MCPcopy Create free account
hub / github.com/OpenOrienteering/mapper / testAndQuery

Method testAndQuery

test/object_query_t.cpp:172–218  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172void ObjectQueryTest::testAndQuery()
173{
174 auto object = testObject();
175
176 auto true_1 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("1"));
177 auto true_2 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("1"));
178 ObjectQuery single_query_and_both_true{std::move(true_1), ObjectQuery::OperatorAnd, std::move(true_2)};
179 QVERIFY(single_query_and_both_true(object) == true);
180
181 true_1 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("1"));
182 auto false_1 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("2"));
183 ObjectQuery single_query_and_left_true_right_false{std::move(true_1), ObjectQuery::OperatorAnd, std::move(false_1)};
184 QVERIFY(single_query_and_left_true_right_false(object) == false);
185
186 true_1 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("1"));
187 false_1 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("2"));
188 ObjectQuery single_query_and_right_true_left_false{std::move(false_1), ObjectQuery::OperatorAnd, std::move(true_1)};
189 QVERIFY(single_query_and_right_true_left_false(object) == false);
190
191 false_1 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("2"));
192 auto false_2 = ObjectQuery(QLatin1String("a"), ObjectQuery::OperatorIs, QLatin1String("2"));
193 ObjectQuery single_query_and_both_false{std::move(false_1), ObjectQuery::OperatorAnd, std::move(false_2)};
194 QVERIFY(single_query_and_both_false(object) == false);
195
196 auto query_and_invalid_1 = ObjectQuery(true_1, ObjectQuery::OperatorAnd, ObjectQuery());
197 QCOMPARE(query_and_invalid_1.getOperator(), ObjectQuery::OperatorInvalid);
198 QVERIFY(!query_and_invalid_1);
199
200 auto query_and_invalid_2 = ObjectQuery(query_and_invalid_1, ObjectQuery::OperatorAnd, true_2);
201 QCOMPARE(query_and_invalid_2.getOperator(), ObjectQuery::OperatorInvalid);
202 QVERIFY(!query_and_invalid_2);
203
204 auto query_copy_true = ObjectQuery(single_query_and_both_true);
205 QCOMPARE(query_copy_true.getOperator(), ObjectQuery::OperatorAnd);
206 QCOMPARE(query_copy_true, single_query_and_both_true);
207 QVERIFY(query_copy_true(object) == true);
208 QVERIFY(query_copy_true != single_query_and_left_true_right_false);
209
210 auto query_moved_false = std::move(single_query_and_right_true_left_false);
211 QCOMPARE(query_moved_false.getOperator(), ObjectQuery::OperatorAnd);
212 QCOMPARE(single_query_and_right_true_left_false.getOperator(), ObjectQuery::OperatorInvalid);
213 QVERIFY(query_moved_false(object) == false);
214
215 auto query_and_invalid_3 = ObjectQuery(std::move(query_and_invalid_1), ObjectQuery::OperatorAnd, std::move(true_2));
216 QCOMPARE(query_and_invalid_3.getOperator(), ObjectQuery::OperatorInvalid);
217 QVERIFY(!query_and_invalid_3);
218}
219
220void ObjectQueryTest::testSearch()
221{

Callers

nothing calls this directly

Calls 3

QLatin1StringClass · 0.85
getOperatorMethod · 0.80
ObjectQueryClass · 0.50

Tested by

no test coverage detected