From bc2a95cad05e454a84c317f1078edb329bd3afd4 Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 15 Jan 2015 01:56:09 +0100 Subject: Writing from facade. --- tests/dummyresourcetest.cpp | 83 +++++++++++++++++++++++++++++++++++---------- 1 file changed, 66 insertions(+), 17 deletions(-) (limited to 'tests') diff --git a/tests/dummyresourcetest.cpp b/tests/dummyresourcetest.cpp index b39b2b1..ddb59a5 100644 --- a/tests/dummyresourcetest.cpp +++ b/tests/dummyresourcetest.cpp @@ -2,8 +2,21 @@ #include +// #include "dummycalendar_generated.h" +#include "event_generated.h" +#include "entity_generated.h" +#include "metadata_generated.h" +#include "createentity_generated.h" #include "dummyresource/resourcefactory.h" #include "clientapi.h" +#include "commands.h" +#include "entitybuffer.h" + +static void removeFromDisk(const QString &name) +{ + Akonadi2::Storage store(Akonadi2::Store::storageLocation(), "org.kde.dummy", Akonadi2::Storage::ReadWrite); + store.removeFromDisk(); +} class DummyResourceTest : public QObject { @@ -13,34 +26,70 @@ private Q_SLOTS: { auto factory = Akonadi2::ResourceFactory::load("org.kde.dummy"); QVERIFY(factory); - Akonadi2::Storage store(Akonadi2::Store::storageLocation(), "org.kde.dummy", Akonadi2::Storage::ReadWrite); - store.removeFromDisk(); + removeFromDisk("org.kde.dummy"); + removeFromDisk("org.kde.dummy.userqueue"); + removeFromDisk("org.kde.dummy.synchronizerqueue"); } void cleanupTestCase() { } - void testResource() + void testProcessCommand() { + flatbuffers::FlatBufferBuilder eventFbb; + eventFbb.Clear(); + { + auto summary = eventFbb.CreateString("summary"); + Akonadi2::Domain::Buffer::EventBuilder eventBuilder(eventFbb); + eventBuilder.add_summary(summary); + auto eventLocation = eventBuilder.Finish(); + Akonadi2::Domain::Buffer::FinishEventBuffer(eventFbb, eventLocation); + } + + flatbuffers::FlatBufferBuilder entityFbb; + Akonadi2::EntityBuffer::assembleEntityBuffer(entityFbb, 0, 0, eventFbb.GetBufferPointer(), eventFbb.GetSize(), 0, 0); + + flatbuffers::FlatBufferBuilder fbb; + auto type = fbb.CreateString(Akonadi2::Domain::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()); + Akonadi2::Pipeline pipeline("org.kde.dummy"); DummyResource resource; - auto job = resource.synchronizeWithSource(&pipeline); - auto future = job.exec(); - QTRY_VERIFY(future.isFinished()); + resource.configurePipeline(&pipeline); + resource.processCommand(Akonadi2::Commands::CreateEntityCommand, command, command.size(), &pipeline); + //TODO wait until the pipeline has processed the command + QTest::qWait(1000); } - void testSyncAndFacade() - { - Akonadi2::Query query; - query.resources << "org.kde.dummy"; - - async::SyncListResult result(Akonadi2::Store::load(query)); - result.exec(); - QVERIFY(!result.isEmpty()); - auto value = result.first(); - QVERIFY(!value->getProperty("summary").toString().isEmpty()); - } + // void testResourceSync() + // { + // Akonadi2::Pipeline pipeline("org.kde.dummy"); + // DummyResource resource; + // auto job = resource.synchronizeWithSource(&pipeline); + // auto future = job.exec(); + // QTRY_VERIFY(future.isFinished()); + // } + + // void testSyncAndFacade() + // { + // Akonadi2::Query query; + // query.resources << "org.kde.dummy"; + + // async::SyncListResult result(Akonadi2::Store::load(query)); + // result.exec(); + // QVERIFY(!result.isEmpty()); + // auto value = result.first(); + // QVERIFY(!value->getProperty("summary").toString().isEmpty()); + // qDebug() << value->getProperty("summary").toString(); + // } }; -- cgit v1.2.3