diff options
author | Minijackson <minijackson@riseup.net> | 2018-05-25 11:28:22 +0200 |
---|---|---|
committer | Minijackson <minijackson@riseup.net> | 2018-05-25 11:29:30 +0200 |
commit | 00717f6c8b8a9c6dbd56a80d685c5082fc03f6a5 (patch) | |
tree | eb0871b7518234c3db3e2d647b0b7c020253accb /tests/querytest.cpp | |
parent | c095e82143fd16c84263d990b96590b3b0d12a78 (diff) | |
download | sink-00717f6c8b8a9c6dbd56a80d685c5082fc03f6a5.tar.gz sink-00717f6c8b8a9c6dbd56a80d685c5082fc03f6a5.zip |
Implement range queries
Diffstat (limited to 'tests/querytest.cpp')
-rw-r--r-- | tests/querytest.cpp | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/tests/querytest.cpp b/tests/querytest.cpp index fa016a2..36b6e90 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp | |||
@@ -1510,6 +1510,113 @@ private slots: | |||
1510 | } | 1510 | } |
1511 | } | 1511 | } |
1512 | 1512 | ||
1513 | void mailsWithDates() | ||
1514 | { | ||
1515 | { | ||
1516 | Mail mail("sink.dummy.instance1"); | ||
1517 | mail.setExtractedDate(QDateTime::fromString("2018-05-23T13:49:41Z", Qt::ISODate)); | ||
1518 | mail.setExtractedMessageId("message1"); | ||
1519 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); | ||
1520 | } | ||
1521 | { | ||
1522 | Mail mail("sink.dummy.instance1"); | ||
1523 | mail.setExtractedDate(QDateTime::fromString("2018-05-23T13:50:00Z", Qt::ISODate)); | ||
1524 | mail.setExtractedMessageId("message2"); | ||
1525 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); | ||
1526 | } | ||
1527 | { | ||
1528 | Mail mail("sink.dummy.instance1"); | ||
1529 | mail.setExtractedDate(QDateTime::fromString("2018-05-27T13:50:00Z", Qt::ISODate)); | ||
1530 | mail.setExtractedMessageId("message3"); | ||
1531 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); | ||
1532 | } | ||
1533 | { | ||
1534 | Mail mail("sink.dummy.instance1"); | ||
1535 | mail.setExtractedMessageId("message4"); | ||
1536 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); | ||
1537 | } | ||
1538 | { | ||
1539 | Mail mail("sink.dummy.instance1"); | ||
1540 | mail.setExtractedDate(QDateTime::fromString("2078-05-23T13:49:41Z", Qt::ISODate)); | ||
1541 | mail.setExtractedMessageId("message5"); | ||
1542 | VERIFYEXEC(Sink::Store::create<Mail>(mail)); | ||
1543 | } | ||
1544 | VERIFYEXEC(Sink::ResourceControl::flushMessageQueue("sink.dummy.instance1")); | ||
1545 | } | ||
1546 | |||
1547 | void testMailDate() | ||
1548 | { | ||
1549 | mailsWithDates(); | ||
1550 | |||
1551 | { | ||
1552 | Sink::Query query; | ||
1553 | query.resourceFilter("sink.dummy.instance1"); | ||
1554 | query.filter<Mail::Date>(QDateTime::fromString("2018-05-23T13:49:41Z", Qt::ISODate)); | ||
1555 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1556 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1557 | QCOMPARE(model->rowCount(), 1); | ||
1558 | } | ||
1559 | |||
1560 | { | ||
1561 | Sink::Query query; | ||
1562 | query.resourceFilter("sink.dummy.instance1"); | ||
1563 | query.filter<Mail::Date>(QDateTime::fromString("2018-05-27T13:49:41Z", Qt::ISODate)); | ||
1564 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1565 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1566 | QCOMPARE(model->rowCount(), 0); | ||
1567 | } | ||
1568 | |||
1569 | { | ||
1570 | Sink::Query query; | ||
1571 | query.resourceFilter("sink.dummy.instance1"); | ||
1572 | query.filter<Mail::Date>(QDateTime::fromString("2018-05-27T13:50:00Z", Qt::ISODate)); | ||
1573 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1574 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1575 | QCOMPARE(model->rowCount(), 1); | ||
1576 | } | ||
1577 | |||
1578 | } | ||
1579 | |||
1580 | void testMailRange() | ||
1581 | { | ||
1582 | mailsWithDates(); | ||
1583 | |||
1584 | { | ||
1585 | Sink::Query query; | ||
1586 | query.resourceFilter("sink.dummy.instance1"); | ||
1587 | query.filter<Mail::Date>(QueryBase::Comparator(QVariantList{QDateTime::fromString("2018-05-23T13:49:41Z", Qt::ISODate), QDateTime::fromString("2018-05-23T13:49:41Z", Qt::ISODate)}, QueryBase::Comparator::Within)); | ||
1588 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1589 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1590 | QCOMPARE(model->rowCount(), 1); | ||
1591 | } | ||
1592 | |||
1593 | { | ||
1594 | Sink::Query query; | ||
1595 | query.resourceFilter("sink.dummy.instance1"); | ||
1596 | query.filter<Mail::Date>(QueryBase::Comparator(QVariantList{QDateTime::fromString("2018-05-22T13:49:41Z", Qt::ISODate), QDateTime::fromString("2018-05-25T13:49:41Z", Qt::ISODate)}, QueryBase::Comparator::Within)); | ||
1597 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1598 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1599 | QCOMPARE(model->rowCount(), 2); | ||
1600 | } | ||
1601 | |||
1602 | { | ||
1603 | Sink::Query query; | ||
1604 | query.resourceFilter("sink.dummy.instance1"); | ||
1605 | query.filter<Mail::Date>(QueryBase::Comparator(QVariantList{QDateTime::fromString("2018-05-22T13:49:41Z", Qt::ISODate), QDateTime::fromString("2018-05-30T13:49:41Z", Qt::ISODate)}, QueryBase::Comparator::Within)); | ||
1606 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1607 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1608 | QCOMPARE(model->rowCount(), 3); | ||
1609 | } | ||
1610 | |||
1611 | { | ||
1612 | Sink::Query query; | ||
1613 | query.resourceFilter("sink.dummy.instance1"); | ||
1614 | query.filter<Mail::Date>(QueryBase::Comparator(QVariantList{QDateTime::fromString("2018-05-22T13:49:41Z", Qt::ISODate), QDateTime::fromString("2118-05-30T13:49:41Z", Qt::ISODate)}, QueryBase::Comparator::Within)); | ||
1615 | auto model = Sink::Store::loadModel<Mail>(query); | ||
1616 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | ||
1617 | QCOMPARE(model->rowCount(), 4); | ||
1618 | } | ||
1619 | } | ||
1513 | }; | 1620 | }; |
1514 | 1621 | ||
1515 | QTEST_MAIN(QueryTest) | 1622 | QTEST_MAIN(QueryTest) |