TestDataSourceController.cpp
49 lines
| 1.6 KiB
| text/x-c
|
CppLexer
Alexandre Leroux
|
r38 | #include <DataSource/DataSourceController.h> | ||
#include <DataSource/DataSourceItem.h> | ||||
#include <QObject> | ||||
#include <QtTest> | ||||
#include <memory> | ||||
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 | ||||
Alexandre Leroux
|
r90 | QSignalSpy signalSpy{&dataSourceController, SIGNAL(dataSourceItemSet(DataSourceItem *))}; | ||
Alexandre Leroux
|
r38 | |||
// Create a data source item | ||||
auto source1Name = QStringLiteral("Source1"); | ||||
Alexandre Leroux
|
r316 | auto source1Item = std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT, source1Name); | ||
Alexandre Leroux
|
r38 | |||
// 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(); | ||||
Alexandre Leroux
|
r78 | dataSourceController.setDataSourceItem( | ||
unregisteredUid, std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT)); | ||||
Alexandre Leroux
|
r38 | QCOMPARE(signalSpy.count(), 1); | ||
} | ||||
QTEST_MAIN(TestDataSourceController) | ||||
#include "TestDataSourceController.moc" | ||||