diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index 4340c8b..f1a8419 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -3,12 +3,9 @@ Q_LOGGING_CATEGORY(colnod, "colnod.api"); -ColnodAPI::ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync, const bool &dryMode, const QString &userName, const QString &password) +ColnodAPI::ColnodAPI(serversdk::RequestManager* reqMan, const bool &dryMode, const QString &userName, const QString &password) :mReqMan(reqMan), mUserName(userName), mPassword(password), mDryMode(dryMode) { - mLastSync.set_timestamp(lastSync); - mData = std::make_shared(); - // ----------------------------------- mReqMan->setIgnoreSsl(true); // ----------------------------------- @@ -21,7 +18,8 @@ void ColnodAPI::downloadData(const Timestamp &time) connect(login.get(), &serversdk::Request::finished, this, [=](){ // Get login token if (!checkRequest(login)) { - emit error(); + emit downloadDataFinished(nullptr); + return; } AuthToken token; diff --git a/src/colnod/colnodapi.h b/src/colnod/colnodapi.h index af79297..77dd515 100644 --- a/src/colnod/colnodapi.h +++ b/src/colnod/colnodapi.h @@ -48,7 +48,7 @@ class ColnodAPI: public QObject Q_OBJECT public: ColnodAPI() = default; - ColnodAPI(serversdk::RequestManager* reqMan, const qint64 &lastSync = 0, const bool &dryMode = false, const QString &userName = "spaceti", const QString &password = "spaceti1"); + ColnodAPI(serversdk::RequestManager* reqManconst, const bool &dryMode = false, const QString &userName = "spaceti", const QString &password = "spaceti1"); void downloadData(const Timestamp &time); void processData(const std::shared_ptr &data); @@ -96,7 +96,7 @@ private: signals: - void downloadDataFinished(std::shared_ptr = std::shared_ptr()); + void downloadDataFinished(std::shared_ptr = nullptr); void partOfDataReady(std::shared_ptr = std::shared_ptr()); void partOfDataProcessFinished(); void dataProcessFinished(); diff --git a/src/colnod/syncmanager.cpp b/src/colnod/syncmanager.cpp index 9cf9cb3..4020c02 100644 --- a/src/colnod/syncmanager.cpp +++ b/src/colnod/syncmanager.cpp @@ -32,7 +32,7 @@ bool SyncManager::databaseInitialization() // here -> nothing can fail mlastSync.set_timestamp(database->getLastSync()); - colnod = std::make_shared(&reqMan, mlastSync.timestamp(), mDryMode); + colnod = std::make_shared(&reqMan, mDryMode); return true; } diff --git a/test/auto/colnod/tst_colnodapi.cpp b/test/auto/colnod/tst_colnodapi.cpp index 2e6c57f..3e93a5b 100644 --- a/test/auto/colnod/tst_colnodapi.cpp +++ b/test/auto/colnod/tst_colnodapi.cpp @@ -1,15 +1,27 @@ #include #include "colnodapi.h" +#include "serversdk/request.h" // add necessary includes here +Q_DECLARE_METATYPE(std::shared_ptr) +Q_DECLARE_METATYPE(std::shared_ptr); + class ColnodTest : public QObject { Q_OBJECT +public: + ColnodTest() + { + qRegisterMetaType>(); + qRegisterMetaType>(); + } + private slots: void login(); void getTokens(); void download_data_test(); + void download_data_fail_test(); private: QString getLoginToken(ColnodAPI &colnod); @@ -53,8 +65,24 @@ void ColnodTest::download_data_test() colnod.downloadData(time); QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished); QVERIFY(spy.wait()); - auto arguments = spy.takeFirst(); - QVERIFY(arguments.first().data()); + auto data = qvariant_cast>(spy.at(0).at(0)); + QVERIFY(data); +} + +void ColnodTest::download_data_fail_test() +{ + serversdk::RequestManager reqMan; + ColnodAPI colnod(&reqMan, false, "spaceti", "wrong password"); + + Timestamp time(0); + QSignalSpy spy(&colnod, &ColnodAPI::downloadDataFinished); + colnod.downloadData(time); + + QVERIFY(spy.wait()); + + auto data = qvariant_cast>(spy.at(0).at(0)); + + QVERIFY(!data); } QString ColnodTest::getLoginToken(ColnodAPI &colnod)