add download fail test

This commit is contained in:
Ondřej Fischer 2019-11-28 12:52:07 +01:00
parent 3bb6f24ae1
commit 674b49163b
4 changed files with 36 additions and 10 deletions

View File

@ -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<Data>();
// -----------------------------------
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;

View File

@ -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> &data);
@ -96,7 +96,7 @@ private:
signals:
void downloadDataFinished(std::shared_ptr<Data> = std::shared_ptr<Data>());
void downloadDataFinished(std::shared_ptr<Data> = nullptr);
void partOfDataReady(std::shared_ptr<Data> = std::shared_ptr<Data>());
void partOfDataProcessFinished();
void dataProcessFinished();

View File

@ -32,7 +32,7 @@ bool SyncManager::databaseInitialization()
// here -> nothing can fail
mlastSync.set_timestamp(database->getLastSync());
colnod = std::make_shared<ColnodAPI>(&reqMan, mlastSync.timestamp(), mDryMode);
colnod = std::make_shared<ColnodAPI>(&reqMan, mDryMode);
return true;
}

View File

@ -1,15 +1,27 @@
#include <QtTest>
#include "colnodapi.h"
#include "serversdk/request.h"
// add necessary includes here
Q_DECLARE_METATYPE(std::shared_ptr<Data>)
Q_DECLARE_METATYPE(std::shared_ptr<serversdk::Request>);
class ColnodTest : public QObject
{
Q_OBJECT
public:
ColnodTest()
{
qRegisterMetaType<std::shared_ptr<Data>>();
qRegisterMetaType<std::shared_ptr<serversdk::Request>>();
}
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<std::shared_ptr<Data>>(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<std::shared_ptr<Data>>(spy.at(0).at(0));
QVERIFY(!data);
}
QString ColnodTest::getLoginToken(ColnodAPI &colnod)