diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-01 01:03:18 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2017-03-01 01:05:01 +0100 |
commit | c08c329580a6f5e5da1ebba931461e7e7e47ba72 (patch) | |
tree | a60e2c3c5d189d554bd69de600d96d024b49e864 /tests | |
parent | 4be4995e7b430226b763f06a051fd0e5cbf398ab (diff) | |
download | sink-c08c329580a6f5e5da1ebba931461e7e7e47ba72.tar.gz sink-c08c329580a6f5e5da1ebba931461e7e7e47ba72.zip |
Filter resources by the types they support.
This avoid uselessly querying resources only to discover that they don't
have a facade for the type.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/clientapitest.cpp | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/tests/clientapitest.cpp b/tests/clientapitest.cpp index ea72ae0..008b408 100644 --- a/tests/clientapitest.cpp +++ b/tests/clientapitest.cpp | |||
@@ -122,6 +122,18 @@ public: | |||
122 | class ClientAPITest : public QObject | 122 | class ClientAPITest : public QObject |
123 | { | 123 | { |
124 | Q_OBJECT | 124 | Q_OBJECT |
125 | |||
126 | template<typename T> | ||
127 | std::shared_ptr<TestDummyResourceFacade<T> > setupFacade(const QByteArray &identifier) | ||
128 | { | ||
129 | auto facade = TestDummyResourceFacade<T>::registerFacade(identifier); | ||
130 | ResourceConfig::addResource(identifier, "dummyresource"); | ||
131 | QMap<QByteArray, QVariant> config = ResourceConfig::getConfiguration(identifier); | ||
132 | config.insert(Sink::ApplicationDomain::SinkResource::Capabilities::name, QVariant::fromValue(QByteArrayList() << Sink::ApplicationDomain::getTypeName<T>())); | ||
133 | ResourceConfig::configureResource(identifier, config); | ||
134 | return facade; | ||
135 | } | ||
136 | |||
125 | private slots: | 137 | private slots: |
126 | 138 | ||
127 | void initTestCase() | 139 | void initTestCase() |
@@ -133,9 +145,8 @@ private slots: | |||
133 | 145 | ||
134 | void testLoad() | 146 | void testLoad() |
135 | { | 147 | { |
136 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade(); | 148 | auto facade = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
137 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 149 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
138 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
139 | 150 | ||
140 | Sink::Query query; | 151 | Sink::Query query; |
141 | query.resourceFilter("dummyresource.instance1"); | 152 | query.resourceFilter("dummyresource.instance1"); |
@@ -156,9 +167,8 @@ private slots: | |||
156 | 167 | ||
157 | void testModelSingle() | 168 | void testModelSingle() |
158 | { | 169 | { |
159 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 170 | auto facade = setupFacade<Sink::ApplicationDomain::Folder>("dummyresource.instance1"); |
160 | facade->results << QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 171 | facade->results << QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
161 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
162 | 172 | ||
163 | Sink::Query query; | 173 | Sink::Query query; |
164 | query.resourceFilter("dummyresource.instance1"); | 174 | query.resourceFilter("dummyresource.instance1"); |
@@ -169,12 +179,11 @@ private slots: | |||
169 | 179 | ||
170 | void testModelNested() | 180 | void testModelNested() |
171 | { | 181 | { |
172 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 182 | auto facade = setupFacade<Sink::ApplicationDomain::Folder>("dummyresource.instance1"); |
173 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 183 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
174 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 184 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
175 | subfolder->setParent("id"); | 185 | subfolder->setParent("id"); |
176 | facade->results << folder << subfolder; | 186 | facade->results << folder << subfolder; |
177 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
178 | 187 | ||
179 | // Test | 188 | // Test |
180 | Sink::Query query; | 189 | Sink::Query query; |
@@ -191,12 +200,11 @@ private slots: | |||
191 | 200 | ||
192 | void testModelSignals() | 201 | void testModelSignals() |
193 | { | 202 | { |
194 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 203 | auto facade = setupFacade<Sink::ApplicationDomain::Folder>("dummyresource.instance1"); |
195 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 204 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
196 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 205 | auto subfolder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
197 | subfolder->setParent("id"); | 206 | subfolder->setParent("id"); |
198 | facade->results << folder << subfolder; | 207 | facade->results << folder << subfolder; |
199 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
200 | 208 | ||
201 | // Test | 209 | // Test |
202 | Sink::Query query; | 210 | Sink::Query query; |
@@ -212,13 +220,12 @@ private slots: | |||
212 | 220 | ||
213 | void testModelNestedLive() | 221 | void testModelNestedLive() |
214 | { | 222 | { |
215 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 223 | auto facade = setupFacade<Sink::ApplicationDomain::Folder>("dummyresource.instance1"); |
216 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 224 | auto folder = QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
217 | auto subfolder = | 225 | auto subfolder = |
218 | QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 226 | QSharedPointer<Sink::ApplicationDomain::Folder>::create("dummyresource.instance1", "subId", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
219 | subfolder->setParent("id"); | 227 | subfolder->setParent("id"); |
220 | facade->results << folder << subfolder; | 228 | facade->results << folder << subfolder; |
221 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
222 | 229 | ||
223 | // Test | 230 | // Test |
224 | Sink::Query query; | 231 | Sink::Query query; |
@@ -266,12 +273,10 @@ private slots: | |||
266 | 273 | ||
267 | void testLoadMultiResource() | 274 | void testLoadMultiResource() |
268 | { | 275 | { |
269 | auto facade1 = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade("dummyresource.instance1"); | 276 | auto facade1 = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
270 | facade1->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource1", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 277 | facade1->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource1", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
271 | auto facade2 = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade("dummyresource.instance2"); | 278 | auto facade2 = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance2"); |
272 | facade2->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource2", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 279 | facade2->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource2", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
273 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
274 | ResourceConfig::addResource("dummyresource.instance2", "dummyresource"); | ||
275 | 280 | ||
276 | Sink::Query query; | 281 | Sink::Query query; |
277 | 282 | ||
@@ -291,9 +296,8 @@ private slots: | |||
291 | 296 | ||
292 | void testImperativeLoad() | 297 | void testImperativeLoad() |
293 | { | 298 | { |
294 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade(); | 299 | auto facade = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
295 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 300 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource", "id", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
296 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
297 | 301 | ||
298 | Sink::Query query; | 302 | Sink::Query query; |
299 | query.resourceFilter("dummyresource.instance1"); | 303 | query.resourceFilter("dummyresource.instance1"); |
@@ -309,16 +313,15 @@ private slots: | |||
309 | 313 | ||
310 | void testMultiresourceIncrementalLoad() | 314 | void testMultiresourceIncrementalLoad() |
311 | { | 315 | { |
312 | auto facade1 = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade("dummyresource.instance1"); | 316 | auto facade1 = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
313 | for (int i = 0; i < 4; i++) { | 317 | for (int i = 0; i < 4; i++) { |
314 | facade1->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource1", "id" + QByteArray::number(i), 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 318 | facade1->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource1", "id" + QByteArray::number(i), 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
315 | } | 319 | } |
316 | auto facade2 = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade("dummyresource.instance2"); | 320 | |
321 | auto facade2 = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance2"); | ||
317 | for (int i = 0; i < 6; i++) { | 322 | for (int i = 0; i < 6; i++) { |
318 | facade2->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource2", "id" + QByteArray::number(i), 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 323 | facade2->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("resource2", "id" + QByteArray::number(i), 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
319 | } | 324 | } |
320 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
321 | ResourceConfig::addResource("dummyresource.instance2", "dummyresource"); | ||
322 | 325 | ||
323 | Sink::Query query; | 326 | Sink::Query query; |
324 | query.limit(2); | 327 | query.limit(2); |
@@ -344,8 +347,7 @@ private slots: | |||
344 | 347 | ||
345 | void testCreateModifyDelete() | 348 | void testCreateModifyDelete() |
346 | { | 349 | { |
347 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade(); | 350 | auto facade = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
348 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
349 | 351 | ||
350 | auto event = Sink::ApplicationDomain::Event::createEntity<Sink::ApplicationDomain::Event>("dummyresource.instance1"); | 352 | auto event = Sink::ApplicationDomain::Event::createEntity<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
351 | Sink::Store::create(event).exec().waitForFinished(); | 353 | Sink::Store::create(event).exec().waitForFinished(); |
@@ -358,10 +360,9 @@ private slots: | |||
358 | } | 360 | } |
359 | void testMultiModify() | 361 | void testMultiModify() |
360 | { | 362 | { |
361 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Event>::registerFacade(); | 363 | auto facade = setupFacade<Sink::ApplicationDomain::Event>("dummyresource.instance1"); |
362 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("dummyresource.instance1", "id1", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 364 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("dummyresource.instance1", "id1", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
363 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("dummyresource.instance1", "id2", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 365 | facade->results << QSharedPointer<Sink::ApplicationDomain::Event>::create("dummyresource.instance1", "id2", 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
364 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
365 | 366 | ||
366 | Sink::Query query; | 367 | Sink::Query query; |
367 | query.resourceFilter("dummyresource.instance1"); | 368 | query.resourceFilter("dummyresource.instance1"); |
@@ -377,12 +378,11 @@ private slots: | |||
377 | 378 | ||
378 | void testModelStress() | 379 | void testModelStress() |
379 | { | 380 | { |
380 | auto facade = TestDummyResourceFacade<Sink::ApplicationDomain::Folder>::registerFacade(); | 381 | auto facade = setupFacade<Sink::ApplicationDomain::Folder>("dummyresource.instance1"); |
381 | facade->runAsync = true; | 382 | facade->runAsync = true; |
382 | for (int i = 0; i < 100; i++) { | 383 | for (int i = 0; i < 100; i++) { |
383 | facade->results << QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id" + QByteArray::number(i), 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); | 384 | facade->results << QSharedPointer<Sink::ApplicationDomain::Folder>::create("resource", "id" + QByteArray::number(i), 0, QSharedPointer<Sink::ApplicationDomain::MemoryBufferAdaptor>::create()); |
384 | } | 385 | } |
385 | ResourceConfig::addResource("dummyresource.instance1", "dummyresource"); | ||
386 | 386 | ||
387 | Sink::Query query; | 387 | Sink::Query query; |
388 | query.resourceFilter("dummyresource.instance1"); | 388 | query.resourceFilter("dummyresource.instance1"); |