mirror of
https://gitlab.com/spaceti-app/integrations/common/server-sdk.git
synced 2026-07-12 20:50:42 +02:00
106 lines
2.4 KiB
C++
106 lines
2.4 KiB
C++
#include <QtTest>
|
|
|
|
#include "serversdk/databasemanager.h"
|
|
#include "serversdk/databaseutils.h"
|
|
#include "serversdk/core.h"
|
|
// add necessary includes here
|
|
|
|
|
|
class Name : public serversdk::DatabaseTable {
|
|
Q_OBJECT
|
|
TABLE_PROPERTY(int, id, set_id, 0);
|
|
TABLE_PROPERTY(QString, name, set_name, 0);
|
|
};
|
|
|
|
|
|
class PostgresqlTest : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
PostgresqlTest();
|
|
~PostgresqlTest();
|
|
|
|
private slots:
|
|
void opendb_test();
|
|
void createTable_test();
|
|
|
|
};
|
|
|
|
PostgresqlTest::PostgresqlTest()
|
|
{
|
|
|
|
}
|
|
|
|
PostgresqlTest::~PostgresqlTest()
|
|
{
|
|
|
|
}
|
|
|
|
void PostgresqlTest::opendb_test()
|
|
{
|
|
// Prepare temporary path for database
|
|
const QString host = "192.168.1.94";
|
|
const QString databaseName = "serversdk";
|
|
const QString user = "postgres";
|
|
const QString password = "34rjkciea12";
|
|
|
|
serversdk::DatabaseManager db;
|
|
db.openPostgres(host, databaseName, user, password);
|
|
QVERIFY(db.isValid());
|
|
QVERIFY(db.isOpen());
|
|
|
|
// Closing database
|
|
db.close();
|
|
QVERIFY(!db.isOpen());
|
|
}
|
|
|
|
void PostgresqlTest::createTable_test()
|
|
{
|
|
// Prepare temporary path for database
|
|
const QString host = "192.168.1.94";
|
|
const QString databaseName = "serversdk";
|
|
const QString user = "postgres";
|
|
const QString password = "34rjkciea12";
|
|
|
|
serversdk::DatabaseManager db;
|
|
db.openPostgres(host, databaseName, user, password);
|
|
QVERIFY(db.isValid());
|
|
QVERIFY(db.isOpen());
|
|
|
|
Name names;
|
|
|
|
//Have to drop tabel
|
|
QSqlQuery dropQuery = db.execPlainSql("DROP TABLE names");
|
|
//QVERIFY(dropQuery.isValid());
|
|
|
|
// CREATE TABLE
|
|
serversdk::DatabaseUtils utils(&db, "PSQL");
|
|
QSqlQuery query = utils.createTable(&names, "names");
|
|
//QVERIFY(query.isValid());
|
|
|
|
// 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<Name>(selectSQL);
|
|
|
|
// ENSURE SAME
|
|
auto first = list.first();
|
|
// Problem is that fromListvariantMap returns shared_ptr of class DataTable
|
|
// Must subclass.
|
|
auto names_tab = std::dynamic_pointer_cast<Name>(first);
|
|
QCOMPARE(list.count(), 1);
|
|
QCOMPARE(names_tab->name(), QStringLiteral("Testname"));
|
|
|
|
QCOMPARE(list.first()->jsonData(), names.jsonData());
|
|
}
|
|
|
|
QTEST_APPLESS_MAIN(PostgresqlTest)
|
|
|
|
#include "tst_postgresql.moc"
|