From c5e8a99a197232876cd5fa11cd78194fb63d9edb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Wed, 27 Nov 2019 16:38:12 +0100 Subject: [PATCH] Implement basic unit tests for download data and open database --- server-sdk | 2 +- src/colnod/databaseapi.cpp | 8 +--- src/colnod/databaseapi.h | 8 +++- test/auto/database/tst_databaseapi.cpp | 56 +++++++++++++++++++++++++- 4 files changed, 64 insertions(+), 10 deletions(-) diff --git a/server-sdk b/server-sdk index 61feac4..ee08677 160000 --- a/server-sdk +++ b/server-sdk @@ -1 +1 @@ -Subproject commit 61feac4632372fcf781449da0bf0de14f1793af8 +Subproject commit ee08677641fef053a8f6938f9b31e6792cbe7fff diff --git a/src/colnod/databaseapi.cpp b/src/colnod/databaseapi.cpp index ded9621..7c4b695 100644 --- a/src/colnod/databaseapi.cpp +++ b/src/colnod/databaseapi.cpp @@ -12,13 +12,9 @@ DatabaseAPI::DatabaseAPI(serversdk::DatabaseManager *dbMan, bool dryMode) mDbMan->setDryMode(dryMode); } -bool DatabaseAPI::open() +bool DatabaseAPI::open(QString host, QString name, QString user, QString password) { - return mDbMan->openPostgres(QStringLiteral("192.168.1.94"), - QStringLiteral("deloitte"), - QStringLiteral("postgres"), - QStringLiteral("34rjkciea12"), - QStringLiteral("postgres-connection")); + return mDbMan->openPostgres(host, name, user, password); } bool DatabaseAPI::executeQuery(QSqlQuery &query, const QString &statement) diff --git a/src/colnod/databaseapi.h b/src/colnod/databaseapi.h index ef71c1e..34b125d 100644 --- a/src/colnod/databaseapi.h +++ b/src/colnod/databaseapi.h @@ -20,7 +20,10 @@ class DatabaseAPI : public QObject public: explicit DatabaseAPI(serversdk::DatabaseManager *dbMan, bool dryMode); - bool open(); + bool open(QString host = "192.168.1.94", + QString name = "deloitte", + QString user = "postgres", + QString password = "34rjkciea12"); bool executeQuery(QSqlQuery &query, const QString &statement = QString()); @@ -58,8 +61,9 @@ signals: void error(); private: - bool mDryMode; bool mValid = true; + + bool mDryMode; serversdk::DatabaseManager *mDbMan = nullptr; std::unique_ptr utils; }; diff --git a/test/auto/database/tst_databaseapi.cpp b/test/auto/database/tst_databaseapi.cpp index 82878f8..43632ef 100644 --- a/test/auto/database/tst_databaseapi.cpp +++ b/test/auto/database/tst_databaseapi.cpp @@ -8,13 +8,19 @@ class DatabaseTest : public QObject Q_OBJECT private slots: void open_database_test(); - + void open_database_ip_fail_test(); + void open_database_name_fail_test(); + void open_database_user_fail_test(); + void open_database_password_fail_test(); + void download_data_test(); + void download_data_fail_test(); }; void DatabaseTest::open_database_test() { serversdk::DatabaseManager dbManager; DatabaseAPI db(&dbManager, false); + QVERIFY(db.open()); // TODO: fix -> databaseAPI must be able to add credentials to check for wrong one or test wrong IP //db.open(user, password, url, etc ); @@ -23,6 +29,54 @@ void DatabaseTest::open_database_test() // QVERIFY(!db.open(worng ip)); } +void DatabaseTest::open_database_ip_fail_test() +{ + serversdk::DatabaseManager dbManager; + DatabaseAPI db(&dbManager, false); + QVERIFY(!db.open("1.1.1.1")); +} + +void DatabaseTest::open_database_name_fail_test() +{ + serversdk::DatabaseManager dbManager; + DatabaseAPI db(&dbManager, false); + QVERIFY(!db.open("192.168.1.94", "wrong name")); +} + +void DatabaseTest::open_database_user_fail_test() +{ + serversdk::DatabaseManager dbManager; + DatabaseAPI db(&dbManager, false); + QVERIFY(!db.open("192.168.1.94", "delliote", "wrong user")); +} + +void DatabaseTest::open_database_password_fail_test() +{ + serversdk::DatabaseManager dbManager; + DatabaseAPI db(&dbManager, false); + QVERIFY(!db.open("192.168.1.94", "delliote", "postgres", "wrong password")); +} + + +void DatabaseTest::download_data_test() +{ + serversdk::DatabaseManager dbManager; + DatabaseAPI db(&dbManager, false); + db.open(); + QVERIFY(db.downloadData()); +} + +void DatabaseTest::download_data_fail_test() +{ + serversdk::DatabaseManager dbManager; + DatabaseAPI db(&dbManager, false); + + // fail open so download data should return nullptr + db.open("1.1.1.1"); + QVERIFY(!db.downloadData()); +} + + QTEST_APPLESS_MAIN(DatabaseTest) #include "tst_databaseapi.moc"