server-sdk/test/auto/database/tst_postgresql.cpp
2019-11-12 17:42:54 +01:00

103 lines
2.3 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 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());
Names 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 listVariantMap = utils.listMapFromQuery(selectSQL);
auto list = Names::fromListVariantMap(listVariantMap);
// ENSURE SAME
QCOMPARE(list.count(), 1);
QCOMPARE(list.first()->name(), QStringLiteral("Testname"));
QCOMPARE(list.first()->jsonData(), names.jsonData());
}
QTEST_APPLESS_MAIN(PostgresqlTest)
#include "tst_postgresql.moc"