#include #include #include #include #include class TestDataSourceController : public QObject { Q_OBJECT private slots: void testRegisterDataSource(); void testSetDataSourceItem(); }; void TestDataSourceController::testRegisterDataSource() { DataSourceController dataSourceController{}; auto uid = dataSourceController.registerDataSource(QStringLiteral("Source1")); QVERIFY(!uid.isNull()); } void TestDataSourceController::testSetDataSourceItem() { DataSourceController dataSourceController{}; // Spy to test controllers' signals QSignalSpy signalSpy{&dataSourceController, SIGNAL(dataSourceItemSet(DataSourceItem *))}; // Create a data source item auto source1Name = QStringLiteral("Source1"); auto source1Item = std::make_unique(DataSourceItemType::PRODUCT, source1Name); // Add data source item to the controller and check that a signal has been emitted after setting // data source item in the controller auto source1Uid = dataSourceController.registerDataSource(source1Name); dataSourceController.setDataSourceItem(source1Uid, std::move(source1Item)); QCOMPARE(signalSpy.count(), 1); // Try to a data source item with an unregistered uid and check that no signal has been emitted auto unregisteredUid = QUuid::createUuid(); dataSourceController.setDataSourceItem( unregisteredUid, std::make_unique(DataSourceItemType::PRODUCT)); QCOMPARE(signalSpy.count(), 1); } QTEST_MAIN(TestDataSourceController) #include "TestDataSourceController.moc"