refs #787, fixed unit test

* flag update for non cached scenarios was missing
* some minor adjustments of test readers
This commit is contained in:
Klaus Basan
2016-11-28 20:29:40 +01:00
parent 387a39be77
commit 8f779fff35
4 changed files with 23 additions and 14 deletions

View File

@@ -201,6 +201,7 @@ namespace BlackCore
static QStringList arguments(); static QStringList arguments();
//! Process all events for some time //! Process all events for some time
//! \remark unlike QCoreApplication::processEvents this will spend at least the given time in the function, using QThread::msleep
static void processEventsFor(int milliseconds); static void processEventsFor(int milliseconds);
//! Clear the caches //! Clear the caches

View File

@@ -103,14 +103,28 @@ namespace BlackCore
cachedEntities |= currentEntity; // read from cache cachedEntities |= currentEntity; // read from cache
} }
} }
else
{
// cache ignored
if (rm.testFlag(CDbFlags::DbReading))
{
dbEntities |= currentEntity;
}
}
currentEntity = CEntityFlags::iterateDbEntities(allEntities); currentEntity = CEntityFlags::iterateDbEntities(allEntities);
} }
// signals for the cached entities // signals for the cached entities
this->emitReadSignalPerSingleCachedEntity(cachedEntities, true); if (cachedEntities != CEntityFlags::NoEntity)
{
this->emitReadSignalPerSingleCachedEntity(cachedEntities, true);
}
// Real read from DB // Real read from DB
this->startReadFromBackendInBackgroundThread(dbEntities, CDbFlags::DbReading, newerThan); if (dbEntities != CEntityFlags::NoEntity)
{
this->startReadFromBackendInBackgroundThread(dbEntities, CDbFlags::DbReading, newerThan);
}
} }
CEntityFlags::Entity CDatabaseReader::triggerLoadingDirectlyFromDb(CEntityFlags::Entity entities, const QDateTime &newerThan) CEntityFlags::Entity CDatabaseReader::triggerLoadingDirectlyFromDb(CEntityFlags::Entity entities, const QDateTime &newerThan)

View File

@@ -69,8 +69,7 @@ namespace BlackCoreTest
// I have to run my "own event loop" // I have to run my "own event loop"
for (int i = 0; i < 60; i++) for (int i = 0; i < 60; i++)
{ {
CApplication::processEventsFor(500); CApplication::processEventsFor(500); // process events and sleep
QTest::qWait(10); // process events completes if there are no events. So I need to make sure we wait properly for a response
if (this->m_icaoReader->getAircraftIcaoCodesCount() > 0 && this->m_icaoReader->getAirlineIcaoCodesCount() > 0) if (this->m_icaoReader->getAircraftIcaoCodesCount() > 0 && this->m_icaoReader->getAirlineIcaoCodesCount() > 0)
{ {
break; break;
@@ -101,11 +100,7 @@ namespace BlackCoreTest
for (int i = 0; i < 120; i++) for (int i = 0; i < 120; i++)
{ {
CApplication::processEventsFor(500); CApplication::processEventsFor(500);
QTest::qWait(10); // process events completes if there are no events. So I need to make sure we wait properly for a response if (this->m_modelReader->getModelsCount() > 0) { break; }
if (this->m_modelReader->getModelsCount() > 0)
{
break;
}
} }
const QString m1("No models " + url.getFullUrl()); const QString m1("No models " + url.getFullUrl());
@@ -131,8 +126,7 @@ namespace BlackCoreTest
for (int i = 0; i < 120; ++i) for (int i = 0; i < 120; ++i)
{ {
CApplication::processEventsFor(500); CApplication::processEventsFor(500);
QTest::qWait(10); // process events completes if there are no events. So I need to make sure we wait properly for a response if (this->m_airportReader->getAirports().size() > 0) { break; }
if (this->m_airportReader->getAirports().size() > 0) break;
} }
QVERIFY2(this->m_airportReader->getAirports().size() > 0, "No airports"); QVERIFY2(this->m_airportReader->getAirports().size() > 0, "No airports");

View File

@@ -55,9 +55,9 @@ namespace BlackCoreTest
void readAirportData(); void readAirportData();
private: private:
BlackCore::Db::CAirportDataReader *m_airportReader = nullptr; BlackCore::Db::CAirportDataReader *m_airportReader = nullptr;
BlackCore::Db::CIcaoDataReader *m_icaoReader = nullptr; BlackCore::Db::CIcaoDataReader *m_icaoReader = nullptr;
BlackCore::Db::CModelDataReader *m_modelReader = nullptr; BlackCore::Db::CModelDataReader *m_modelReader = nullptr;
//! Test if server is available //! Test if server is available
static bool pingServer(const BlackMisc::Network::CUrl &url); static bool pingServer(const BlackMisc::Network::CUrl &url);