summaryrefslogtreecommitdiffstats
path: root/tests/genericfacadetest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/genericfacadetest.cpp')
-rw-r--r--tests/genericfacadetest.cpp154
1 files changed, 0 insertions, 154 deletions
diff --git a/tests/genericfacadetest.cpp b/tests/genericfacadetest.cpp
deleted file mode 100644
index 0267dac..0000000
--- a/tests/genericfacadetest.cpp
+++ /dev/null
@@ -1,154 +0,0 @@
1#include <QtTest>
2
3#include <QString>
4
5#include "testimplementations.h"
6
7#include <common/facade.h>
8#include <common/domainadaptor.h>
9#include <common/resultprovider.h>
10#include <common/synclistresult.h>
11#include <common/test.h>
12
13// Replace with something different
14#include "event_generated.h"
15
16
17/**
18 * Test for the generic facade implementation.
19 *
20 * This test doesn't use the actual storage and thus only tests the update logic of the facade.
21 * //FIXME this now uses the actual storage
22 */
23class GenericFacadeTest : public QObject
24{
25 Q_OBJECT
26private slots:
27 void initTestCase()
28 {
29 Sink::Test::initTest();
30 }
31
32 void testLoad()
33 {
34 Sink::Query query;
35 query.liveQuery = false;
36
37 auto resultSet = QSharedPointer<Sink::ResultProvider<Sink::ApplicationDomain::Event::Ptr>>::create();
38 auto resourceAccess = QSharedPointer<TestResourceAccess>::create();
39 // storage->mResults << Sink::ApplicationDomain::Event::Ptr::create();
40 TestResourceFacade facade("identifier", resourceAccess);
41
42 async::SyncListResult<Sink::ApplicationDomain::Event::Ptr> result(resultSet->emitter());
43
44 facade.load(query, *resultSet).exec().waitForFinished();
45 resultSet->initialResultSetComplete();
46
47 // We have to wait for the events that deliver the results to be processed by the eventloop
48 result.exec();
49
50 QCOMPARE(result.size(), 1);
51 }
52
53 void testLiveQuery()
54 {
55 Sink::Query query;
56 query.liveQuery = true;
57
58 auto resultSet = QSharedPointer<Sink::ResultProvider<Sink::ApplicationDomain::Event::Ptr>>::create();
59 auto resourceAccess = QSharedPointer<TestResourceAccess>::create();
60 // storage->mResults << Sink::ApplicationDomain::Event::Ptr::create();
61 TestResourceFacade facade("identifier", resourceAccess);
62
63 async::SyncListResult<Sink::ApplicationDomain::Event::Ptr> result(resultSet->emitter());
64
65 facade.load(query, *resultSet).exec().waitForFinished();
66 resultSet->initialResultSetComplete();
67
68 result.exec();
69 QCOMPARE(result.size(), 1);
70
71 // Enter a second result
72 // storage->mResults.clear();
73 // storage->mResults << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id2", 0, QSharedPointer<Sink::ApplicationDomain::BufferAdaptor>());
74 // storage->mLatestRevision = 2;
75 resourceAccess->emit revisionChanged(2);
76
77 // Hack to get event loop in synclistresult to abort again
78 resultSet->initialResultSetComplete();
79 result.exec();
80
81 QCOMPARE(result.size(), 2);
82 }
83
84 void testLiveQueryModify()
85 {
86 Sink::Query query;
87 query.liveQuery = true;
88
89 auto resultSet = QSharedPointer<Sink::ResultProvider<Sink::ApplicationDomain::Event::Ptr>>::create();
90 auto resourceAccess = QSharedPointer<TestResourceAccess>::create();
91 auto entity = QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id2", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create());
92 entity->setProperty("test", "test1");
93 // storage->mResults << entity;
94 TestResourceFacade facade("identifier", resourceAccess);
95
96 async::SyncListResult<Sink::ApplicationDomain::Event::Ptr> result(resultSet->emitter());
97
98 facade.load(query, *resultSet).exec().waitForFinished();
99 resultSet->initialResultSetComplete();
100
101 result.exec();
102 QCOMPARE(result.size(), 1);
103
104 // Modify the entity again
105 // storage->mResults.clear();
106 entity = QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id2", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create());
107 entity->setProperty("test", "test2");
108 // storage->mModifications << entity;
109 // storage->mLatestRevision = 2;
110 resourceAccess->emit revisionChanged(2);
111
112 // Hack to get event loop in synclistresult to abort again
113 resultSet->initialResultSetComplete();
114 result.exec();
115
116 QCOMPARE(result.size(), 1);
117 QCOMPARE(result.first()->getProperty("test").toByteArray(), QByteArray("test2"));
118 }
119
120 void testLiveQueryRemove()
121 {
122 Sink::Query query;
123 query.liveQuery = true;
124
125 auto resultSet = QSharedPointer<Sink::ResultProvider<Sink::ApplicationDomain::Event::Ptr>>::create();
126 auto resourceAccess = QSharedPointer<TestResourceAccess>::create();
127 auto entity = QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id2", 0, QSharedPointer<Sink::ApplicationDomain::BufferAdaptor>());
128 // storage->mResults << entity;
129 TestResourceFacade facade("identifier", resourceAccess);
130
131 async::SyncListResult<Sink::ApplicationDomain::Event::Ptr> result(resultSet->emitter());
132
133 facade.load(query, *resultSet).exec().waitForFinished();
134 resultSet->initialResultSetComplete();
135
136 result.exec();
137 QCOMPARE(result.size(), 1);
138
139 // Remove the entity again
140 // storage->mResults.clear();
141 // storage->mRemovals << entity;
142 // storage->mLatestRevision = 2;
143 resourceAccess->emit revisionChanged(2);
144
145 // Hack to get event loop in synclistresult to abort again
146 resultSet->initialResultSetComplete();
147 result.exec();
148
149 QCOMPARE(result.size(), 0);
150 }
151};
152
153QTEST_MAIN(GenericFacadeTest)
154#include "genericfacadetest.moc"