mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 16:50:43 +02:00
unitest -> filteredJson ( maybe make universal )
This commit is contained in:
parent
1cf415820f
commit
7f369b075d
@ -64,6 +64,9 @@ namespace serversdk {
|
|||||||
*
|
*
|
||||||
* @endcode
|
* @endcode
|
||||||
*
|
*
|
||||||
|
* ## Warning
|
||||||
|
*
|
||||||
|
* Derivation of derived class from DatabaseTable does not work ( missing properties )
|
||||||
*
|
*
|
||||||
* @code
|
* @code
|
||||||
* in: TABLE_PROPERTY
|
* in: TABLE_PROPERTY
|
||||||
@ -96,7 +99,7 @@ public:
|
|||||||
* @brief Creates VariantMap from QMetaObject data ( Q_PROPERTY )
|
* @brief Creates VariantMap from QMetaObject data ( Q_PROPERTY )
|
||||||
* @return QVariantMap containing property with key/value pairs
|
* @return QVariantMap containing property with key/value pairs
|
||||||
*/
|
*/
|
||||||
QVariantMap toVariantMap() const;
|
virtual QVariantMap toVariantMap() const;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -10,12 +10,14 @@ class BookTable : public serversdk::DatabaseTable
|
|||||||
TABLE_PROPERTY(QString, uuid, setUuid, QString());
|
TABLE_PROPERTY(QString, uuid, setUuid, QString());
|
||||||
TABLE_PROPERTY(int, id, setId, 0);
|
TABLE_PROPERTY(int, id, setId, 0);
|
||||||
TABLE_PROPERTY(QString, name, setName, "Test");
|
TABLE_PROPERTY(QString, name, setName, "Test");
|
||||||
};
|
TABLE_PROPERTY(QString, author, setAuthor, "Me");
|
||||||
|
public:
|
||||||
class BookTableExt : public BookTable
|
QByteArray filteredJson() {
|
||||||
{
|
auto variant = this->toVariantMap();
|
||||||
Q_OBJECT
|
variant.remove("author");
|
||||||
TABLE_PROPERTY(QString, author, setAuthor, "Já");
|
QJsonDocument doc = QJsonDocument::fromVariant(variant);
|
||||||
|
return doc.toJson(QJsonDocument::Compact);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -86,7 +88,7 @@ private slots:
|
|||||||
void json_test();
|
void json_test();
|
||||||
void enum_test();
|
void enum_test();
|
||||||
|
|
||||||
void subclass_test();
|
void filter_json_test();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -109,7 +111,7 @@ void DatabaseTableTest::qvariant_test()
|
|||||||
{
|
{
|
||||||
auto table = std::make_unique<BookTable>();
|
auto table = std::make_unique<BookTable>();
|
||||||
QVariantMap map = table->toVariantMap();
|
QVariantMap map = table->toVariantMap();
|
||||||
QCOMPARE(map.count(), 3);
|
QCOMPARE(map.count(), 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
void DatabaseTableTest::json_test()
|
void DatabaseTableTest::json_test()
|
||||||
@ -118,7 +120,7 @@ void DatabaseTableTest::json_test()
|
|||||||
QCOMPARE(table->id(), 0);
|
QCOMPARE(table->id(), 0);
|
||||||
QCOMPARE(table->name(), QStringLiteral("Test"));
|
QCOMPARE(table->name(), QStringLiteral("Test"));
|
||||||
|
|
||||||
QByteArray expected(R"({"id":0,"name":"Test","uuid":""})");
|
QByteArray expected(R"({"author":"Me","id":0,"name":"Test","uuid":""})");
|
||||||
QCOMPARE(table->jsonData(), expected);
|
QCOMPARE(table->jsonData(), expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,24 +146,17 @@ void DatabaseTableTest::enum_test()
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Baseclass must not contain property of derived class ( extended class ) */
|
/** Baseclass must not contain property of derived class ( extended class ) */
|
||||||
void DatabaseTableTest::subclass_test()
|
void DatabaseTableTest::filter_json_test()
|
||||||
{
|
{
|
||||||
auto book = std::make_shared<BookTable>();
|
auto book = std::make_shared<BookTable>();
|
||||||
auto bookExt = std::make_shared<BookTableExt>();
|
QCOMPARE(book->jsonData(), QByteArray("{\"author\":\"Me\",\"id\":0,\"name\":\"Test\",\"uuid\":\"\"}"));
|
||||||
|
QCOMPARE(book->filteredJson(), QByteArray("{\"id\":0,\"name\":\"Test\",\"uuid\":\"\"}"));
|
||||||
book->fromVariantMap(bookExt->toVariantMap());
|
|
||||||
|
|
||||||
QCOMPARE(book->jsonData(), QByteArray("{\"id\":0,\"name\":\"\",\"uuid\":\"\"}"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
QTEST_APPLESS_MAIN(DatabaseTableTest)
|
QTEST_APPLESS_MAIN(DatabaseTableTest)
|
||||||
|
|
||||||
#include "tst_databasetable.moc"
|
#include "tst_databasetable.moc"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user