| 170 | } |
| 171 | |
| 172 | void 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 | |
| 220 | void ObjectQueryTest::testSearch() |
| 221 | { |
nothing calls this directly
no test coverage detected