forked from ondra/server-sdk
updated json handling in databasetable
This commit is contained in:
parent
08f7f163d2
commit
a7831cae9c
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
};
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user