void DupeTest::initTestCase() { QVERIFY(Control::start()); QTest::qWait(1000); // give the MDA time to start qRegisterMetaType<Akonadi::Item>(); qRegisterMetaType<Akonadi::Collection>(); // we need a default Akonadi transport int tid = TransportManager::self()->defaultTransportId(); Transport *t = TransportManager::self()->transportById(tid); QVERIFY(t); QCOMPARE(t->type(), int(Transport::EnumType::Akonadi)); // set the sink collection const QString rid = t->host(); const AgentInstance agent = AgentManager::self()->instance(rid); QVERIFY(agent.isValid()); CollectionPathResolver *resolver = new CollectionPathResolver(QStringLiteral("sink"), this); QVERIFY(resolver->exec()); sink = Collection(resolver->collection()); QVERIFY(sink.isValid()); QDBusInterface conf(QLatin1String("org.freedesktop.Akonadi.Resource.") + rid, QStringLiteral("/Settings"), QStringLiteral("org.kde.Akonadi.MailTransportDummy.Settings")); QVERIFY(conf.isValid()); QDBusReply<void> reply = conf.call(QStringLiteral("setSink"), sink.id()); QVERIFY(reply.isValid()); agent.reconfigure(); // set up monitor monitor = new Monitor(this); monitor->setCollectionMonitored(sink); monitor->itemFetchScope().fetchFullPayload(); }
AgentInstance DispatcherInterface::dispatcherInstance() const { AgentInstance a = AgentManager::self()->instance( QLatin1String( "akonadi_maildispatcher_agent" ) ); if ( !a.isValid() ) { kWarning() << "Could not get MDA instance."; } return a; }
void testResourceManagement() { qRegisterMetaType<Akonadi::AgentInstance>(); QSignalSpy spyAddInstance( AgentManager::self(), SIGNAL(instanceAdded(Akonadi::AgentInstance)) ); QVERIFY( spyAddInstance.isValid() ); QSignalSpy spyRemoveInstance( AgentManager::self(), SIGNAL(instanceRemoved(Akonadi::AgentInstance)) ); QVERIFY( spyRemoveInstance.isValid() ); AgentType type = AgentManager::self()->type( "akonadi_knut_resource" ); QVERIFY( type.isValid() ); QCOMPARE( type.capabilities(), QStringList( "Resource" ) ); AgentInstanceCreateJob *job = new AgentInstanceCreateJob( type ); AKVERIFYEXEC( job ); AgentInstance instance = job->instance(); QVERIFY( instance.isValid() ); QCOMPARE( spyAddInstance.count(), 1 ); QCOMPARE( spyAddInstance.first().at( 0 ).value<AgentInstance>(), instance ); QVERIFY( AgentManager::self()->instance( instance.identifier() ).isValid() ); job = new AgentInstanceCreateJob( type ); AKVERIFYEXEC( job ); AgentInstance instance2 = job->instance(); QVERIFY( !( instance == instance2 ) ); QCOMPARE( spyAddInstance.count(), 2 ); AgentManager::self()->removeInstance( instance ); AgentManager::self()->removeInstance( instance2 ); QTest::qWait( 2000 ); QCOMPARE( spyRemoveInstance.count(), 2 ); QVERIFY( !AgentManager::self()->instances().contains( instance ) ); QVERIFY( !AgentManager::self()->instances().contains( instance2 ) ); }