##// END OF EJS Templates
Add the coverage target whith the test. make coverage will call the code...
Add the coverage target whith the test. make coverage will call the code coverage for every test of the core module.

File last commit:

r38:ac9e67540b80
r44:31b8fb9583a3
Show More
TestDataSourceController.cpp
49 lines | 1.6 KiB | text/x-c | CppLexer
/ core / tests / DataSource / TestDataSourceController.cpp
Alexandre Leroux
Inits unit tests for DataSource controller
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
QSignalSpy signalSpy{&dataSourceController, SIGNAL(dataSourceItemSet(const DataSourceItem &))};
// Create a data source item
auto source1Name = QStringLiteral("Source1");
auto source1Values = QVector<QVariant>{source1Name};
auto source1Item = std::make_unique<DataSourceItem>(std::move(source1Values));
// 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<DataSourceItem>());
QCOMPARE(signalSpy.count(), 1);
}
QTEST_MAIN(TestDataSourceController)
#include "TestDataSourceController.moc"