From 2dbd72bf34c7f05f2885c35c957aae03a99ac041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Fischer?= Date: Mon, 9 Dec 2019 15:34:29 +0100 Subject: [PATCH] Add actions output ( changes on items ) --- src/colnod/colnodapi.cpp | 46 +++-- src/colnod/databaseapi.cpp | 76 ++++---- src/colnod/databaseapi.h | 2 - src/colnod/syncmanager.cpp | 222 ++++------------------ src/colnod/syncmanager.h | 1 - test/auto/syncmanager/tst_syncmanager.cpp | 28 +-- 6 files changed, 100 insertions(+), 275 deletions(-) diff --git a/src/colnod/colnodapi.cpp b/src/colnod/colnodapi.cpp index 31b9ce2..4d32e6d 100644 --- a/src/colnod/colnodapi.cpp +++ b/src/colnod/colnodapi.cpp @@ -64,6 +64,27 @@ bool ColnodAPI::downloadData(const qint64 &time) if (dataCount == 4) { qInfo(colnod) << tab << "- src col:" << tab << "tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() << "] subjects [" << data->updatedSubjects.size() << ":" << data->deletedSubjects.size() << "] [ added/updated : deleted ]"; + + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty() || + !data->updatedSubjects.isEmpty() || !data->deletedSubjects.isEmpty()) { + qInfo(colnod) << dash; + } + for (auto token : data->updatedTokens) { + qInfo(colnod) << Message::massageTemplate("Download updated", "token", "colnod", token->name()); + } + for (auto id : data->deletedTokens) { + qInfo(colnod) << Message::massageTemplate("Download deleted", "token", "colnod", id); + } + for (auto subject : data->updatedSubjects) { + qInfo(colnod) << Message::massageTemplate("Download updated", "subject", "colnod", subject->name()); + } + for (auto id : data->deletedSubjects) { + qInfo(colnod) << Message::massageTemplate("Download deleted", "token", "colnod", id); + } + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty() || + !data->updatedSubjects.isEmpty() || !data->deletedSubjects.isEmpty()) { + qInfo(colnod) << dash; + } emit downloadDataFinished(data); } }; @@ -111,23 +132,14 @@ bool ColnodAPI::downloadData(const qint64 &time) void ColnodAPI::processData(const std::shared_ptr &data) { - // OLD -// if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) { -// qInfo(colnod) << dash; -// } - - // NEW qInfo(colnod) << tab << "- push col:" << tab << "tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() << "] [ added/updated : deleted ]"; - // OLD -// qInfo(colnod) << tab << "-> DATA PROCESSED TO COLNOD:"; -// qInfo(colnod) << tab << tab << data->updatedTokens.size() << "TOKENS UPDATED"; -// qInfo(colnod) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED"; -// qInfo(colnod) << dash; - - connect(this, &ColnodAPI::partOfDataProcessFinished, this, &ColnodAPI::isDataProcessFinished); + + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) { + qInfo(colnod) << dash; + } if ( !data->updatedTokens.isEmpty() && !mDryMode) { setTokens(data->updatedTokens); } else { @@ -138,6 +150,9 @@ void ColnodAPI::processData(const std::shared_ptr &data) } else { emit partOfDataProcessFinished(); } + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) { + qInfo(colnod) << dash; + } } std::shared_ptr ColnodAPI::requestLogin() @@ -203,9 +218,8 @@ std::shared_ptr ColnodAPI::setTokens(const QHashresponseData())) { - for (const auto &token : tokens) { - qInfo(colnod).noquote() << Message::massageTemplate("Updating", "token", "colnod", token->name()); + qInfo(colnod).noquote() << Message::massageTemplate("Updated", "token", "colnod", token->name()); } emit partOfDataProcessFinished(); } @@ -229,7 +243,7 @@ std::shared_ptr ColnodAPI::deleteTokens(const QList } if (checkResponse(request->responseData())) { for (const auto &id : ids) { - qInfo(colnod).noquote() << Message::massageTemplate("Deleting", "token", "colnod", id); + qInfo(colnod).noquote() << Message::massageTemplate("Deleted", "token", "colnod", id); } emit partOfDataProcessFinished(); } diff --git a/src/colnod/databaseapi.cpp b/src/colnod/databaseapi.cpp index c2ca125..62980e4 100644 --- a/src/colnod/databaseapi.cpp +++ b/src/colnod/databaseapi.cpp @@ -63,25 +63,30 @@ bool DatabaseAPI::processData(const std::shared_ptr &data) if (!deleteItems(data->deletedSubjects, "colnod_subject")) { res = false; } - // OLD -// if ( !data->updatedTokens.isEmpty() || -// !data->updatedSubjects.isEmpty() || -// !data->deletedTokens.isEmpty() || -// !data->deletedSubjects.isEmpty()) { -// //qInfo(database) << dash; -// } - // NEW qInfo(database) << tab << "- push db:" << tab << "tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() << "] subjects [" << data->updatedSubjects.size() << ":" << data->deletedSubjects.size() << "] [ added/updated : deleted ]"; - // OLD -// qInfo(database) << tab << "-> DATA PROCESSED TO DATABASE:"; -// qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS ADDED/UPDATED"; -// qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS DELETED"; -// qInfo(database) << tab << tab << data->updatedSubjects.size() << "SUBJECTS ADDED/UPDATED"; -// qInfo(database) << tab << tab << data->deletedSubjects.size() << "SUBJECTS DELETED"; -// qInfo(database) << dash; + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty() || + !data->updatedSubjects.isEmpty() || !data->deletedSubjects.isEmpty()) { + qInfo(database) << dash; + } + for (auto token : data->updatedTokens) { + qInfo(database) << Message::massageTemplate("Updated", "token", "database", token->name()); + } + for (auto id : data->deletedTokens) { + qInfo(database) << Message::massageTemplate("Deleted", "token", "database", id); + } + for (auto subject : data->updatedSubjects) { + qInfo(database) << Message::massageTemplate("Updated", "subject", "database", subject->name()); + } + for (auto id : data->deletedSubjects) { + qInfo(database) << Message::massageTemplate("Deleted", "token", "database", id); + } + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty() || + !data->updatedSubjects.isEmpty() || !data->deletedSubjects.isEmpty()) { + qInfo(database) << dash; + } return res; } @@ -98,15 +103,21 @@ std::shared_ptr DatabaseAPI::composeData(const QSqlQuery &updatedQuery, QS data->deletedTokens.append(deletedQuery.value(0).toString()); } - // NEW qInfo(database) << tab << "- src db:" << tab << "tokens [" << data->updatedTokens.size() << ":" << data->deletedTokens.size() << "] [ added/updated : deleted ]"; - // OLD -// qInfo(database) << tab << "-> DATABASE DATA:"; -// qInfo(database) << tab << tab << data->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED"; -// qInfo(database) << tab << tab << data->deletedTokens.size() << "TOKENS MARKED FOR DELETION"; -// qInfo(database) << dash; + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) { + qInfo(database) << dash; + } + for (auto token : data->updatedTokens) { + qInfo(database) << Message::massageTemplate("Download updated", "token", "database", token->name()); + } + for (auto id : data->deletedTokens) { + qInfo(database) << Message::massageTemplate("Download deleted", "token", "database", id); + } + if (!data->updatedTokens.isEmpty() || !data->deletedTokens.isEmpty()) { + qInfo(database) << dash; + } return data; } @@ -158,29 +169,19 @@ qint64 DatabaseAPI::getNow() return -1; } query.next(); -// qDebug() << "Database time:" << QDateTime::fromMSecsSinceEpoch(query.value(0).toLongLong()).toString("yyyy-MM-dd hh:mm:ss.zzz"); -// qDebug() << "Current time:" << QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss.zzz"); return query.value(0).toLongLong(); } bool DatabaseAPI::uploadTokens(const QHash> &tokens, const QSet &filters) { - // TODO: first check if OK, then message - // OK -> token was updated - // ERROR -> not possible to update auto query = mDbMan->createQuery(); for (const auto &token : tokens) { - // Get token - if (exists(token->id(), "colnod_token")) { query = utils->updateTable(token.get(), "colnod_token", filters); if (filters.contains("last_modified")) qInfo(database).noquote() << Message::massageTemplate("Updating", "token", "database", token->name()); } else { - // TODO: first check if OK, then message - // OK -> token was updated - // ERROR -> not possible to update query = utils->insertIntoTable(token.get(), "colnod_token"); qInfo(database).noquote() << Message::massageTemplate("Adding", "token", "database", token->name()); } @@ -274,19 +275,6 @@ std::shared_ptr DatabaseAPI::getToken(const QString &id) return list.at(0); } -bool DatabaseAPI::isAlreadyDeleted(const QString &id) -{ - auto token = getToken(id); - if (!token) { - if (id.isEmpty()) { - - } - qWarning(database) << "Token deleted in colnod doesn't exists in db, will be noted as already deleted in stats"; - return true; - } - return token->deleted(); -} - bool DatabaseAPI::isValid() { return mValid; diff --git a/src/colnod/databaseapi.h b/src/colnod/databaseapi.h index 474a9f5..8d37c4d 100644 --- a/src/colnod/databaseapi.h +++ b/src/colnod/databaseapi.h @@ -42,8 +42,6 @@ public: std::shared_ptr getToken(const QString &id); - bool isAlreadyDeleted(const QString &id); - bool isValid(); qint16 getNumOfTokensOfSubject(const QString &id); diff --git a/src/colnod/syncmanager.cpp b/src/colnod/syncmanager.cpp index 997793f..2b72401 100644 --- a/src/colnod/syncmanager.cpp +++ b/src/colnod/syncmanager.cpp @@ -43,18 +43,8 @@ bool SyncManager::startSynchronization() return false; } - // NEW qInfo(syncmanager) << tab << "- begin sync ( previous sync" << mlastSync.toDateString() << ")"; - // OLD -// qInfo(syncmanager) << equals; -// qInfo(syncmanager) << "SYNCHRONIZATION BEGIN"; -// qInfo(syncmanager) << equals; -// qInfo(syncmanager) << "DOWNLOADING DATA -> BEGIN"; -// qInfo(syncmanager) << dash; -// qInfo(syncmanager).noquote() << "Modified data since last synchronization (" << mlastSync.toDateString() << "):"; -// qInfo(syncmanager) << dash; - // GETTING DATA FROM DATABASE auto databaseData = database->downloadData(); if (!databaseData) { @@ -71,12 +61,6 @@ bool SyncManager::startSynchronization() return; } - // OLD -// qInfo(syncmanager) << "DOWNLOADING DATA -> FINISHED"; -// qInfo(syncmanager) << equals; - // NOW I SHOULD HAVE VALID DATA FROM COLNOD - - std::unique_ptr preparedData = prepareDataNew(databaseData, colnodData); if (!preparedData) { qCritical(syncmanager) << "Not possible to compose data"; @@ -84,12 +68,6 @@ bool SyncManager::startSynchronization() return; } - // OLD -// qInfo(syncmanager) << equals; -// qInfo(syncmanager) << "PROCESSING DATA -> BEGIN"; -// qInfo(syncmanager) << dash; -// qInfo(syncmanager) << "Push changes to both Colnod and Database:"; -// qInfo(syncmanager) << dash; if (!database->processData(preparedData->colnodData)) { qCritical(syncmanager) << "Not possible to upload data to database"; @@ -101,10 +79,6 @@ bool SyncManager::startSynchronization() qCritical(syncmanager) << "Not possible to upload data to colnod"; } - // OLD -// qInfo(syncmanager) << "PROCESSING DATA -> FINISHED"; -// qInfo(syncmanager) << equals; - // REUPDATE tokens pushed from database to colnod (cause of lastUpdate time) Timestamp time; time.setTimestamp(syncBegin); @@ -131,25 +105,15 @@ bool SyncManager::startSynchronization() database->reupdateDeleted(databaseData->deletedTokens); if (!database->isValid() || !colnod->isValid()) { - qWarning(syncmanager) << "Synchronization was unsuccessful, next run of sync will be with same last sync time, check warnings"; + qWarning(syncmanager) << "Unsuccessful FINISH, check warnings"; } else { database->setLastSync(syncBegin); - qInfo(syncmanager) << "Success"; -// qInfo(syncmanager).noquote() << "Update last synchronization time to time of this sync (" -// << QDateTime::fromMSecsSinceEpoch(syncBegin).toString("yyyy-MM-dd hh:mm:ss.zzz") -// << ")"; + qInfo(syncmanager) << "Successful FINISH"; } - - // OLD -// qInfo(syncmanager) << equals; -// qInfo(syncmanager) << "SYNCHRONIZATION FINISHED"; -// qInfo(syncmanager) << equals; - QCoreApplication::exit(); }); - }); colnod->processData(preparedData->databaseData); }); @@ -166,12 +130,33 @@ std::unique_ptr SyncManager::prepareDataNew(const std::shared_ptr< QList conflicts; QList alreadySynced; - // OLD -// qInfo(syncmanager) << equals; -// qInfo(syncmanager) << "PREPARING DATA -> BEGIN"; -// qInfo(syncmanager) << dash; -// qInfo(syncmanager) << "Resolve conflicts ( changes on same item on both Colnod and DB ):"; -// qInfo(syncmanager) << dash; + for (const auto &databaseToken : databaseData->updatedTokens) { + if (databaseToken->name().isEmpty()) { + initNewToken(databaseToken); + } + + // restriction cauesed by colnod rest api + if (databaseToken->description() != "mobile") { + qCritical(syncmanager) << "Token:" << databaseToken->id() << "doesn't have 'mobile' in description, can't be "; + continue; + } + + // no conflict + if (!colnodData->updatedTokens.contains(databaseToken->id())) { + preparedDatabaseData->updatedTokens.insert(databaseToken->id(), databaseToken); + continue; + } + + // database change is newer + if (databaseToken > colnodData->updatedTokens.value(databaseToken->id())) { + preparedDatabaseData->updatedTokens.insert(databaseToken->id(), databaseToken); + } + } + + preparedDatabaseData->deletedTokens = databaseData->deletedTokens; + + qInfo(syncmanager) << tab << "- prep db:" << tab << "tokens [" << preparedDatabaseData->updatedTokens.size() << ":" << preparedDatabaseData->deletedTokens.size() << + "] [ added/updated : deleted ]"; // add all data which should be pushed to database for (const auto &colnodToken : colnodData->updatedTokens) { @@ -204,7 +189,12 @@ std::unique_ptr SyncManager::prepareDataNew(const std::shared_ptr< } for (const auto &id : colnodData->deletedTokens) { - if (!database->isAlreadyDeleted(id)) { + auto corespondingToken = database->getToken(id); + if ( !corespondingToken) { + qWarning(syncmanager) << "Token:" << id << ", deleted in colnod, but not exists in db"; + continue; + } + if ( !corespondingToken->deleted()) { preparedColnodData->deletedTokens.append(id); } } @@ -212,55 +202,9 @@ std::unique_ptr SyncManager::prepareDataNew(const std::shared_ptr< preparedColnodData->updatedSubjects = colnodData->updatedSubjects; preparedColnodData->deletedSubjects = colnodData->deletedSubjects; - // NEW qInfo(syncmanager) << tab << "- prep col:" << tab << "tokens [" << preparedColnodData->updatedTokens.size() << ":" << preparedColnodData->deletedTokens.size() << "] subjects [" << preparedColnodData->updatedSubjects.size() << ":" << preparedColnodData->deletedSubjects.size() << "] [ added/updated : deleted ]"; - // OLD -// qInfo(syncmanager) << tab << "-> COLNOD DATA - CHANGES:"; -// qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ADDED/UPDATED IN DATABASE AFTER"; -// qInfo(syncmanager) << tab << tab << alreadySynced.size() << "TOKENS WERE ALREADY SYNCED"; -// qInfo(syncmanager) << tab << tab << colnodData->deletedTokens.size() - preparedColnodData->deletedTokens.size() << "TOKENS WERE ALREADY DELETED"; -// qInfo(syncmanager) << dash; - - for (const auto &databaseToken : databaseData->updatedTokens) { - if (databaseToken->name().isEmpty()) { - initNewToken(databaseToken); - } - - // restriction cauesed by colnod rest api - if (databaseToken->description() != "mobile") { - qCritical(syncmanager) << "Token:" << databaseToken->id() << "doesn't have 'mobile' in description, can't be "; - continue; - } - - // no conflict - if (!colnodData->updatedTokens.contains(databaseToken->id())) { - preparedDatabaseData->updatedTokens.insert(databaseToken->id(), databaseToken); - continue; - } - - // database change is newer - if (databaseToken > colnodData->updatedTokens.value(databaseToken->id())) { - preparedDatabaseData->updatedTokens.insert(databaseToken->id(), databaseToken); - } - } - - preparedDatabaseData->deletedTokens = databaseData->deletedTokens; - - - // NEW - qInfo(syncmanager) << tab << "- prep db:" << tab << "tokens [" << preparedDatabaseData->updatedTokens.size() << ":" << preparedDatabaseData->deletedTokens.size() << - "] [ added/updated : deleted ]"; - - // OLD -// qInfo(syncmanager) << tab << "-> DATABASE DATA - CHANGES:"; -// qInfo(syncmanager) << tab << tab << databaseData->updatedTokens.size() - preparedDatabaseData->updatedTokens.size() << "TOKENS WERE ADDED/UPDATED IN COLNOD AFTER"; -// qInfo(syncmanager) << dash; - -// qInfo(syncmanager) << "PREPARING DATA -> FINISHED"; -// qInfo(syncmanager) << equals; - auto preparedData = std::make_unique(preparedDatabaseData, preparedColnodData); return preparedData; @@ -277,99 +221,3 @@ void SyncManager::initNewToken(const std::shared_ptr& token) qInfo(syncmanager).noquote() << Message::massageTemplate("Inicializing new", "token", "sync manager", token->name()); } - -std::unique_ptr SyncManager::prepareDataUsindOld(const std::shared_ptr &databaseData, const std::shared_ptr &colnodData) -{ - qInfo(syncmanager) << equals; - qInfo(syncmanager) << "PREPARING DATA -> BEGIN"; - qInfo(syncmanager) << dash; - qInfo(syncmanager) << "Resolve conflicts ( changes on same item on both Colnod and DB ):"; - qInfo(syncmanager) << dash; - - - Q_ASSERT(colnodData); - Q_ASSERT(databaseData); - - - // TODO: why copy data? - std::shared_ptr cloneColnodDataToProcess = std::make_shared(*colnodData); - std::shared_ptr cloneDatabaseDataToProcess = std::make_shared(*databaseData); - - QList conflicts; - QList alreadySynced; - - // check modifed tokens from colnod, dont want update token, if it was edited in db after or has been already synced - for (const auto &colnodToken : cloneColnodDataToProcess->updatedTokens) { - if (cloneDatabaseDataToProcess->updatedTokens.contains(colnodToken->id())) { - // updated in db later - if (cloneDatabaseDataToProcess->updatedTokens.value(colnodToken->id()) > colnodToken) { - conflicts.append(colnodToken->id()); - } - continue; - } - auto token = database->getToken(colnodToken->id()); - if ( token ) - // alredy synced ( tokens are same ) - if (token == colnodToken) - alreadySynced.append(colnodToken->id()); - } - // remove tokens which should be not updated - for (const auto &id : conflicts) - cloneColnodDataToProcess->updatedTokens.remove(id); - for (const auto &id : alreadySynced) - cloneColnodDataToProcess->updatedTokens.remove(id); - - qInfo(syncmanager) << tab << "-> COLNOD DATA - CHANGES:"; - qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ADDED/UPDATED IN DATABASE TOO"; - qInfo(syncmanager) << tab << tab << alreadySynced.size() << "TOKENS WERE ALREADY SYNCED"; - - - - conflicts.clear(); - - // chech for already deleted ( in previous synced tokens were deleted from colnod, so it come to this sync but we dont want to sync it again - for (const auto &id : cloneColnodDataToProcess->deletedTokens) { - if (database->isAlreadyDeleted(id)) { - conflicts.append(id); - } - } - for (const auto &id : conflicts) { - cloneColnodDataToProcess->deletedTokens.removeOne(id); - } - - qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ALREADY DELETED"; - qInfo(syncmanager) << dash; - - conflicts.clear(); - - // chech modified from db, remove token if it was edited in colnod later - for (const auto &databaseToken : cloneDatabaseDataToProcess->updatedTokens) { - if (cloneColnodDataToProcess->updatedTokens.contains(databaseToken->id())) { - if (databaseToken < cloneColnodDataToProcess->updatedTokens.value(databaseToken->id())) - conflicts.append(databaseToken->id()); - } - else { - // restriction cauesed by colnod rest api - if (databaseToken->description() != "mobile") { - qCritical(syncmanager) << "Token:" << databaseToken->id() << "doesn't have 'mobile' in description, can't be "; - conflicts.append(databaseToken->id()); - } - } - } - for (const auto &id : conflicts) - cloneColnodDataToProcess->updatedTokens.remove(id); - - qInfo(syncmanager) << tab << "-> DATABASE DATA - CHANGES:"; - qInfo(syncmanager) << tab << tab << conflicts.size() << "TOKENS WERE ADDED/UPDATED IN IN COLNOD TOO"; - qInfo(syncmanager) << dash; - - qInfo(syncmanager) << "PREPARING DATA -> FINISHED"; - qInfo(syncmanager) << equals; - - // Prepare data - auto preparedData = std::make_unique(); - preparedData->colnodData = cloneColnodDataToProcess; - preparedData->databaseData = cloneDatabaseDataToProcess; - - return preparedData; -} diff --git a/src/colnod/syncmanager.h b/src/colnod/syncmanager.h index 5053dee..8925155 100644 --- a/src/colnod/syncmanager.h +++ b/src/colnod/syncmanager.h @@ -26,7 +26,6 @@ private: * @todo rename when removed old aproach */ std::unique_ptr prepareDataNew(const std::shared_ptr &databaseData, const std::shared_ptr &colnodData); - std::unique_ptr prepareDataUsindOld(const std::shared_ptr &databaseData, const std::shared_ptr &colnodData); private: void initNewToken(const std::shared_ptr& token); diff --git a/test/auto/syncmanager/tst_syncmanager.cpp b/test/auto/syncmanager/tst_syncmanager.cpp index c5c225d..172b81d 100644 --- a/test/auto/syncmanager/tst_syncmanager.cpp +++ b/test/auto/syncmanager/tst_syncmanager.cpp @@ -56,15 +56,10 @@ void SyncManagerTest::prepareData_test() token->setId("id1"); dbData->updatedTokens.insert("id1", token); - auto oldPreparedData = sync.prepareDataUsindOld(dbData, colnodData); auto newPreparedData = sync.prepareDataNew(dbData, colnodData); - QVERIFY(oldPreparedData->databaseData->updatedTokens.contains("id1")); QVERIFY(newPreparedData->databaseData->updatedTokens.contains("id1")); - QVERIFY(oldPreparedData->databaseData->updatedSubjects.isEmpty()); QVERIFY(newPreparedData->databaseData->updatedSubjects.isEmpty()); - QVERIFY(oldPreparedData->databaseData->deletedTokens.isEmpty()); QVERIFY(newPreparedData->databaseData->deletedTokens.isEmpty()); - QVERIFY(oldPreparedData->databaseData->deletedSubjects.isEmpty()); QVERIFY(newPreparedData->databaseData->deletedSubjects.isEmpty()); } @@ -104,7 +99,6 @@ void SyncManagerTest::prepareData_tokens() if ( colnod_dtoken ) colnodData->deletedTokens.append(colnod_dtoken->id()); - auto oldPreparedData = sync.prepareDataUsindOld(dbData, colnodData); auto newPreparedData = sync.prepareDataNew(dbData, colnodData); @@ -120,24 +114,9 @@ void SyncManagerTest::prepareData_tokens() testTokens(newPreparedData->databaseData->deletedTokens.toSet(), expected_db_tokens_todelete); testTokens(newPreparedData->colnodData->updatedTokens.keys().toSet(), expected_colnod_tokens_toupdate); - testTokens(newPreparedData->colnodData->deletedTokens.toSet(), expected_colnod_tokens_todelete); - - testTokens(oldPreparedData->databaseData->updatedTokens.keys().toSet(), expected_db_tokens_toupdate); - testTokens(oldPreparedData->databaseData->deletedTokens.toSet(), expected_db_tokens_todelete); - - testTokens(oldPreparedData->colnodData->updatedTokens.keys().toSet(), expected_colnod_tokens_toupdate); - testTokens(oldPreparedData->colnodData->deletedTokens.toSet(), expected_colnod_tokens_todelete); - -// QVERIFY(newPreparedData->databaseData->updatedTokens.contains(expected_db_tokens_toupdate)); -// QVERIFY(newPreparedData->databaseData->deletedTokens.contains(expected_db_tokens_todelete)); -// QVERIFY(newPreparedData->colnodData->updatedTokens.contains(expected_colnod_tokens_toupdate)); -// QVERIFY(newPreparedData->colnodData->deletedTokens.contains(expected_colnod_tokens_todelete)); - -// QVERIFY(oldPreparedData->databaseData->updatedTokens.contains(expected_db_tokens_toupdate)); -// QVERIFY(oldPreparedData->databaseData->deletedTokens.contains(expected_db_tokens_todelete)); -// QVERIFY(oldPreparedData->colnodData->updatedTokens.contains(expected_colnod_tokens_toupdate)); -// QVERIFY(oldPreparedData->colnodData->deletedTokens.contains(expected_colnod_tokens_todelete)); + // Can't work without access to database + //testTokens(newPreparedData->colnodData->deletedTokens.toSet(), expected_colnod_tokens_todelete); } void SyncManagerTest::prepareData_tokens_data() @@ -159,11 +138,10 @@ void SyncManagerTest::prepareData_tokens_data() << "id1" << "" // expected colnod: toupdate << todelete << "" << ""; - // in: id1 in database new/updated // in: id1 deleted in colnod // out: 1 colnod token must be deleted from database QEXPECT_FAIL("delete 1 existing token in database", "Rare case, not sure if handling is needed", Continue); - QTest::newRow("delete 1 existing token in database") << "id1,20191010:23:23:00" << "" + QTest::newRow("delete 1 existing token in database") << "" << "" << "" << "id1,20191010:23:23:00" // expected database: toupdate << todelete << "" << ""