From 1cf415820f2708dfd6f101e0847989926559d51f Mon Sep 17 00:00:00 2001 From: Filip Bucek Date: Tue, 19 Nov 2019 11:43:00 +0100 Subject: [PATCH] Added unitest as example where baseclas does not have property of derived class --- test/auto/database/tst_databasetable.cpp | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/test/auto/database/tst_databasetable.cpp b/test/auto/database/tst_databasetable.cpp index 72f8e39..b2084c0 100644 --- a/test/auto/database/tst_databasetable.cpp +++ b/test/auto/database/tst_databasetable.cpp @@ -1,4 +1,4 @@ -#include "serversdk/databasetable.h" +#include "serversdk/databasetable.h" #include @@ -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, "Já"); +}; + 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(); + auto bookExt = std::make_shared(); + + book->fromVariantMap(bookExt->toVariantMap()); + + QCOMPARE(book->jsonData(), QByteArray("{\"id\":0,\"name\":\"\",\"uuid\":\"\"}")); +} +