diff --git a/README.md b/README.md
index b652349..0ff36da 100644
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@
Acces Management System of Colsys: [Product info](http://produkty.colsys.cz/colnod/)
## TODO
-- [ ] Debug Mode
-- [ ] Logs
+- [x] Dry Run Mode (0.1v)
+- [x] Logs (0.1v)
- Timestamp
- Id of record
- Destination
@@ -12,7 +12,7 @@ Acces Management System of Colsys: [Product info](http://produkty.colsys.cz/coln
- Token `action` to `subject_id`
- Sbject `action`
- `action` - updated, deleted, added
-- [ ] App output
+- [x] App output (0.1v)
- To Colnod
- Number of tokens added/deleted/updated
- To DB
@@ -54,9 +54,58 @@ Acces Management System of Colsys: [Product info](http://produkty.colsys.cz/coln
}
```
-1. GET request - `/SubjectManager/getSubjects` - get subjects
-2. GET request - `/TokenManager/getTokens` - get tokens
-3. POST request - `/TokenManager/setTokens` - set tokens
+
+1. POST request - `/SubjectManager/getSubjects` - get subjects
+2. POST request - `/SubjectManager/getSubjectsUpdated` - get tokens updated after `time`
+3. POST request - `/SubjectManager/getSubjectsDeleted` - get tokens deleted after `time`
+4. POST request - `/TokenManager/getTokens` - get tokens
+5. POST request - `/TokenManager/getTokensUpdated` - get tokens updated after `time`
+6. POST request - `/TokenManager/getTokensDeleted` - get tokens deleted after `time`
+7. POST request - `/TokenManager/setTokens` - set tokens defined as `JSON`
+8. POST request - `/TokenManager/deleteTokens` - delete tokens define as `JSON2`
+9. POST request - `/AccessManager/getAccessGroups` - get access groups
+10. POST request - `/AccessManager/getAccessGroupsUpdated`
+11. POST request - `/AccessManager/getAccessGroupsDeleted`
+12. POST request - `/AccessManager/getAccessGroupMembership`
+13. POST request - `/AccessManager/getAccessGroupMembershipUpdated`
+14. POST request - `/AccessManager/getAccessGroupMembershipDeleted`
+ - `time` = epoch time im miliseconds
+ ```time
+ {
+ "timestamp": 1568646217767
+ }
+ ```
+ - `JSON`
+ ```json
+ {
+ "items": [
+ {
+ "id": "cf5cb80e-e6dd-45db-8edd-c9655447821c",
+ "name": "Testovaci pokus",
+ "description": "mobile",
+ "tokenType": "Token",
+ "tokenBits}": 32,
+ "tokenData": "7B9D31",
+ "timeToLive": 255,
+ "authErrors": 255,
+ "flags": [
+ "Enabled",
+ "NoValidity"
+ ],
+ "subjectId": "72b37f7e-5761-4e6c-8e87-20c0bed0d904"
+ }
+ ]
+ }
+ ```
+ - `JSON2`
+ ```json2
+ {
+ "items": [
+ "7272bcf6-b5ad-46dd-99a9-0c56faddf14c"
+ ]
+ }
+ ```
+
## RestAPI definitions
@@ -80,11 +129,10 @@ curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E847
## Colnod Penta server
-- Acces through: `penta-master` IP:`172.16.3.4`
+- Acces through: `penta-master` IP: `172.16.4.4`
- URL: `192.168.254.11:8443`
- Port forwarding: `ssh -L 8443:192.168.254.11:8443 penta-master`
- - `!!! does not work !!!`
-
+
```bash
curl -k --user "spaceti:E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0" -d '{"password":"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0","username":"spaceti"}' -H "Content-Type: application/json" https://192.168.254.11:8443/AaaManager/authSession
```
@@ -101,7 +149,7 @@ It is possible to chain requests: [see doc](https://support.insomnia.rest/articl
### Import workspace
-- import: `Insomnia_2019_10_01.yaml`
+- import: [Insomnia file on GitLab](https://gitlab.com/spaceti-app/integrations/acs/colnod-connector/blob/master/Insomnia_2019-10-15.yaml)
## Testing Blueprint API
diff --git a/src/app/main.cpp b/src/app/main.cpp
index 3a95aa2..0ff9f05 100644
--- a/src/app/main.cpp
+++ b/src/app/main.cpp
@@ -26,9 +26,9 @@ int main(int argc, char *argv[])
api.syncDataFromColnodToDB();
api.syncDataFromDBToColnod();
});
- QObject::connect(&api, &SyncManager::error, [](){
+ QObject::connect(&api, &SyncManager::error, &app, [](){
qDebug() << "error";
- QCoreApplication::exit();
- });
+ QCoreApplication::exit(1);
+ }, Qt::QueuedConnection);
return QCoreApplication::exec();
}
diff --git a/src/colnod/databasemanager.cpp b/src/colnod/databasemanager.cpp
index e2a6059..934baaa 100644
--- a/src/colnod/databasemanager.cpp
+++ b/src/colnod/databasemanager.cpp
@@ -10,9 +10,13 @@ DatabaseManager::DatabaseManager(const QString& host, const QString& dbName, con
db.setPassword(password);
if (!db.open())
{
- log("Opening error" + db.lastError().text());
+ opened = false;
+ Logger::log("Opening error" + db.lastError().text());
emit error();
}
+ else{
+ opened = true;
+ }
}
// add or update subject to db
@@ -139,7 +143,7 @@ bool DatabaseManager::executeQuery(QSqlQuery &query, const QString &statement)
if (!dryMode || getLastQuery(query).startsWith("SELECT")){
if (!query.exec()){
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
- log(QString(msg));
+ Logger::logToDb(QString(msg));
emit error();
}
}
@@ -151,7 +155,7 @@ bool DatabaseManager::executeQuery(QSqlQuery &query, const QString &statement)
if (!dryMode || statement.startsWith("SELECT")){
if (!query.exec(statement)){
QString msg = QString("Source: Database Manager, Error: %1").arg(query.lastError().text());
- log(QString(msg));
+ Logger::logToDb(QString(msg));
emit error();
}
}
@@ -300,3 +304,8 @@ bool DatabaseManager::checkDeletedToken(const QString &id)
query.next();
return query.value(0).toBool();
}
+
+bool DatabaseManager::isOpen()
+{
+ return opened;
+}
diff --git a/src/colnod/databasemanager.h b/src/colnod/databasemanager.h
index 1ce4b50..9604f7b 100644
--- a/src/colnod/databasemanager.h
+++ b/src/colnod/databasemanager.h
@@ -10,7 +10,7 @@
#include "subject.h"
#include "token.h"
#include
-//#include "logger.h"
+#include "logger.h"
class DatabaseManager : public QObject
@@ -41,6 +41,8 @@ public:
QString getSubjectNameById(const QString &id);
bool checkDeletedToken(const QString &id);
+ bool isOpen();
+
private:
bool checkIfExists(const QString& id, const QString& table);
@@ -53,4 +55,5 @@ signals:
private:
QSqlDatabase db;
bool dryMode = false;
+ bool opened = false;
};
diff --git a/src/colnod/datamanager.cpp b/src/colnod/datamanager.cpp
index c74fa82..723af35 100644
--- a/src/colnod/datamanager.cpp
+++ b/src/colnod/datamanager.cpp
@@ -3,12 +3,14 @@
DataManager::DataManager(const bool &dryMode)
:dryMode(dryMode)
{
- db = std::make_shared("192.168.1.94", "deloitte", "postgres", "34rjkciea12", dryMode);
+ db = std::make_shared("192.168.1.4", "deloitte", "postgres", "34rjkciea12", dryMode);
//db = std::make_shared("localhost", "deloitte", "postgres", "34rjkciea12");
- Logger::setDBMan(db);
- nextLastSync = db->getNow();
- lastSync = db->getLastSync();
- connect(db.get(), &DatabaseManager::error, this, &DataManager::error);
+ if (db->isOpen()){
+ Logger::setDBMan(db);
+ nextLastSync = db->getNow();
+ lastSync = db->getLastSync();
+ }
+ connect(db.get(), &DatabaseManager::error, this, &DataManager::error, Qt::QueuedConnection);
}
// load all tokens from colnod to comparing with working set from DB
@@ -77,20 +79,24 @@ void DataManager::fillSubjectsToUpdateColnod(const QString& response)
// load working sets with updated/deleted tokens from DB
void DataManager::fillTokensToChangeDB()
{
- QSqlQuery query = db->getUpdatedTokens();
- while (query.next())
- {
- auto token = std::make_shared();
- token->fromSQLRecord(query);
- if (token->getDeleted()){ // sort to delete / to update
- tokensFromDBToDeleteFromColnod.append(token->idToStringWithoutBraces());
- }
- else{
- tokensToUpdateFromDBToColnod.insert(token->idToStringWithoutBraces(), token);
+ if (db->isOpen()){
+ QSqlQuery query = db->getUpdatedTokens();
+ while (query.next())
+ {
+ auto token = std::make_shared();
+ token->fromSQLRecord(query);
+ if (token->getDeleted()){ // sort to delete / to update
+ tokensFromDBToDeleteFromColnod.append(token->idToStringWithoutBraces());
+ }
+ else{
+ tokensToUpdateFromDBToColnod.insert(token->idToStringWithoutBraces(), token);
+ }
}
+ qDebug() << "DB:" << tokensToUpdateFromDBToColnod.size() << "tokens to update";
+ qDebug() << "DB:" << tokensFromDBToDeleteFromColnod.size() << "tokens to delete";
}
- qDebug() << "DB:" << tokensToUpdateFromDBToColnod.size() << "tokens to update";
- qDebug() << "DB:" << tokensFromDBToDeleteFromColnod.size() << "tokens to delete";
+ else
+ emit error();
}
void DataManager::fillSubjectsToUpdateDB()
@@ -278,7 +284,8 @@ void DataManager::clear()
// on the very end of sync update last sync time to begin time of this sync
void DataManager::updateLastSync()
{
- db->updateLastSync(nextLastSync);
+ if (db->isOpen())
+ db->updateLastSync(nextLastSync);
}
// these to filter functions solve colision tokens -> remove when change on this token is earlier then change on the same token on the other side (Colnod/DB)
diff --git a/src/colnod/datamanager.h b/src/colnod/datamanager.h
index 0c365d2..37c26ee 100644
--- a/src/colnod/datamanager.h
+++ b/src/colnod/datamanager.h
@@ -50,6 +50,8 @@ public:
const quint64 &getLastSync() {return lastSync;}
const quint64 &getCurrentSync() {return nextLastSync;}
+ bool isDBOpened() {return db->isOpen();}
+
public slots:
void clear();
void setLastUpdate();
diff --git a/src/colnod/logger.cpp b/src/colnod/logger.cpp
index 1326479..05e6c91 100644
--- a/src/colnod/logger.cpp
+++ b/src/colnod/logger.cpp
@@ -1,4 +1,5 @@
#include "logger.h"
+#include "databasemanager.h"
#include
@@ -24,8 +25,8 @@ void Logger::log(const QString& msg)
void Logger::logToDb(const QString &msg)
{
- Q_ASSERT(Logger::dbMan);
- Logger::dbMan->log(msg);
+ if (dbMan)
+ Logger::dbMan->log(msg);
}
void Logger::setDBMan(std::shared_ptr dbMan)
diff --git a/src/colnod/logger.h b/src/colnod/logger.h
index 7c62211..f28bc1d 100644
--- a/src/colnod/logger.h
+++ b/src/colnod/logger.h
@@ -3,7 +3,9 @@
#include
#include
#include
-#include "databasemanager.h"
+#include
+
+class DatabaseManager;
class Logger
diff --git a/src/colnod/syncmanager.cpp b/src/colnod/syncmanager.cpp
index 8db22d9..411058c 100644
--- a/src/colnod/syncmanager.cpp
+++ b/src/colnod/syncmanager.cpp
@@ -1,13 +1,12 @@
#include "syncmanager.h"
SyncManager::SyncManager(bool dryMode)
+ :dryMode(dryMode)
{
reqMan = std::make_unique();
dataMan = std::make_unique(dryMode);
- this->dryMode = dryMode;
-
- connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error);
- connect(dataMan.get(), &DataManager::error, this, &SyncManager::error);
+ connect(reqMan.get(), &RequestManager::error, this, &SyncManager::error, Qt::QueuedConnection);
+ connect(dataMan.get(), &DataManager::error, this, &SyncManager::error, Qt::QueuedConnection);
}
void SyncManager::loadDataFromColnod()
@@ -125,8 +124,10 @@ void SyncManager::syncDataFromDBToColnod()
if (!dataMan->getTokensToDeleteDB().isEmpty()){
syncDeletedDataFromDBToColnod();
}
- else
+ else{
deleteFinished = true;
+ areDataUpdatedToColnod();
+ }
}
// add or update tokens to Colnod
@@ -184,6 +185,11 @@ void SyncManager::prepareDatabase()
dataMan->emptyDatabase();
}
+bool SyncManager::isValid()
+{
+ return dataMan->isDBOpened();
+}
+
// emit signal when all data is downloaded from Colnod
void SyncManager::areChangedDataReady()
{
diff --git a/src/colnod/syncmanager.h b/src/colnod/syncmanager.h
index b7fbf58..629c495 100644
--- a/src/colnod/syncmanager.h
+++ b/src/colnod/syncmanager.h
@@ -17,6 +17,8 @@ public:
void prepareDatabase();
+ bool isValid();
+
public slots:
void loadDataFromColnod();
void loadDataFromDB();
diff --git a/test/unitTests/UnitTest.cpp b/test/unitTests/UnitTest.cpp
index 0093e95..8ef2339 100644
--- a/test/unitTests/UnitTest.cpp
+++ b/test/unitTests/UnitTest.cpp
@@ -7,14 +7,14 @@ void UnitTest::initTestCase()
void UnitTest::loginSuccessfully()
{
- auto testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(successLogin()));
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::successLogin);
QVERIFY(spy.isValid());
- testAccess->login();
+ testAccess.login();
spy.wait(timeout);
QCOMPARE(spy.count(), 1);
- QString json = testAccess->jsonResponse;
+ QString json = testAccess.jsonResponse;
qDebug() << json;
QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8());
QVERIFY2(doc.object().value("id").isString(), "No parameter 'id' in response");
@@ -23,14 +23,12 @@ void UnitTest::loginSuccessfully()
//POST request w/o datas
void UnitTest::getSubjects()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
QVERIFY(spy.isValid());
- Response* response = testAccess->getSubjects();
+ Response* response = testAccess.getSubjects();
QSignalSpy spy1(response, &Response::ready);
-
spy.wait(timeout);
-
QCOMPARE(spy.count(), 1);
QCOMPARE(spy1.count(), 1);
QString json = response->getJson();
@@ -39,13 +37,13 @@ void UnitTest::getSubjects()
QVERIFY2(doc.object().value("items").isArray(), "No parameter 'id' in response");
qDebug() << doc.object().value("items").toArray()[0].toObject()["id"].toString();
QVERIFY2(doc.object().value("items").toArray()[0].toObject()["id"].isString(), "ada");
-
+ response->deleteLater();
}
void UnitTest::getTokens()
{
- auto* testAccess = new RequestManager();
- Response* response = testAccess->getTokens();
+ RequestManager testAccess;
+ Response* response = testAccess.getTokens();
QSignalSpy spy(response, &Response::ready);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
@@ -57,149 +55,161 @@ void UnitTest::getTokens()
QVERIFY2(doc.object().value("items").isArray(), "No parameter 'id' in response");
qDebug() << doc.object().value("items").toArray()[0].toObject()["id"].toString();
QVERIFY2(doc.object().value("items").toArray()[0].toObject()["id"].isString(), "ada");
+ response->deleteLater();
}
void UnitTest::getTokenSubject()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getTokenSubject();
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getTokenSubject();
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getSubjectsUpdated()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getSubjectsUpdated(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getSubjectsUpdated(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getSubjectsDeleted()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getSubjectsDeleted(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getSubjectsDeleted(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getTokensUpdated()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getTokensUpdated(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getTokensUpdated(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getTokensDeleted()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getTokensDeleted(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getTokensDeleted(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getAccessGroups()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getAccessGroups();
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getAccessGroups();
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getAccessGroupsUpdated()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getAccessGroupsUpdated(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getAccessGroupsUpdated(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getAccessGroupsDeleted()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getAccessGroupsDeleted(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getAccessGroupsDeleted(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getAccessGroupMembership()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getAccessGroupMembership();
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getAccessGroupMembership();
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getAccessGroupMembershipUpdated()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getAccessGroupMembershipUpdated(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getAccessGroupMembershipUpdated(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::getAccessGroupMembershipDeleted()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getAccessGroupMembershipDeleted(epochMS);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getAccessGroupMembershipDeleted(epochMS);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::setTokens()
@@ -208,139 +218,65 @@ void UnitTest::setTokens()
QHash> tokens;
auto token = getTestToken();
tokens.insert(token->idToStringWithoutBraces(), token);
- auto testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->setTokens(tokens);
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.setTokens(tokens);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::deleteTokens()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
QList ids;
ids.append("582c982d-6fd7-4856-8548-7ce542791c7a");
ids.append("3ff23b41-3da3-4b33-82ce-d8e2d8c9a546");
- Response* response = testAccess->deleteTokens(ids);
+ Response* response = testAccess.deleteTokens(ids);
QCOMPARE(spy.count(), 0);
spy.wait(timeout);
QVERIFY(spy.isValid());
QCOMPARE(spy.count(), 1);
QString json = response->getJson();
QVERIFY(!json.isEmpty());
+ response->deleteLater();
}
void UnitTest::subjectJSONParser()
{
- /*
- QFile jsonData(QDir::current().filePath("subjects.json"));
-
- if (!jsonData.open(QIODevice::ReadOnly)) {
- qCritical() << "Couldn't open config file config.json" << QDir::current().filePath("subjects.json");
- QCoreApplication::exit(-1);
- return;
- }
-
- QJsonDocument doc = QJsonDocument::fromJson(jsonData.readAll());
- QJsonObject obj = doc.object();
- QJsonArray arr = obj["items"].toArray();
- */
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getSubjects();
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getSubjects();
spy.wait(timeout);
QString json = response->getJson();
QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8());
QJsonArray arr = doc.object()["items"].toArray();
- auto testSubject = new Subject();
- testSubject->fromJSON(arr[1].toObject());
- qDebug() << testSubject->getName() << " Size: " << arr.size();
- QVERIFY(!testSubject->getName().isEmpty());
+ Subject testSubject;
+ testSubject.fromJSON(arr[1].toObject());
+ qDebug() << testSubject.getName() << " Size: " << arr.size();
+ QVERIFY(!testSubject.getName().isEmpty());
+ response->deleteLater();
}
void UnitTest::tokenJSONParser()
{
- auto* testAccess = new RequestManager();
- QSignalSpy spy(testAccess, SIGNAL(responseReady()));
- Response* response = testAccess->getTokens();
+ RequestManager testAccess;
+ QSignalSpy spy(&testAccess, &RequestManager::responseReady);
+ Response* response = testAccess.getTokens();
spy.wait(timeout);
QString json = response->getJson();
QJsonDocument doc = QJsonDocument::fromJson(json.toUtf8());
QJsonArray arr = doc.object()["items"].toArray();
- auto testToken = new Token();
- testToken->fromJSON(arr[5].toObject());
- qDebug() << testToken->getName() << " Size: " << arr.size();
- QVERIFY(!testToken->getName().isEmpty());
-}
-
-//void UnitTest::connectToDB()
-//{
-// DatabaseManager *db = new DatabaseManager("192.168.1.94", "deloitte", "postgres", "34rjkciea12");
-// QVERIFY(db->getOpened());
-// qDebug() << db->getTestMessage(1);
-// QVERIFY(true);
-// QCOMPARE(db->getTestMessage(1), QStringLiteral("Hello world"));
-// QCOMPARE(db->getTestMessage(db->createTestRecord("Now it's diffrent")), QStringLiteral("Now it's diffrent"));
-//}
-
-/*
-void UnitTest::debugConnection()
-{
- QSslSocket ssl;// = new QSslSocket();
- ssl.connectToHostEncrypted("192.168.1.3", 8443);
- ssl.ignoreSslErrors();
- if (!ssl.waitForEncrypted())
- {
- qDebug() << ssl.errorString();
- }
- QString tmp = "POST /AaaManager/authSession HTTP/1.1\r\nHost: 192.168.1.3:8443\r\nAuthorization: Basic c3BhY2V0aTpFN0ZFQTA3REJDODJGQjlCQTM0QjJFNDUzRTJFRkU4OUYwNTgzRTcxODc1NDM1MDdFRjExRTg0NzI2MDcxRkU0Mjg0NDUzNzJGMkU0NkI0NTVFQjBDNzk3NDdDNTFFMzYyRjQwM0NFMzk0NzNBMkE4QzJERkEwQ0U1Qzk4MjZDMA==\r\nUser-Agent: curl/7.65.3\r\nAccept: **\r\nContent-Type: application/json\r\nContent-Length: 164\r\n\r\n{\"password\":\"E7FEA07DBC82FB9BA34B2E453E2EFE89F0583E7187543507EF11E84726071FE428445372F2E46B455EB0C79747C51E362F403CE39473A2A8C2DFA0CE5C9826C0\",\"username\":\"spaceti\"}";
- qDebug().noquote() << tmp.toUtf8();
- ssl.write(tmp.toUtf8());
- QString data;
- while (ssl.waitForReadyRead() && data.isEmpty())
- {
- data.append(ssl.readAll().data());
- }
- qDebug().noquote() << data;
- int index = data.lastIndexOf("id");
- QString tkn = data.mid( index + 5, 36);
- tkn = tkn + ":";
- qDebug() << "parsed token : " <localSaveTokens();
- QVERIFY(true);
-
-}
-
-void UnitTest::getUuid()
-{
- qDebug() << QUuid::createUuid().toString().mid(1,36);
- QCOMPARE(1,1);
+ Token testToken;
+ testToken.fromJSON(arr[5].toObject());
+ qDebug() << testToken.getName() << " Size: " << arr.size();
+ QVERIFY(!testToken.getName().isEmpty());
+ response->deleteLater();
}
std::shared_ptr UnitTest::getTestToken()
diff --git a/test/unitTests/unittest.h b/test/unitTests/unittest.h
index 0e29652..5e6185b 100644
--- a/test/unitTests/unittest.h
+++ b/test/unitTests/unittest.h
@@ -37,11 +37,6 @@ private slots:
void deleteTokens();
void subjectJSONParser();
void tokenJSONParser();
- //void connectToDB();
- //void debugConnection();
- void saveDataToDB();
- void getUuid();
-
private:
std::shared_ptr getTestToken();