From f5ea0ed1a02f4a07c3949e107a15530310a66cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Thu, 28 Nov 2019 10:16:58 +0100 Subject: [PATCH 1/5] Add tests for colnod Api --- test/auto/auto.pro | 1 + test/auto/colnod/tst_colnodapi.cpp | 42 ++++++++++++++++++++++++++++++ test/auto/colnod/tst_colnodapi.pro | 11 ++++++++ 3 files changed, 54 insertions(+) create mode 100644 test/auto/colnod/tst_colnodapi.cpp create mode 100644 test/auto/colnod/tst_colnodapi.pro diff --git a/test/auto/auto.pro b/test/auto/auto.pro index fb0ec6e..01b66a1 100644 --- a/test/auto/auto.pro +++ b/test/auto/auto.pro @@ -2,3 +2,4 @@ TEMPLATE = subdirs SUBDIRS += \ database/tst_databaseapi.pro \ + colnod/tst_colnodapi.pro \ diff --git a/test/auto/colnod/tst_colnodapi.cpp b/test/auto/colnod/tst_colnodapi.cpp new file mode 100644 index 0000000..009793f --- /dev/null +++ b/test/auto/colnod/tst_colnodapi.cpp @@ -0,0 +1,42 @@ +#include + +#include "colnodapi.h" +// add necessary includes here + +class ColnodTest : public QObject +{ + Q_OBJECT + friend class ColnodAPI; +private slots: + void login(); + void getTokens(); +}; + + + + +void ColnodTest::login() +{ + serversdk::RequestManager reqMan; + ColnodAPI colnod(&reqMan); + auto login = colnod.requestLogin(); + QSignalSpy spy(login.get(), &serversdk::Request::finished); + QCOMPARE(spy.count(), 0); + QVERIFY(spy.wait()); + QCOMPARE(spy.count(), 1); + QVERIFY(login->responseData().contains("id")); +} + +void ColnodTest::getTokens() +{ + serversdk::RequestManager reqMan; + ColnodAPI colnod(&reqMan); + auto login = colnod.requestLogin(); + QSignalSpy spy(login.get(), &serversdk::Request::finished); + spy.wait(); + qDebug().noquote() << login->responseData().mid(7,36); +} + +QTEST_GUILESS_MAIN(ColnodTest) + +#include "tst_colnodapi.moc" diff --git a/test/auto/colnod/tst_colnodapi.pro b/test/auto/colnod/tst_colnodapi.pro new file mode 100644 index 0000000..b0e4013 --- /dev/null +++ b/test/auto/colnod/tst_colnodapi.pro @@ -0,0 +1,11 @@ +QT += testlib +QT -= gui + +CONFIG += qt console warn_on depend_includepath testcase +CONFIG -= app_bundle + +TEMPLATE = app + +SOURCES += tst_colnodapi.cpp + +include(../../test.pri) From 5cc57ac9e7624221401a78cbf316887eed4779a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Thu, 28 Nov 2019 10:18:08 +0100 Subject: [PATCH 2/5] Changes because of tests --- src/colnod/colnodapi.cpp | 71 +++++++++++++++--------------- src/colnod/colnodapi.h | 22 ++++++--- test/auto/colnod/tst_colnodapi.cpp | 7 ++- 3 files changed, 57 insertions(+), 43 deletions(-) diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index eadb3b9..85f722d 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -20,7 +20,7 @@ void ColnodAPI::downloadData() auto login = requestLogin(); connect(login.get(), &serversdk::Request::finished, this, [=](){ // Get login token - if (login->status() != 200) { + if (checkRequest(login)) { emit error(); } @@ -28,12 +28,35 @@ void ColnodAPI::downloadData() token.fromJson(login->responseData()); authToken = token.id(); + std::shared_ptr data; + + auto errorHandler = [=](std::shared_ptr request){ + if (!checkRequest(request)) { + qWarning(colnod) << "ERROR during calling" << request->url() << ", request unsuccessful"; + mValid = false; + } + else if (!checkResponse(request->responseData())) { + qWarning(colnod) << "Data from" << request->url() << "are invalid"; + mValid = false; + } + saveUpdatedTokens(request->responseData()); + emit partOfDataReady(data); + }; + // if I have all data emit downloadDataFinished connect(this, &ColnodAPI::partOfDataReady, this, &ColnodAPI::areDataReady); - getTokensUpdated(mLastSync); - getTokensDeleted(mLastSync); - getSubjectsUpdated(mLastSync); - getSubjectsDeleted(mLastSync); + + auto tokensRequest = getTokensUpdated(mLastSync); + connect(tokensRequest.get(), &serversdk::Request::finished, errorHandler); + + auto deletedTokensRequest = getTokensDeleted(mLastSync); + connect(deletedTokensRequest.get(), &serversdk::Request::finished, errorHandler); + + auto subjectsRequest = getSubjectsUpdated(mLastSync); + connect(subjectsRequest.get(), &serversdk::Request::finished, errorHandler); + + auto deletedSubjectsRequest = getSubjectsDeleted(mLastSync); + connect(deletedSubjectsRequest.get(), &serversdk::Request::finished, errorHandler); }); } @@ -88,45 +111,23 @@ std::shared_ptr ColnodAPI::requestLogin() return loginRequest; } -void ColnodAPI::getTokensUpdated(const Timestamp &time) +std::shared_ptr ColnodAPI::getTokensUpdated(const Timestamp &time) { auto request = composeRequest("/TokenManager/getTokensUpdated", time.jsonData()); request->setUserName(authToken); mReqMan->processRequest(request); - connect(request.get(), &serversdk::Request::finished, [=](){ - if (!checkRequest(request)) { - qWarning(colnod) << "ERROR during calling /TokenManager/getTokensUpdated, request unsuccessful"; - mValid = false; - } - else if (!checkResponse(request->responseData())) { - qWarning(colnod) << "Data from /TokenManager/getTokensUpdated are invalid"; - mValid = false; - } - saveUpdatedTokens(request->responseData()); - emit partOfDataReady(mData); - }); + return request; } -void ColnodAPI::getTokensDeleted(const Timestamp &time) +std::shared_ptr ColnodAPI::getTokensDeleted(const Timestamp &time) { auto request = composeRequest("/TokenManager/getTokensDeleted", time.jsonData()); request->setUserName(authToken); mReqMan->processRequest(request); - connect(request.get(), &serversdk::Request::finished, [=](){ - if (!checkRequest(request)) { - qWarning(colnod) << "ERROR during calling /TokenManager/getTokensDeleted, request unsuccessful"; - mValid = false; - } - else if (!checkResponse(request->responseData())) { - qWarning(colnod) << "Data from /TokenManager/getTokensDeleted are invalid"; - mValid = false; - } - saveDeletedTokens(request->responseData()); - emit partOfDataReady(); - }); + return request; } -void ColnodAPI::getSubjectsUpdated(const Timestamp &time) +std::shared_ptr ColnodAPI::getSubjectsUpdated(const Timestamp &time) { auto request = composeRequest("/SubjectManager/getSubjectsUpdated", time.jsonData()); request->setUserName(authToken); @@ -145,7 +146,7 @@ void ColnodAPI::getSubjectsUpdated(const Timestamp &time) }); } -void ColnodAPI::getSubjectsDeleted(const Timestamp &time) +std::shared_ptr ColnodAPI::getSubjectsDeleted(const Timestamp &time) { auto request = composeRequest("/SubjectManager/getSubjectsDeleted", time.jsonData()); request->setUserName(authToken); @@ -164,7 +165,7 @@ void ColnodAPI::getSubjectsDeleted(const Timestamp &time) }); } -void ColnodAPI::setTokens(const QHash> &tokens) +std::shared_ptr ColnodAPI::setTokens(const QHash> &tokens) { auto request = composeRequest("/TokenManager/setTokens", Token::tokensToColnodJson(tokens)); request->setUserName(authToken); @@ -185,7 +186,7 @@ void ColnodAPI::setTokens(const QHash> &tokens) }); } -void ColnodAPI::deleteTokens(const QList &ids) +std::shared_ptr ColnodAPI::deleteTokens(const QList &ids) { auto request = composeRequest("/TokenManager/deleteTokens", Token::idsToJSON(ids)); request->setUserName(authToken); diff --git a/src/colnod/colnodapi.h b/src/colnod/colnodapi.h index f75abbe..5796b27 100644 --- a/src/colnod/colnodapi.h +++ b/src/colnod/colnodapi.h @@ -23,6 +23,16 @@ class Timestamp : public serversdk::DatabaseTable { Q_OBJECT TABLE_PROPERTY(qint64, timestamp, set_timestamp, 0) public: + Timestamp() = default; + explicit Timestamp(qint64 time) + { + set_timestamp(time); + } + explicit Timestamp(QDateTime time) + { + set_timestamp(time.toMSecsSinceEpoch()); + } + QString toDateString() { return QDateTime::fromMSecsSinceEpoch(a_timestamp).toString("yyyy-MM-dd hh:mm:ss.zzz"); @@ -43,13 +53,13 @@ public: std::shared_ptr requestLogin(); - void getTokensUpdated(const Timestamp &time); - void getTokensDeleted(const Timestamp &time); - void getSubjectsUpdated(const Timestamp &time); - void getSubjectsDeleted(const Timestamp &time); + std::shared_ptr getTokensUpdated(const Timestamp &time); + std::shared_ptr getTokensDeleted(const Timestamp &time); + std::shared_ptr getSubjectsUpdated(const Timestamp &time); + std::shared_ptr getSubjectsDeleted(const Timestamp &time); - void setTokens(const QHash> &tokens); - void deleteTokens(const QList &tokenIds); + std::shared_ptr setTokens(const QHash> &tokens); + std::shared_ptr deleteTokens(const QList &tokenIds); // Attributes QString userName() const; diff --git a/test/auto/colnod/tst_colnodapi.cpp b/test/auto/colnod/tst_colnodapi.cpp index 009793f..e11c9fa 100644 --- a/test/auto/colnod/tst_colnodapi.cpp +++ b/test/auto/colnod/tst_colnodapi.cpp @@ -6,7 +6,6 @@ class ColnodTest : public QObject { Q_OBJECT - friend class ColnodAPI; private slots: void login(); void getTokens(); @@ -31,10 +30,14 @@ void ColnodTest::getTokens() { serversdk::RequestManager reqMan; ColnodAPI colnod(&reqMan); + + // get login token auto login = colnod.requestLogin(); QSignalSpy spy(login.get(), &serversdk::Request::finished); spy.wait(); - qDebug().noquote() << login->responseData().mid(7,36); + QString token = login->responseData().mid(7,36); + Timestamp time(QDateTime::currentMSecsSinceEpoch()); + colnod.getTokensUpdated(time); } QTEST_GUILESS_MAIN(ColnodTest) From ef0eefa74161e3c7c4187b9cee7b1828e9feb148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Thu, 28 Nov 2019 10:47:48 +0100 Subject: [PATCH 3/5] new aproach to transfering data --- server-sdk | 2 +- src/colnod/colnodapi.cpp | 75 ++++++++++++++++++---------------------- src/colnod/colnodapi.h | 10 +++--- 3 files changed, 40 insertions(+), 47 deletions(-) diff --git a/server-sdk b/server-sdk index 61feac4..2041fed 160000 --- a/server-sdk +++ b/server-sdk @@ -1 +1 @@ -Subproject commit 61feac4632372fcf781449da0bf0de14f1793af8 +Subproject commit 2041fed9fab14658ceb574edaf5e4d31ed81e23a diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index 85f722d..c0c613b 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -39,8 +39,6 @@ void ColnodAPI::downloadData() qWarning(colnod) << "Data from" << request->url() << "are invalid"; mValid = false; } - saveUpdatedTokens(request->responseData()); - emit partOfDataReady(data); }; // if I have all data emit downloadDataFinished @@ -48,15 +46,31 @@ void ColnodAPI::downloadData() auto tokensRequest = getTokensUpdated(mLastSync); connect(tokensRequest.get(), &serversdk::Request::finished, errorHandler); + connect(tokensRequest.get(), &serversdk::Request::finished, [=](){ + saveUpdatedTokens(data, tokensRequest->responseData()); + emit partOfDataReady(data); + }); auto deletedTokensRequest = getTokensDeleted(mLastSync); connect(deletedTokensRequest.get(), &serversdk::Request::finished, errorHandler); + connect(deletedTokensRequest.get(), &serversdk::Request::finished, [=](){ + saveDeletedTokens(data, deletedTokensRequest->responseData()); + emit partOfDataReady(data); + }); auto subjectsRequest = getSubjectsUpdated(mLastSync); connect(subjectsRequest.get(), &serversdk::Request::finished, errorHandler); + connect(subjectsRequest.get(), &serversdk::Request::finished, [=](){ + saveUpdatedSubjects(data, subjectsRequest->responseData()); + emit partOfDataReady(data); + }); auto deletedSubjectsRequest = getSubjectsDeleted(mLastSync); connect(deletedSubjectsRequest.get(), &serversdk::Request::finished, errorHandler); + connect(deletedSubjectsRequest.get(), &serversdk::Request::finished, [=](){ + saveDeletedSubjects(data, deletedSubjectsRequest->responseData()); + emit partOfDataReady(data); + }); }); } @@ -132,18 +146,7 @@ std::shared_ptr ColnodAPI::getSubjectsUpdated(const Timestam auto request = composeRequest("/SubjectManager/getSubjectsUpdated", time.jsonData()); request->setUserName(authToken); mReqMan->processRequest(request); - connect(request.get(), &serversdk::Request::finished, [=](){ - if (!checkRequest(request)) { - qWarning(colnod) << "ERROR during calling /SubjectManager/getSubjectsUpdated, request unsuccessful"; - mValid = false; - } - else if (!checkResponse(request->responseData())) { - qWarning(colnod) << "Data from /SubjectManager/getSubjectsUpdated are invalid"; - mValid = false; - } - saveUpdatedSubjects(request->responseData()); - emit partOfDataReady(); - }); + return request; } std::shared_ptr ColnodAPI::getSubjectsDeleted(const Timestamp &time) @@ -151,18 +154,7 @@ std::shared_ptr ColnodAPI::getSubjectsDeleted(const Timestam auto request = composeRequest("/SubjectManager/getSubjectsDeleted", time.jsonData()); request->setUserName(authToken); mReqMan->processRequest(request); - connect(request.get(), &serversdk::Request::finished, [=](){ - if (!checkRequest(request)) { - qWarning(colnod) << "ERROR during calling /SubjectManager/getSubjectsDeleted, request unsuccessful"; - mValid = false; - } - else if (!checkResponse(request->responseData())) { - qWarning(colnod) << "Data from /SubjectManager/getSubjectsDeleted are invalid"; - mValid = false; - } - saveDeletedSubjects(request->responseData()); - emit partOfDataReady(); - }); + return request; } std::shared_ptr ColnodAPI::setTokens(const QHash> &tokens) @@ -184,6 +176,7 @@ std::shared_ptr ColnodAPI::setTokens(const QHash ColnodAPI::deleteTokens(const QList &ids) @@ -205,7 +198,7 @@ std::shared_ptr ColnodAPI::deleteTokens(const QList emit partOfDataProcessFinished(); } }); - + return request; } std::shared_ptr ColnodAPI::composeRequest(const QString &endpoint, const QByteArray &data) @@ -258,18 +251,18 @@ void ColnodAPI::setUserName(const QString &userName) mUserName = userName; } -void ColnodAPI::areDataReady() +void ColnodAPI::areDataReady(std::shared_ptr data) { if (++amountData == 4) { qInfo(colnod) << tab << "-> COLNOD DATA:"; - qInfo(colnod) << tab << tab << mData->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED"; - qInfo(colnod) << tab << tab << mData->deletedTokens.size() << "TOKENS DELETED"; - qInfo(colnod) << tab << tab << mData->updatedSubjects.size() << "SUBJECTS WERE ADDED/UPDATED"; - qInfo(colnod) << tab << tab << mData->deletedSubjects.size() << "SUBJECTS DELETED"; + qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED"; + qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED"; + qInfo(colnod) << tab << tab << data->updatedSubjects.size() << "SUBJECTS WERE ADDED/UPDATED"; + qInfo(colnod) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED"; qInfo(colnod) << dash; - emit downloadDataFinished(mData); + emit downloadDataFinished(data); newData(); } } @@ -281,31 +274,31 @@ void ColnodAPI::isDataProcessFinished() } } -void ColnodAPI::saveUpdatedTokens(const QByteArray &responseData) +void ColnodAPI::saveUpdatedTokens(std::shared_ptr data, const QByteArray &responseData) { - mData->loadTokensFromJson(responseData); + data->loadTokensFromJson(responseData); } -void ColnodAPI::saveDeletedTokens(const QByteArray &responseData) +void ColnodAPI::saveDeletedTokens(std::shared_ptr data, const QByteArray &responseData) { QJsonDocument doc = QJsonDocument::fromJson(responseData); QJsonArray items = doc.object()["items"].toArray(); for (QJsonValueRef item : items) { - mData->deletedTokens.append(item.toString()); + data->deletedTokens.append(item.toString()); } } -void ColnodAPI::saveUpdatedSubjects(const QByteArray &responseData) +void ColnodAPI::saveUpdatedSubjects(std::shared_ptr data, const QByteArray &responseData) { - mData->loadSubjectsFormJson(responseData); + data->loadSubjectsFormJson(responseData); } -void ColnodAPI::saveDeletedSubjects(const QByteArray &responseData) +void ColnodAPI::saveDeletedSubjects(std::shared_ptr data, const QByteArray &responseData) { QJsonDocument doc = QJsonDocument::fromJson(responseData); QJsonArray items = doc.object()["items"].toArray(); for (QJsonValueRef item : items) { - mData->deletedSubjects.append(item.toString()); + data->deletedSubjects.append(item.toString()); } } diff --git a/src/colnod/colnodapi.h b/src/colnod/colnodapi.h index 5796b27..9ef2e9d 100644 --- a/src/colnod/colnodapi.h +++ b/src/colnod/colnodapi.h @@ -72,14 +72,14 @@ public: bool isValid(); private: - Q_SLOT void areDataReady(); + Q_SLOT void areDataReady(std::shared_ptr data); Q_SLOT void isDataProcessFinished(); private: - void saveUpdatedTokens(const QByteArray &responseData); - void saveUpdatedSubjects(const QByteArray &responseData); - void saveDeletedTokens(const QByteArray &responseData); - void saveDeletedSubjects(const QByteArray &responseData); + void saveUpdatedTokens(std::shared_ptr data, const QByteArray &responseData); + void saveUpdatedSubjects(std::shared_ptr data, const QByteArray &responseData); + void saveDeletedTokens(std::shared_ptr data, const QByteArray &responseData); + void saveDeletedSubjects(std::shared_ptr data, const QByteArray &responseData); void newData(); From 3709df6b6d3e026142ad0c7d05f2069370ae9666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Thu, 28 Nov 2019 11:19:44 +0100 Subject: [PATCH 4/5] fix wrong code --- src/colnod/colnodapi.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index c0c613b..6554923 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -20,7 +20,7 @@ void ColnodAPI::downloadData() auto login = requestLogin(); connect(login.get(), &serversdk::Request::finished, this, [=](){ // Get login token - if (checkRequest(login)) { + if (!checkRequest(login)) { emit error(); } @@ -28,7 +28,7 @@ void ColnodAPI::downloadData() token.fromJson(login->responseData()); authToken = token.id(); - std::shared_ptr data; + auto data = std::make_shared(); auto errorHandler = [=](std::shared_ptr request){ if (!checkRequest(request)) { From 818416504b7339275d251e861e7fe1a9e4859939 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Thu, 28 Nov 2019 11:29:51 +0100 Subject: [PATCH 5/5] download data from colnod test --- src/colnod/colnodapi.cpp | 11 +++++------ src/colnod/colnodapi.h | 6 +++++- src/colnod/syncmanager.cpp | 4 ++-- test/auto/colnod/tst_colnodapi.cpp | 28 +++++++++++++++++++++++++++- 4 files changed, 39 insertions(+), 10 deletions(-) diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index 6554923..4340c8b 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -14,7 +14,7 @@ ColnodAPI::ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync, // ----------------------------------- } -void ColnodAPI::downloadData() +void ColnodAPI::downloadData(const Timestamp &time) { // Have to get Login auto login = requestLogin(); @@ -44,28 +44,28 @@ void ColnodAPI::downloadData() // if I have all data emit downloadDataFinished connect(this, &ColnodAPI::partOfDataReady, this, &ColnodAPI::areDataReady); - auto tokensRequest = getTokensUpdated(mLastSync); + auto tokensRequest = getTokensUpdated(time); connect(tokensRequest.get(), &serversdk::Request::finished, errorHandler); connect(tokensRequest.get(), &serversdk::Request::finished, [=](){ saveUpdatedTokens(data, tokensRequest->responseData()); emit partOfDataReady(data); }); - auto deletedTokensRequest = getTokensDeleted(mLastSync); + auto deletedTokensRequest = getTokensDeleted(time); connect(deletedTokensRequest.get(), &serversdk::Request::finished, errorHandler); connect(deletedTokensRequest.get(), &serversdk::Request::finished, [=](){ saveDeletedTokens(data, deletedTokensRequest->responseData()); emit partOfDataReady(data); }); - auto subjectsRequest = getSubjectsUpdated(mLastSync); + auto subjectsRequest = getSubjectsUpdated(time); connect(subjectsRequest.get(), &serversdk::Request::finished, errorHandler); connect(subjectsRequest.get(), &serversdk::Request::finished, [=](){ saveUpdatedSubjects(data, subjectsRequest->responseData()); emit partOfDataReady(data); }); - auto deletedSubjectsRequest = getSubjectsDeleted(mLastSync); + auto deletedSubjectsRequest = getSubjectsDeleted(time); connect(deletedSubjectsRequest.get(), &serversdk::Request::finished, errorHandler); connect(deletedSubjectsRequest.get(), &serversdk::Request::finished, [=](){ saveDeletedSubjects(data, deletedSubjectsRequest->responseData()); @@ -263,7 +263,6 @@ void ColnodAPI::areDataReady(std::shared_ptr data) qInfo(colnod) << dash; emit downloadDataFinished(data); - newData(); } } diff --git a/src/colnod/colnodapi.h b/src/colnod/colnodapi.h index 9ef2e9d..af79297 100644 --- a/src/colnod/colnodapi.h +++ b/src/colnod/colnodapi.h @@ -24,6 +24,10 @@ class Timestamp : public serversdk::DatabaseTable { TABLE_PROPERTY(qint64, timestamp, set_timestamp, 0) public: Timestamp() = default; + Timestamp(const Timestamp &time) + { + this->set_timestamp(time.timestamp()); + } explicit Timestamp(qint64 time) { set_timestamp(time); @@ -46,7 +50,7 @@ public: ColnodAPI() = default; ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync = 0, const bool &dryMode = false, const QString &userName = "spaceti", const QString &password = "spaceti1"); - void downloadData(); + void downloadData(const Timestamp &time); void processData(const std::shared_ptr &data); // New approach diff --git a/src/colnod/syncmanager.cpp b/src/colnod/syncmanager.cpp index 5f39e5c..801bb0a 100644 --- a/src/colnod/syncmanager.cpp +++ b/src/colnod/syncmanager.cpp @@ -63,7 +63,7 @@ bool SyncManager::startSynchronization() - colnod->downloadData(); + colnod->downloadData(Timestamp(syncBegin)); connect(colnod.get(), &ColnodAPI::downloadDataFinished, [=](std::shared_ptr data) { // NOW I HAVE DATA FROM COLNOD @@ -127,7 +127,7 @@ bool SyncManager::downloadData() connect(colnod.get(), &ColnodAPI::downloadDataFinished, this, &SyncManager::saveColnodData); //connect(database.get(), &DatabaseAPI::downloadDataFinished, this, &SyncManager::saveDatabaseData); //database->downloadData(); - colnod->downloadData(); + //colnod->downloadData(); return res; } diff --git a/test/auto/colnod/tst_colnodapi.cpp b/test/auto/colnod/tst_colnodapi.cpp index e11c9fa..2e6c57f 100644 --- a/test/auto/colnod/tst_colnodapi.cpp +++ b/test/auto/colnod/tst_colnodapi.cpp @@ -9,6 +9,10 @@ class ColnodTest : public QObject private slots: void login(); void getTokens(); + void download_data_test(); + +private: + QString getLoginToken(ColnodAPI &colnod); }; @@ -35,11 +39,33 @@ void ColnodTest::getTokens() auto login = colnod.requestLogin(); QSignalSpy spy(login.get(), &serversdk::Request::finished); spy.wait(); - QString token = login->responseData().mid(7,36); + QString token = getLoginToken(colnod); Timestamp time(QDateTime::currentMSecsSinceEpoch()); colnod.getTokensUpdated(time); } +void ColnodTest::download_data_test() +{ + serversdk::RequestManager reqMan; + ColnodAPI colnod(&reqMan); + + Timestamp time(QDateTime::currentMSecsSinceEpoch()); + colnod.downloadData(time); + QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished); + QVERIFY(spy.wait()); + auto arguments = spy.takeFirst(); + QVERIFY(arguments.first().data()); +} + +QString ColnodTest::getLoginToken(ColnodAPI &colnod) +{ + auto login = colnod.requestLogin(); + QSignalSpy spy(login.get(), &serversdk::Request::finished); + spy.wait(); + return login->responseData().mid(7,36); + +} + QTEST_GUILESS_MAIN(ColnodTest) #include "tst_colnodapi.moc"