updated json handling in databasetable

This commit is contained in:
Filip Bucek 2019-11-12 11:37:37 +01:00
parent 08f7f163d2
commit a7831cae9c
3 changed files with 19 additions and 0 deletions

View File

@ -2,6 +2,7 @@
#include "logger.h"
#include <QJsonDocument>
#include <QMetaProperty>
namespace serversdk {
@ -10,6 +11,12 @@ DatabaseTable::DatabaseTable(QObject *parent) : QObject(parent)
{
}
QByteArray DatabaseTable::jsonData() const
{
QJsonDocument doc = QJsonDocument::fromVariant(this->toVariantMap());
return doc.toJson(QJsonDocument::Compact);
}
/** Creates universal variant structure to hold key / value pairs */
QVariantMap DatabaseTable::toVariantMap() const

View File

@ -27,6 +27,7 @@ class DatabaseTable : public QObject
TABLE_PROPERTY(QString, name, setName, QString());
public:
explicit DatabaseTable(QObject *parent = nullptr);
QByteArray jsonData() const;
QVariantMap toVariantMap() const;
};

View File

@ -25,6 +25,7 @@ public:
private slots:
void constructor_test();
void qvariant_test();
void json_test();
};
@ -50,6 +51,16 @@ void DatabaseTableTest::qvariant_test()
QCOMPARE(map.count(), 3);
}
void DatabaseTableTest::json_test()
{
auto table = std::make_unique<BookTable>();
QCOMPARE(table->id(), 0);
QCOMPARE(table->name(), QStringLiteral("Test"));
QByteArray expected(R"({"id":0,"name":"Test","uuid":"{00000000-0000-0000-0000-000000000000}"})");
QCOMPARE(table->jsonData(), expected);
}
QTEST_APPLESS_MAIN(DatabaseTableTest)
#include "tst_databasetable.moc"