mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 14:50:48 +02:00
103 lines
2.0 KiB
C++
103 lines
2.0 KiB
C++
#include <QtTest>
|
|
|
|
#include "serversdk/databasemanager.h"
|
|
#include "serversdk/databaseutils.h"
|
|
#include "serversdk/core.h"
|
|
// add necessary includes here
|
|
|
|
|
|
class Names : public serversdk::DatabaseTable {
|
|
Q_OBJECT
|
|
TABLE_PROPERTY(int, id, set_id, 0);
|
|
TABLE_PROPERTY(QString, name, set_name, 0);
|
|
};
|
|
|
|
|
|
class SqliteTest : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
SqliteTest();
|
|
~SqliteTest();
|
|
|
|
private slots:
|
|
void createDb_test();
|
|
void createTable_test();
|
|
|
|
};
|
|
|
|
SqliteTest::SqliteTest()
|
|
{
|
|
|
|
}
|
|
|
|
SqliteTest::~SqliteTest()
|
|
{
|
|
|
|
}
|
|
|
|
void SqliteTest::createDb_test()
|
|
{
|
|
// Prepare temporary path for database
|
|
QTemporaryDir dir;
|
|
QVERIFY(dir.isValid());
|
|
QString dbpath = dir.path() + "/testdb.sqlite";
|
|
QVERIFY(!dbpath.isEmpty());
|
|
QVERIFY(!QFileInfo::exists(dbpath));
|
|
|
|
serversdk::DatabaseManager db;
|
|
db.openSQLite(dbpath);
|
|
QVERIFY(db.isValid());
|
|
QVERIFY(db.isOpen());
|
|
QVERIFY(QFileInfo::exists(dbpath));
|
|
|
|
// Closing database
|
|
db.close();
|
|
QVERIFY(!db.isOpen());
|
|
|
|
|
|
// Temporary dir cleanup
|
|
QVERIFY(dir.remove());
|
|
|
|
QVERIFY(!QFileInfo::exists(dbpath));
|
|
}
|
|
|
|
void SqliteTest::createTable_test()
|
|
{
|
|
// Prepare temporary path for database
|
|
QTemporaryDir dir;
|
|
QString dbpath = dir.path() + "/testdb.sqlite";
|
|
serversdk::DatabaseManager db;
|
|
db.openSQLite(dbpath);
|
|
QVERIFY(db.isOpen());
|
|
|
|
Names names;
|
|
|
|
// CREATE TABLE
|
|
serversdk::DatabaseUtils utils(&db);
|
|
QSqlQuery query = utils.createTable(&names, "names");
|
|
|
|
// INSERT INTO TABLE
|
|
names.set_id(2);
|
|
names.set_name("Testname");
|
|
|
|
utils.insertIntoTable(&names, "names");
|
|
|
|
// SELECT FROM TABLE
|
|
QSqlQuery selectSQL = db.execPlainSql("SELECT * FROM names");
|
|
auto list = utils.tableFromQuery<Names>(selectSQL);
|
|
|
|
// ENSURE SAME
|
|
QCOMPARE(list.count(), 1);
|
|
auto names_tab = list.first();
|
|
QVERIFY(names_tab);
|
|
QCOMPARE(names_tab->name(), QStringLiteral("Testname"));
|
|
|
|
QCOMPARE(list.first()->jsonData(), names.jsonData());
|
|
}
|
|
|
|
QTEST_APPLESS_MAIN(SqliteTest)
|
|
|
|
#include "tst_sqlite.moc"
|