##// END OF EJS Templates
Creates a interface that defines a variable container...
Creates a interface that defines a variable container - A variable container is an entity that can eventually accomodate a variable (for example, from a menu or d'n'd) - The interfaces declares canDrop() method, that will be used to create a menu for a variable containing only the containers available for it, or to enable/disable d'n'd of this variable on a container - Each visualization widget is a variable container, so it implements canDrop() method

File last commit:

r92:afb77b3143a6
r209:7ef1d04a5917
Show More
TestDataSourceController.cpp
51 lines | 1.7 KiB | text/x-c | CppLexer
/ core / tests / DataSource / TestDataSourceController.cpp
#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(DataSourceItem *))};
// Create a data source item
auto source1Name = QStringLiteral("Source1");
auto source1Values = QVector<QVariant>{source1Name};
auto source1Item
= std::make_unique<DataSourceItem>(DataSourceItemType::PRODUCT, 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>(DataSourceItemType::PRODUCT));
QCOMPARE(signalSpy.count(), 1);
}
QTEST_MAIN(TestDataSourceController)
#include "TestDataSourceController.moc"