summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tests/CMakeLists.txt1
-rw-r--r--tests/dummyresourcetest.cpp53
-rw-r--r--tests/genericresourcetest.cpp107
3 files changed, 108 insertions, 53 deletions
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 35b3996..eb4d606 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -39,6 +39,7 @@ auto_tests (
39 domainadaptortest 39 domainadaptortest
40 messagequeuetest 40 messagequeuetest
41 indextest 41 indextest
42 genericresourcetest
42) 43)
43 44
44target_link_libraries(dummyresourcetest akonadi2_resource_dummy) 45target_link_libraries(dummyresourcetest akonadi2_resource_dummy)
diff --git a/tests/dummyresourcetest.cpp b/tests/dummyresourcetest.cpp
index ab2ca78..10cd7e3 100644
--- a/tests/dummyresourcetest.cpp
+++ b/tests/dummyresourcetest.cpp
@@ -52,59 +52,6 @@ private Q_SLOTS:
52 qDebug(); 52 qDebug();
53 } 53 }
54 54
55 void testProcessCommand()
56 {
57 flatbuffers::FlatBufferBuilder eventFbb;
58 eventFbb.Clear();
59 {
60 auto summary = eventFbb.CreateString("summary");
61 Akonadi2::ApplicationDomain::Buffer::EventBuilder eventBuilder(eventFbb);
62 eventBuilder.add_summary(summary);
63 auto eventLocation = eventBuilder.Finish();
64 Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(eventFbb, eventLocation);
65 }
66
67 flatbuffers::FlatBufferBuilder localFbb;
68 {
69 auto uid = localFbb.CreateString("testuid");
70 auto localBuilder = Akonadi2::ApplicationDomain::Buffer::EventBuilder(localFbb);
71 localBuilder.add_uid(uid);
72 auto location = localBuilder.Finish();
73 Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(localFbb, location);
74 }
75
76 flatbuffers::FlatBufferBuilder entityFbb;
77 Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, eventFbb.GetBufferPointer(), eventFbb.GetSize(), localFbb.GetBufferPointer(), localFbb.GetSize());
78
79 flatbuffers::FlatBufferBuilder fbb;
80 auto type = fbb.CreateString(Akonadi2::ApplicationDomain::getTypeName<Akonadi2::ApplicationDomain::Event>().toStdString().data());
81 auto delta = fbb.CreateVector<uint8_t>(entityFbb.GetBufferPointer(), entityFbb.GetSize());
82 Akonadi2::Commands::CreateEntityBuilder builder(fbb);
83 builder.add_domainType(type);
84 builder.add_delta(delta);
85 auto location = builder.Finish();
86 Akonadi2::Commands::FinishCreateEntityBuffer(fbb, location);
87
88 const QByteArray command(reinterpret_cast<const char *>(fbb.GetBufferPointer()), fbb.GetSize());
89 {
90 flatbuffers::Verifier verifyer(reinterpret_cast<const uint8_t *>(command.data()), command.size());
91 QVERIFY(Akonadi2::Commands::VerifyCreateEntityBuffer(verifyer));
92 }
93
94 //Actual test
95 Akonadi2::Pipeline pipeline("org.kde.dummy.instance1");
96 QSignalSpy revisionSpy(&pipeline, SIGNAL(revisionUpdated()));
97 DummyResource resource("org.kde.dummy.instance1");
98 resource.configurePipeline(&pipeline);
99 resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline);
100 resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline);
101
102 QVERIFY(revisionSpy.isValid());
103 QTRY_COMPARE(revisionSpy.count(), 2);
104 QTest::qWait(100);
105 QCOMPARE(revisionSpy.count(), 2);
106 }
107
108 void testProperty() 55 void testProperty()
109 { 56 {
110 Akonadi2::ApplicationDomain::Event event; 57 Akonadi2::ApplicationDomain::Event event;
diff --git a/tests/genericresourcetest.cpp b/tests/genericresourcetest.cpp
new file mode 100644
index 0000000..57fa458
--- /dev/null
+++ b/tests/genericresourcetest.cpp
@@ -0,0 +1,107 @@
1#include <QtTest>
2
3#include <QString>
4
5#include "event_generated.h"
6#include "entity_generated.h"
7#include "metadata_generated.h"
8#include "createentity_generated.h"
9#include "commands.h"
10#include "entitybuffer.h"
11#include "pipeline.h"
12#include "genericresource.h"
13
14class TestResource : public Akonadi2::GenericResource
15{
16public:
17 TestResource(const QByteArray &instanceIdentifier)
18 : Akonadi2::GenericResource(instanceIdentifier)
19 {
20 }
21
22 KAsync::Job<void> synchronizeWithSource(Akonadi2::Pipeline *pipeline) Q_DECL_OVERRIDE
23 {
24 return KAsync::null<void>();
25 }
26
27 void configurePipeline(Akonadi2::Pipeline *pipeline) Q_DECL_OVERRIDE
28 {
29 GenericResource::configurePipeline(pipeline);
30 }
31};
32
33
34static void removeFromDisk(const QString &name)
35{
36 Akonadi2::Storage store(Akonadi2::Store::storageLocation(), name, Akonadi2::Storage::ReadWrite);
37 store.removeFromDisk();
38}
39
40class GenericResourceTest : public QObject
41{
42 Q_OBJECT
43private Q_SLOTS:
44
45 void init()
46 {
47 qDebug();
48 qDebug() << "-----------------------------------------";
49 qDebug();
50 }
51
52 void testProcessCommand()
53 {
54 flatbuffers::FlatBufferBuilder eventFbb;
55 eventFbb.Clear();
56 {
57 auto summary = eventFbb.CreateString("summary");
58 Akonadi2::ApplicationDomain::Buffer::EventBuilder eventBuilder(eventFbb);
59 eventBuilder.add_summary(summary);
60 auto eventLocation = eventBuilder.Finish();
61 Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(eventFbb, eventLocation);
62 }
63
64 flatbuffers::FlatBufferBuilder localFbb;
65 {
66 auto uid = localFbb.CreateString("testuid");
67 auto localBuilder = Akonadi2::ApplicationDomain::Buffer::EventBuilder(localFbb);
68 localBuilder.add_uid(uid);
69 auto location = localBuilder.Finish();
70 Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(localFbb, location);
71 }
72
73 flatbuffers::FlatBufferBuilder entityFbb;
74 Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, eventFbb.GetBufferPointer(), eventFbb.GetSize(), localFbb.GetBufferPointer(), localFbb.GetSize());
75
76 flatbuffers::FlatBufferBuilder fbb;
77 auto type = fbb.CreateString(Akonadi2::ApplicationDomain::getTypeName<Akonadi2::ApplicationDomain::Event>().toStdString().data());
78 auto delta = fbb.CreateVector<uint8_t>(entityFbb.GetBufferPointer(), entityFbb.GetSize());
79 Akonadi2::Commands::CreateEntityBuilder builder(fbb);
80 builder.add_domainType(type);
81 builder.add_delta(delta);
82 auto location = builder.Finish();
83 Akonadi2::Commands::FinishCreateEntityBuffer(fbb, location);
84
85 const QByteArray command(reinterpret_cast<const char *>(fbb.GetBufferPointer()), fbb.GetSize());
86 {
87 flatbuffers::Verifier verifyer(reinterpret_cast<const uint8_t *>(command.data()), command.size());
88 QVERIFY(Akonadi2::Commands::VerifyCreateEntityBuffer(verifyer));
89 }
90
91 //Actual test
92 Akonadi2::Pipeline pipeline("org.kde.test.instance1");
93 QSignalSpy revisionSpy(&pipeline, SIGNAL(revisionUpdated()));
94 TestResource resource("org.kde.test.instance1");
95 resource.configurePipeline(&pipeline);
96 resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline);
97 resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline);
98
99 QVERIFY(revisionSpy.isValid());
100 QTRY_COMPARE(revisionSpy.count(), 2);
101 QTest::qWait(100);
102 QCOMPARE(revisionSpy.count(), 2);
103 }
104};
105
106QTEST_MAIN(GenericResourceTest)
107#include "genericresourcetest.moc"