Added unitest as example where baseclas does not have property of derived class

This commit is contained in:
Filip Bucek 2019-11-19 11:43:00 +01:00
parent 956f51e3e2
commit 1cf415820f

View File

@ -1,4 +1,4 @@
#include "serversdk/databasetable.h"
#include "serversdk/databasetable.h"
#include <QtTest>
@ -12,6 +12,12 @@ class BookTable : public serversdk::DatabaseTable
TABLE_PROPERTY(QString, name, setName, "Test");
};
class BookTableExt : public BookTable
{
Q_OBJECT
TABLE_PROPERTY(QString, author, setAuthor, "");
};
QString enumjson = R"({"authErrors":255,"flags":["Enabled","NoValidity"],"subjectId":"1438aade-3aa6-4885-8e0f-138dedae727a"})";
@ -80,6 +86,8 @@ private slots:
void json_test();
void enum_test();
void subclass_test();
};
DatabaseTableTest::DatabaseTableTest()
@ -135,6 +143,17 @@ void DatabaseTableTest::enum_test()
}
/** Baseclass must not contain property of derived class ( extended class ) */
void DatabaseTableTest::subclass_test()
{
auto book = std::make_shared<BookTable>();
auto bookExt = std::make_shared<BookTableExt>();
book->fromVariantMap(bookExt->toVariantMap());
QCOMPARE(book->jsonData(), QByteArray("{\"id\":0,\"name\":\"\",\"uuid\":\"\"}"));
}