| 310 | |
| 311 | |
| 312 | void ObjectQueryTest::testToString() |
| 313 | { |
| 314 | auto q = ObjectQuery(ObjectQuery::OperatorSearch, QStringLiteral("1")); |
| 315 | QCOMPARE(q.toString(), QStringLiteral("\"1\"")); |
| 316 | |
| 317 | q = ObjectQuery(ObjectQuery::OperatorSearch, QStringLiteral("1\"\\x")); |
| 318 | QCOMPARE(q.toString(), QStringLiteral("\"1\\\"\\\\x\"")); |
| 319 | |
| 320 | q = ObjectQuery({ObjectQuery::OperatorSearch, QStringLiteral("1")}, |
| 321 | ObjectQuery::OperatorOr, |
| 322 | {ObjectQuery::OperatorSearch, QStringLiteral("2")}); |
| 323 | QCOMPARE(q.toString(), QStringLiteral("\"1\" OR \"2\"")); |
| 324 | |
| 325 | q = ObjectQuery({ObjectQuery::OperatorSearch, QStringLiteral("1")}, |
| 326 | ObjectQuery::OperatorOr, |
| 327 | {{ObjectQuery::OperatorSearch, QStringLiteral("2")}, |
| 328 | ObjectQuery::OperatorAnd, |
| 329 | {ObjectQuery::OperatorSearch, QStringLiteral("3")}}); |
| 330 | QCOMPARE(q.toString(), QStringLiteral("\"1\" OR \"2\" AND \"3\"")); |
| 331 | |
| 332 | q = ObjectQuery({ObjectQuery::OperatorSearch, QStringLiteral("1")}, |
| 333 | ObjectQuery::OperatorAnd, |
| 334 | {{ObjectQuery::OperatorSearch, QStringLiteral("2")}, |
| 335 | ObjectQuery::OperatorOr, |
| 336 | {ObjectQuery::OperatorSearch, QStringLiteral("3")}}); |
| 337 | QCOMPARE(q.toString(), QStringLiteral("\"1\" AND (\"2\" OR \"3\")")); |
| 338 | |
| 339 | q = ObjectQuery({QStringLiteral("Layer"), ObjectQuery::OperatorIs, QStringLiteral("1")}, |
| 340 | ObjectQuery::OperatorAnd, |
| 341 | {QStringLiteral("A B C"), ObjectQuery::OperatorIsNot, QStringLiteral("3")}); |
| 342 | QCOMPARE(q.toString(), QStringLiteral("Layer = \"1\" AND \"A B C\" != \"3\"")); |
| 343 | |
| 344 | q = ObjectQuery(static_cast<Symbol*>(nullptr)); |
| 345 | QCOMPARE(q.toString(), QStringLiteral("SYMBOL \"\"")); |
| 346 | |
| 347 | PointSymbol symbol_1; |
| 348 | symbol_1.setNumberComponent(0, 123); |
| 349 | q = ObjectQuery(static_cast<Symbol*>(&symbol_1)); |
| 350 | QCOMPARE(q.toString(), QStringLiteral("SYMBOL \"123\"")); |
| 351 | |
| 352 | q = ObjectQuery(ObjectQuery::negation({ObjectQuery::OperatorSearch, QStringLiteral("1")})); |
| 353 | QCOMPARE(q.toString(), QStringLiteral("NOT \"1\"")); |
| 354 | |
| 355 | q = ObjectQuery({ObjectQuery::OperatorSearch, QStringLiteral("1")}, |
| 356 | ObjectQuery::OperatorAnd, |
| 357 | ObjectQuery::negation({ObjectQuery::OperatorSearch, QStringLiteral("2")})); |
| 358 | QCOMPARE(q.toString(), QStringLiteral("\"1\" AND NOT \"2\"")); |
| 359 | |
| 360 | q = ObjectQuery({{ObjectQuery::OperatorSearch, QStringLiteral("1")}, |
| 361 | ObjectQuery::OperatorAnd, |
| 362 | ObjectQuery::negation({ObjectQuery::OperatorSearch, QStringLiteral("2")})}, |
| 363 | ObjectQuery::OperatorOr, |
| 364 | {ObjectQuery::OperatorSearch, QStringLiteral("3")}); |
| 365 | QCOMPARE(q.toString(), QStringLiteral("\"1\" AND NOT \"2\" OR \"3\"")); |
| 366 | |
| 367 | q = ObjectQuery(ObjectQuery::negation(ObjectQuery::negation({ObjectQuery::OperatorSearch, QStringLiteral("1")})), |
| 368 | ObjectQuery::OperatorAnd, |
| 369 | {ObjectQuery::OperatorSearch, QStringLiteral("3")}); |
nothing calls this directly
no test coverage detected