diff options
Diffstat (limited to 'tests/genericfacadetest.cpp')
-rw-r--r-- | tests/genericfacadetest.cpp | 154 |
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 | */ | ||
23 | class GenericFacadeTest : public QObject | ||
24 | { | ||
25 | Q_OBJECT | ||
26 | private 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 | |||
153 | QTEST_MAIN(GenericFacadeTest) | ||
154 | #include "genericfacadetest.moc" | ||