diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-03-03 09:01:05 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-03-03 09:01:05 +0100 |
commit | 4d9746c828558c9f872e0aed52442863affb25d5 (patch) | |
tree | 507d7c2ba67f47d3cbbcf01a722236ff1b48426b /tests/clientapitest.cpp | |
parent | 9cea920b7dd51867a0be0fed2f461b6be73c103e (diff) | |
download | sink-4d9746c828558c9f872e0aed52442863affb25d5.tar.gz sink-4d9746c828558c9f872e0aed52442863affb25d5.zip |
Fromatted the whole codebase with clang-format.
clang-format -i */**{.cpp,.h}
Diffstat (limited to 'tests/clientapitest.cpp')
-rw-r--r-- | tests/clientapitest.cpp | 76 |
1 files changed, 40 insertions, 36 deletions
diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp index 879ffc4..172232f 100644 --- a/tests/clientapitest.cpp +++ b/tests/clientapitest.cpp | |||
@@ -13,34 +13,41 @@ template <typename T> | |||
13 | class DummyResourceFacade : public Sink::StoreFacade<T> | 13 | class DummyResourceFacade : public Sink::StoreFacade<T> |
14 | { | 14 | { |
15 | public: | 15 | public: |
16 | static std::shared_ptr<DummyResourceFacade<T> > registerFacade(const QByteArray &instanceIdentifier = QByteArray()) | 16 | static std::shared_ptr<DummyResourceFacade<T>> registerFacade(const QByteArray &instanceIdentifier = QByteArray()) |
17 | { | 17 | { |
18 | static QMap<QByteArray, std::shared_ptr<DummyResourceFacade<T> > > map; | 18 | static QMap<QByteArray, std::shared_ptr<DummyResourceFacade<T>>> map; |
19 | auto facade = std::make_shared<DummyResourceFacade<T> >(); | 19 | auto facade = std::make_shared<DummyResourceFacade<T>>(); |
20 | map.insert(instanceIdentifier, facade); | 20 | map.insert(instanceIdentifier, facade); |
21 | bool alwaysReturnFacade = instanceIdentifier.isEmpty(); | 21 | bool alwaysReturnFacade = instanceIdentifier.isEmpty(); |
22 | Sink::FacadeFactory::instance().registerFacade<T, DummyResourceFacade<T> >("dummyresource", | 22 | Sink::FacadeFactory::instance().registerFacade<T, DummyResourceFacade<T>>("dummyresource", [alwaysReturnFacade](const QByteArray &instanceIdentifier) { |
23 | [alwaysReturnFacade](const QByteArray &instanceIdentifier) { | 23 | if (alwaysReturnFacade) { |
24 | if (alwaysReturnFacade) { | 24 | return map.value(QByteArray()); |
25 | return map.value(QByteArray()); | ||
26 | } | ||
27 | return map.value(instanceIdentifier); | ||
28 | } | 25 | } |
29 | ); | 26 | return map.value(instanceIdentifier); |
27 | }); | ||
30 | return facade; | 28 | return facade; |
31 | } | 29 | } |
32 | ~DummyResourceFacade(){}; | 30 | ~DummyResourceFacade(){}; |
33 | KAsync::Job<void> create(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); }; | 31 | KAsync::Job<void> create(const T &domainObject) Q_DECL_OVERRIDE |
34 | KAsync::Job<void> modify(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); }; | 32 | { |
35 | KAsync::Job<void> remove(const T &domainObject) Q_DECL_OVERRIDE { return KAsync::null<void>(); }; | 33 | return KAsync::null<void>(); |
36 | QPair<KAsync::Job<void>, typename Sink::ResultEmitter<typename T::Ptr>::Ptr > load(const Sink::Query &query) Q_DECL_OVERRIDE | 34 | }; |
35 | KAsync::Job<void> modify(const T &domainObject) Q_DECL_OVERRIDE | ||
36 | { | ||
37 | return KAsync::null<void>(); | ||
38 | }; | ||
39 | KAsync::Job<void> remove(const T &domainObject) Q_DECL_OVERRIDE | ||
40 | { | ||
41 | return KAsync::null<void>(); | ||
42 | }; | ||
43 | QPair<KAsync::Job<void>, typename Sink::ResultEmitter<typename T::Ptr>::Ptr> load(const Sink::Query &query) Q_DECL_OVERRIDE | ||
37 | { | 44 | { |
38 | auto resultProvider = new Sink::ResultProvider<typename T::Ptr>(); | 45 | auto resultProvider = new Sink::ResultProvider<typename T::Ptr>(); |
39 | resultProvider->onDone([resultProvider]() { | 46 | resultProvider->onDone([resultProvider]() { |
40 | Trace() << "Result provider is done"; | 47 | Trace() << "Result provider is done"; |
41 | delete resultProvider; | 48 | delete resultProvider; |
42 | }); | 49 | }); |
43 | //We have to do it this way, otherwise we're not setting the fetcher right | 50 | // We have to do it this way, otherwise we're not setting the fetcher right |
44 | auto emitter = resultProvider->emitter(); | 51 | auto emitter = resultProvider->emitter(); |
45 | 52 | ||
46 | resultProvider->setFetcher([query, resultProvider, this](const typename T::Ptr &parent) { | 53 | resultProvider->setFetcher([query, resultProvider, this](const typename T::Ptr &parent) { |
@@ -60,8 +67,7 @@ public: | |||
60 | } | 67 | } |
61 | resultProvider->initialResultSetComplete(parent); | 68 | resultProvider->initialResultSetComplete(parent); |
62 | }); | 69 | }); |
63 | auto job = KAsync::start<void>([query, resultProvider]() { | 70 | auto job = KAsync::start<void>([query, resultProvider]() {}); |
64 | }); | ||
65 | mResultProvider = resultProvider; | 71 | mResultProvider = resultProvider; |
66 | return qMakePair(job, emitter); | 72 | return qMakePair(job, emitter); |
67 | } | 73 | } |
@@ -73,7 +79,7 @@ public: | |||
73 | 79 | ||
74 | /** | 80 | /** |
75 | * Test of the client api implementation. | 81 | * Test of the client api implementation. |
76 | * | 82 | * |
77 | * This test works with injected dummy facades and thus doesn't write to storage. | 83 | * This test works with injected dummy facades and thus doesn't write to storage. |
78 | */ | 84 | */ |
79 | class ClientAPITest : public QObject | 85 | class ClientAPITest : public QObject |
@@ -113,7 +119,7 @@ private slots: | |||
113 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 119 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
114 | } | 120 | } |
115 | 121 | ||
116 | //TODO: This test doesn't belong to this testsuite | 122 | // TODO: This test doesn't belong to this testsuite |
117 | void resourceManagement() | 123 | void resourceManagement() |
118 | { | 124 | { |
119 | ResourceConfig::clear(); | 125 | ResourceConfig::clear(); |
@@ -158,13 +164,13 @@ private slots: | |||
158 | void testModelNested() | 164 | void testModelNested() |
159 | { | 165 | { |
160 | auto facade = DummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 166 | auto facade = DummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); |
161 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 167 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
162 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 168 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
163 | subfolder->setProperty("parent", "id"); | 169 | subfolder->setProperty("parent", "id"); |
164 | facade->results << folder << subfolder; | 170 | facade->results << folder << subfolder; |
165 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | 171 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); |
166 | 172 | ||
167 | //Test | 173 | // Test |
168 | Sink::Query query; | 174 | Sink::Query query; |
169 | query.resources << "dummyresource.instance1"; | 175 | query.resources << "dummyresource.instance1"; |
170 | query.liveQuery = false; | 176 | query.liveQuery = false; |
@@ -181,13 +187,13 @@ private slots: | |||
181 | void testModelSignals() | 187 | void testModelSignals() |
182 | { | 188 | { |
183 | auto facade = DummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 189 | auto facade = DummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); |
184 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 190 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
185 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 191 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
186 | subfolder->setProperty("parent", "id"); | 192 | subfolder->setProperty("parent", "id"); |
187 | facade->results << folder << subfolder; | 193 | facade->results << folder << subfolder; |
188 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | 194 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); |
189 | 195 | ||
190 | //Test | 196 | // Test |
191 | Sink::Query query; | 197 | Sink::Query query; |
192 | query.resources << "dummyresource.instance1"; | 198 | query.resources << "dummyresource.instance1"; |
193 | query.liveQuery = false; | 199 | query.liveQuery = false; |
@@ -203,13 +209,14 @@ private slots: | |||
203 | void testModelNestedLive() | 209 | void testModelNestedLive() |
204 | { | 210 | { |
205 | auto facade = DummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 211 | auto facade = DummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); |
206 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 212 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
207 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 213 | auto subfolder = |
214 | QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | ||
208 | subfolder->setProperty("parent", "id"); | 215 | subfolder->setProperty("parent", "id"); |
209 | facade->results << folder << subfolder; | 216 | facade->results << folder << subfolder; |
210 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | 217 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); |
211 | 218 | ||
212 | //Test | 219 | // Test |
213 | Sink::Query query; | 220 | Sink::Query query; |
214 | query.resources << "dummyresource.instance1"; | 221 | query.resources << "dummyresource.instance1"; |
215 | query.liveQuery = true; | 222 | query.liveQuery = true; |
@@ -222,7 +229,7 @@ private slots: | |||
222 | 229 | ||
223 | auto resultProvider = facade->mResultProvider; | 230 | auto resultProvider = facade->mResultProvider; |
224 | 231 | ||
225 | //Test new toplevel folder | 232 | // Test new toplevel folder |
226 | { | 233 | { |
227 | QSignalSpy rowsInsertedSpy(model.data(), SIGNAL(rowsInserted(const QModelIndex &, int, int))); | 234 | QSignalSpy rowsInsertedSpy(model.data(), SIGNAL(rowsInserted(const QModelIndex &, int, int))); |
228 | auto folder2 = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id2", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 235 | auto folder2 = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id2", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
@@ -232,7 +239,7 @@ private slots: | |||
232 | QCOMPARE(rowsInsertedSpy.at(0).at(0).value<QModelIndex>(), QModelIndex()); | 239 | QCOMPARE(rowsInsertedSpy.at(0).at(0).value<QModelIndex>(), QModelIndex()); |
233 | } | 240 | } |
234 | 241 | ||
235 | //Test changed name | 242 | // Test changed name |
236 | { | 243 | { |
237 | QSignalSpy dataChanged(model.data(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &, const QVector<int> &))); | 244 | QSignalSpy dataChanged(model.data(), SIGNAL(dataChanged(const QModelIndex &, const QModelIndex &, const QVector<int> &))); |
238 | folder->setProperty("subject", "modifiedSubject"); | 245 | folder->setProperty("subject", "modifiedSubject"); |
@@ -241,7 +248,7 @@ private slots: | |||
241 | QTRY_COMPARE(dataChanged.count(), 1); | 248 | QTRY_COMPARE(dataChanged.count(), 1); |
242 | } | 249 | } |
243 | 250 | ||
244 | //Test removal | 251 | // Test removal |
245 | { | 252 | { |
246 | QSignalSpy rowsRemovedSpy(model.data(), SIGNAL(rowsRemoved(const QModelIndex &, int, int))); | 253 | QSignalSpy rowsRemovedSpy(model.data(), SIGNAL(rowsRemoved(const QModelIndex &, int, int))); |
247 | folder->setProperty("subject", "modifiedSubject"); | 254 | folder->setProperty("subject", "modifiedSubject"); |
@@ -250,7 +257,7 @@ private slots: | |||
250 | QTRY_COMPARE(rowsRemovedSpy.count(), 1); | 257 | QTRY_COMPARE(rowsRemovedSpy.count(), 1); |
251 | } | 258 | } |
252 | 259 | ||
253 | //TODO: A modification can also be a move | 260 | // TODO: A modification can also be a move |
254 | } | 261 | } |
255 | 262 | ||
256 | void testLoadMultiResource() | 263 | void testLoadMultiResource() |
@@ -274,7 +281,7 @@ private slots: | |||
274 | }); | 281 | }); |
275 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); | 282 | QTRY_VERIFY(model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()); |
276 | QCOMPARE(model->rowCount(QModelIndex()), 2); | 283 | QCOMPARE(model->rowCount(QModelIndex()), 2); |
277 | //Ensure children fetched is only emitted once (when all resources are done) | 284 | // Ensure children fetched is only emitted once (when all resources are done) |
278 | QTest::qWait(50); | 285 | QTest::qWait(50); |
279 | QCOMPARE(childrenFetchedCount, 1); | 286 | QCOMPARE(childrenFetchedCount, 1); |
280 | } | 287 | } |
@@ -291,15 +298,12 @@ private slots: | |||
291 | 298 | ||
292 | bool gotValue = false; | 299 | bool gotValue = false; |
293 | auto result = Sink::Store::fetchOne<Sink::ApplicationDomain::Event>(query) | 300 | auto result = Sink::Store::fetchOne<Sink::ApplicationDomain::Event>(query) |
294 | .then<void, Sink::ApplicationDomain::Event>([&gotValue](const Sink::ApplicationDomain::Event &event) { | 301 | .then<void, Sink::ApplicationDomain::Event>([&gotValue](const Sink::ApplicationDomain::Event &event) { gotValue = true; }) |
295 | gotValue = true; | 302 | .exec(); |
296 | }).exec(); | ||
297 | result.waitForFinished(); | 303 | result.waitForFinished(); |
298 | QVERIFY(!result.errorCode()); | 304 | QVERIFY(!result.errorCode()); |
299 | QVERIFY(gotValue); | 305 | QVERIFY(gotValue); |
300 | } | 306 | } |
301 | |||
302 | |||
303 | }; | 307 | }; |
304 | 308 | ||
305 | QTEST_MAIN(ClientAPITest) | 309 | QTEST_MAIN(ClientAPITest) |