From f335a7506f691d10f5355feb705b5ade76c71362 Mon Sep 17 00:00:00 2001 From: Minijackson Date: Mon, 18 Jun 2018 12:32:35 +0200 Subject: Test overlap live queries --- tests/querytest.cpp | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'tests/querytest.cpp') diff --git a/tests/querytest.cpp b/tests/querytest.cpp index ca49021..b52ba96 100644 --- a/tests/querytest.cpp +++ b/tests/querytest.cpp @@ -1736,6 +1736,44 @@ private slots: } + void testOverlapLive() + { + eventsWithDates(); + + { + Sink::Query query; + query.resourceFilter("sink.dummy.instance1"); + query.setFlags(Query::LiveQuery); + query.filter(QueryBase::Comparator( + QVariantList{ QDateTime::fromString("2018-05-22T12:00:00Z", Qt::ISODate), + QDateTime::fromString("2018-05-30T13:00:00Z", Qt::ISODate) }, + QueryBase::Comparator::Overlap)); + auto model = Sink::Store::loadModel(query); + QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); + QCOMPARE(model->rowCount(), 5); + + Event event = Event::createEntity("sink.dummy.instance1"); + event.setExtractedStartTime(QDateTime::fromString("2018-05-23T12:00:00Z", Qt::ISODate)); + event.setExtractedEndTime(QDateTime::fromString("2018-05-23T13:00:00Z", Qt::ISODate)); + VERIFYEXEC(Sink::Store::create(event)); + + Event event2 = Event::createEntity("sink.dummy.instance1"); + event2.setExtractedStartTime(QDateTime::fromString("2018-05-33T12:00:00Z", Qt::ISODate)); + event2.setExtractedEndTime(QDateTime::fromString("2018-05-33T13:00:00Z", Qt::ISODate)); + VERIFYEXEC(Sink::Store::create(event2)); + + QTest::qWait(500); + QCOMPARE(model->rowCount(), 6); + + VERIFYEXEC(Sink::Store::remove(event)); + VERIFYEXEC(Sink::Store::remove(event2)); + + QTest::qWait(500); + QCOMPARE(model->rowCount(), 5); + } + + } + }; QTEST_MAIN(QueryTest) -- cgit v1.2.3