From 4430eabdfeddf02c20424508a2a4207b6b4a764e Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Fri, 24 Jul 2015 12:51:58 +0200 Subject: Test generic stuff separately from the dummyresource --- tests/CMakeLists.txt | 1 + tests/dummyresourcetest.cpp | 53 --------------------- tests/genericresourcetest.cpp | 107 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 108 insertions(+), 53 deletions(-) create mode 100644 tests/genericresourcetest.cpp (limited to 'tests') 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 ( domainadaptortest messagequeuetest indextest + genericresourcetest ) target_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: qDebug(); } - void testProcessCommand() - { - flatbuffers::FlatBufferBuilder eventFbb; - eventFbb.Clear(); - { - auto summary = eventFbb.CreateString("summary"); - Akonadi2::ApplicationDomain::Buffer::EventBuilder eventBuilder(eventFbb); - eventBuilder.add_summary(summary); - auto eventLocation = eventBuilder.Finish(); - Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(eventFbb, eventLocation); - } - - flatbuffers::FlatBufferBuilder localFbb; - { - auto uid = localFbb.CreateString("testuid"); - auto localBuilder = Akonadi2::ApplicationDomain::Buffer::EventBuilder(localFbb); - localBuilder.add_uid(uid); - auto location = localBuilder.Finish(); - Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(localFbb, location); - } - - flatbuffers::FlatBufferBuilder entityFbb; - Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, eventFbb.GetBufferPointer(), eventFbb.GetSize(), localFbb.GetBufferPointer(), localFbb.GetSize()); - - flatbuffers::FlatBufferBuilder fbb; - auto type = fbb.CreateString(Akonadi2::ApplicationDomain::getTypeName().toStdString().data()); - auto delta = fbb.CreateVector(entityFbb.GetBufferPointer(), entityFbb.GetSize()); - Akonadi2::Commands::CreateEntityBuilder builder(fbb); - builder.add_domainType(type); - builder.add_delta(delta); - auto location = builder.Finish(); - Akonadi2::Commands::FinishCreateEntityBuffer(fbb, location); - - const QByteArray command(reinterpret_cast(fbb.GetBufferPointer()), fbb.GetSize()); - { - flatbuffers::Verifier verifyer(reinterpret_cast(command.data()), command.size()); - QVERIFY(Akonadi2::Commands::VerifyCreateEntityBuffer(verifyer)); - } - - //Actual test - Akonadi2::Pipeline pipeline("org.kde.dummy.instance1"); - QSignalSpy revisionSpy(&pipeline, SIGNAL(revisionUpdated())); - DummyResource resource("org.kde.dummy.instance1"); - resource.configurePipeline(&pipeline); - resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline); - resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline); - - QVERIFY(revisionSpy.isValid()); - QTRY_COMPARE(revisionSpy.count(), 2); - QTest::qWait(100); - QCOMPARE(revisionSpy.count(), 2); - } - void testProperty() { 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 @@ +#include + +#include + +#include "event_generated.h" +#include "entity_generated.h" +#include "metadata_generated.h" +#include "createentity_generated.h" +#include "commands.h" +#include "entitybuffer.h" +#include "pipeline.h" +#include "genericresource.h" + +class TestResource : public Akonadi2::GenericResource +{ +public: + TestResource(const QByteArray &instanceIdentifier) + : Akonadi2::GenericResource(instanceIdentifier) + { + } + + KAsync::Job synchronizeWithSource(Akonadi2::Pipeline *pipeline) Q_DECL_OVERRIDE + { + return KAsync::null(); + } + + void configurePipeline(Akonadi2::Pipeline *pipeline) Q_DECL_OVERRIDE + { + GenericResource::configurePipeline(pipeline); + } +}; + + +static void removeFromDisk(const QString &name) +{ + Akonadi2::Storage store(Akonadi2::Store::storageLocation(), name, Akonadi2::Storage::ReadWrite); + store.removeFromDisk(); +} + +class GenericResourceTest : public QObject +{ + Q_OBJECT +private Q_SLOTS: + + void init() + { + qDebug(); + qDebug() << "-----------------------------------------"; + qDebug(); + } + + void testProcessCommand() + { + flatbuffers::FlatBufferBuilder eventFbb; + eventFbb.Clear(); + { + auto summary = eventFbb.CreateString("summary"); + Akonadi2::ApplicationDomain::Buffer::EventBuilder eventBuilder(eventFbb); + eventBuilder.add_summary(summary); + auto eventLocation = eventBuilder.Finish(); + Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(eventFbb, eventLocation); + } + + flatbuffers::FlatBufferBuilder localFbb; + { + auto uid = localFbb.CreateString("testuid"); + auto localBuilder = Akonadi2::ApplicationDomain::Buffer::EventBuilder(localFbb); + localBuilder.add_uid(uid); + auto location = localBuilder.Finish(); + Akonadi2::ApplicationDomain::Buffer::FinishEventBuffer(localFbb, location); + } + + flatbuffers::FlatBufferBuilder entityFbb; + Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, eventFbb.GetBufferPointer(), eventFbb.GetSize(), localFbb.GetBufferPointer(), localFbb.GetSize()); + + flatbuffers::FlatBufferBuilder fbb; + auto type = fbb.CreateString(Akonadi2::ApplicationDomain::getTypeName().toStdString().data()); + auto delta = fbb.CreateVector(entityFbb.GetBufferPointer(), entityFbb.GetSize()); + Akonadi2::Commands::CreateEntityBuilder builder(fbb); + builder.add_domainType(type); + builder.add_delta(delta); + auto location = builder.Finish(); + Akonadi2::Commands::FinishCreateEntityBuffer(fbb, location); + + const QByteArray command(reinterpret_cast(fbb.GetBufferPointer()), fbb.GetSize()); + { + flatbuffers::Verifier verifyer(reinterpret_cast(command.data()), command.size()); + QVERIFY(Akonadi2::Commands::VerifyCreateEntityBuffer(verifyer)); + } + + //Actual test + Akonadi2::Pipeline pipeline("org.kde.test.instance1"); + QSignalSpy revisionSpy(&pipeline, SIGNAL(revisionUpdated())); + TestResource resource("org.kde.test.instance1"); + resource.configurePipeline(&pipeline); + resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline); + resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, &pipeline); + + QVERIFY(revisionSpy.isValid()); + QTRY_COMPARE(revisionSpy.count(), 2); + QTest::qWait(100); + QCOMPARE(revisionSpy.count(), 2); + } +}; + +QTEST_MAIN(GenericResourceTest) +#include "genericresourcetest.moc" -- cgit v1.2.3