mirror of
https://github.com/status-im/dotherside.git
synced 2025-02-12 04:26:43 +00:00
Improved test coverage
This commit is contained in:
parent
24c29e4d61
commit
5649a76a0e
@ -297,9 +297,9 @@ class TestQAbstractListModel : public QObject
|
|||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void testPropertyInheritance()
|
void init()
|
||||||
{
|
{
|
||||||
DOS::SignalDefinitions signalDefinitions {DOS::SignalDefinition {"nameChanged", {}}};
|
DOS::SignalDefinitions signalDefinitions {DOS::SignalDefinition {"nameChanged", {QMetaType::QString}}};
|
||||||
DOS::SlotDefinitions slotDefinitions {DOS::SlotDefinition {"name", QMetaType::QString, {}},
|
DOS::SlotDefinitions slotDefinitions {DOS::SlotDefinition {"name", QMetaType::QString, {}},
|
||||||
DOS::SlotDefinition {"setName", QMetaType::Void, {QMetaType::QString}}};
|
DOS::SlotDefinition {"setName", QMetaType::Void, {QMetaType::QString}}};
|
||||||
DOS::PropertyDefinitions propertyDefinitions {DOS::PropertyDefinition{"name", QMetaType::QString, "name", "setName", "nameChanged"}};
|
DOS::PropertyDefinitions propertyDefinitions {DOS::PropertyDefinition{"name", QMetaType::QString, "name", "setName", "nameChanged"}};
|
||||||
@ -312,17 +312,16 @@ private slots:
|
|||||||
|
|
||||||
std::unique_ptr<DosIQMetaObjectHolder> moh(new DosIQMetaObjectHolder(mo));
|
std::unique_ptr<DosIQMetaObjectHolder> moh(new DosIQMetaObjectHolder(mo));
|
||||||
|
|
||||||
QString value = "";
|
auto ose = [this, value = QString()](const QString & name, const std::vector<QVariant> &args) mutable -> QVariant {
|
||||||
auto ose = [&value](const QString & name, const std::vector<QVariant> &args) -> QVariant {
|
|
||||||
if (name == "name")
|
if (name == "name")
|
||||||
return value;
|
return value;
|
||||||
else if (name == "setName")
|
else if (name == "setName") {
|
||||||
value = args.front().toString();
|
value = args.front().toString();
|
||||||
|
testObject->emitSignal(testObject.get(), "nameChanged", {value});
|
||||||
|
}
|
||||||
return QVariant();
|
return QVariant();
|
||||||
};
|
};
|
||||||
|
|
||||||
void *dPointer = nullptr;
|
|
||||||
|
|
||||||
RowCountCallback rcc = nullptr;
|
RowCountCallback rcc = nullptr;
|
||||||
ColumnCountCallback ccc = nullptr;
|
ColumnCountCallback ccc = nullptr;
|
||||||
DataCallback dc = nullptr;
|
DataCallback dc = nullptr;
|
||||||
@ -331,18 +330,51 @@ private slots:
|
|||||||
FlagsCallback fc = nullptr;
|
FlagsCallback fc = nullptr;
|
||||||
HeaderDataCallback hdc = nullptr;
|
HeaderDataCallback hdc = nullptr;
|
||||||
|
|
||||||
DOS::DosQAbstractListModel testObject(dPointer, moh->data(), ose, rcc, ccc, dc, sdc, rnc, fc, hdc);
|
void *dPointer = nullptr;
|
||||||
testObject.setObjectName("testObject");
|
|
||||||
testObject.setProperty("name", "foo");
|
|
||||||
|
|
||||||
/// Test property read
|
testObject = std::make_unique<DOS::DosQAbstractListModel>(dPointer, moh->data(), ose, rcc, ccc, dc, sdc, rnc, fc, hdc);
|
||||||
QCOMPARE(testObject.property("objectName").toString(), QString("testObject"));
|
testObject->setObjectName("testObject");
|
||||||
QCOMPARE(testObject.property("name").toString(), QString("foo"));
|
testObject->setProperty("name", "foo");
|
||||||
|
|
||||||
/// Test slot invokation
|
|
||||||
QMetaObject::invokeMethod(&testObject, "setName", Q_ARG(QString, "bar"));
|
|
||||||
QCOMPARE(testObject.property("name").toString(), QString("bar"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cleanup()
|
||||||
|
{
|
||||||
|
testObject.reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void testPropertyInheritance()
|
||||||
|
{
|
||||||
|
/// Test property read
|
||||||
|
QCOMPARE(testObject->property("objectName").toString(), QString("testObject"));
|
||||||
|
QCOMPARE(testObject->property("name").toString(), QString("foo"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void testPropertyReadAndWrite()
|
||||||
|
{
|
||||||
|
QCOMPARE(testObject->property("name").toString(), QString("foo"));
|
||||||
|
testObject->setProperty("name", QString("bar"));
|
||||||
|
QCOMPARE(testObject->property("name").toString(), QString("bar"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void testSlotInvokation()
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod(testObject.get(), "setName", Q_ARG(QString, "bar"));
|
||||||
|
QCOMPARE(testObject->property("name").toString(), QString("bar"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void testSignalEmittion()
|
||||||
|
{
|
||||||
|
QSignalSpy signalSpy(testObject.get(), SIGNAL(nameChanged(QString)));
|
||||||
|
QCOMPARE(signalSpy.size(), 0);
|
||||||
|
QCOMPARE(testObject->property("name").toString(), QString("foo"));
|
||||||
|
testObject->setProperty("name", QString("bar"));
|
||||||
|
QCOMPARE(testObject->property("name").toString(), QString("bar"));
|
||||||
|
QCOMPARE(signalSpy.size(), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
QString value;
|
||||||
|
std::unique_ptr<DOS::DosQAbstractListModel> testObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user