##// END OF EJS Templates
Removed bad dependency between VC and VariableModel, moved mime stuff...
Removed bad dependency between VC and VariableModel, moved mime stuff from VC to static Variable methods Signed-off-by: Alexis Jeandet <alexis.jeandet@member.fsf.org>

File last commit:

r17:895ab1d87afd
r27:c08d1b8ad297
Show More
TestVariableController2Async.cpp
67 lines | 2.2 KiB | text/x-c | CppLexer
/ tests / Variable / TestVariableController2Async.cpp
#include <cmath>
#include <algorithm>
#include <numeric>
#include <QtTest>
#include <QObject>
#include <Variable/VariableController2.h>
#include <Data/DateTimeRange.h>
#include <Data/IDataProvider.h>
#include <Data/ScalarSeries.h>
#include <Data/DataProviderParameters.h>
#include <Common/containers.h>
#include <TestUtils/TestProviders.h>
#define TEST_VC2_FIXTURE(slope) \
VariableController2 vc; \
auto provider = std::make_shared<SimpleRange<slope>>();\
#define TEST_VC2_CREATE_DEFAULT_VARS(name1, name2, name3)\
auto range = DateTimeRange::fromDateTime(QDate(2018,8,7),QTime(14,00),\
QDate(2018,8,7),QTime(16,00));\
auto name1 = vc.createVariable("name1", {}, provider, range);\
auto name2 = vc.createVariable("name1", {}, provider, range);\
auto name3 = vc.createVariable("name1", {}, provider, range);\
vc.synchronize(name1,name2);\
class TestVariableController2Async : public QObject
{
Q_OBJECT
public:
explicit TestVariableController2Async(QObject *parent = nullptr) : QObject(parent){}
signals:
private slots:
void initTestCase(){}
void cleanupTestCase(){}
void testSimplePan()
{
TEST_VC2_FIXTURE(2);
auto range = DateTimeRange::fromDateTime(QDate(2018,8,7),QTime(14,00),
QDate(2018,8,7),QTime(16,00));
int variableUpdated=0;
auto var1 = vc.createVariable("var1", {}, provider, range);
auto var2 = vc.createVariable("var2", {}, provider, range);
auto var3 = vc.createVariable("var3", {}, provider, range);
connect(&(*var2),&Variable::updated, [&variableUpdated](){variableUpdated+=1;});
vc.synchronize(var1,var2);
vc.asyncChangeRange(var1,range+Seconds<double>{10000.});
vc.asyncChangeRange(var1,range+Seconds<double>{50000.});
vc.asyncChangeRange(var1,range+Seconds<double>{100000.});
vc.asyncChangeRange(var1,range+Seconds<double>{150000.});
while(!vc.isReady(var1) || !vc.isReady(var2))
{
QCoreApplication::processEvents();
}
}
};
QTEST_MAIN(TestVariableController2Async)
#include "TestVariableController2Async.moc"