Review fixes

This commit is contained in:
r.kuznetsov 2017-04-07 14:23:11 +03:00
parent a4ac18dae1
commit 7dabc65928
3 changed files with 27 additions and 25 deletions

View file

@ -6,21 +6,24 @@
#include "platform/platform_tests_support/scoped_file.hpp"
using namespace local_ads;
using namespace std;
UNIT_TEST(LocalAdsHelpers_Read_Write_Country_Name)
{
platform::tests_support::ScopedFile testFile("la_tests.dat");
std::string const countryName = "Russia_Moscow";
string const countryName = "Russia_Moscow";
{
FileWriter writer(testFile.GetFullPath());
local_ads::WriteCountryName(writer, countryName);
WriteCountryName(writer, countryName);
}
std::string result;
string result;
{
FileReader reader(testFile.GetFullPath());
ReaderSource<FileReader> src(reader);
result = local_ads::ReadCountryName(src);
result = ReadCountryName(src);
}
TEST_EQUAL(result, countryName, ());
@ -30,41 +33,41 @@ UNIT_TEST(LocalAdsHelpers_Read_Write_Timestamp)
{
platform::tests_support::ScopedFile testFile("la_tests.dat");
auto ts = std::chrono::steady_clock::now();
auto ts = chrono::steady_clock::now();
{
FileWriter writer(testFile.GetFullPath());
local_ads::WriteTimestamp<std::chrono::hours>(writer, ts);
local_ads::WriteTimestamp<std::chrono::seconds>(writer, ts);
WriteTimestamp<chrono::hours>(writer, ts);
WriteTimestamp<chrono::seconds>(writer, ts);
}
std::chrono::steady_clock::time_point resultInHours;
std::chrono::steady_clock::time_point resultInSeconds;
chrono::steady_clock::time_point resultInHours;
chrono::steady_clock::time_point resultInSeconds;
{
FileReader reader(testFile.GetFullPath());
ReaderSource<FileReader> src(reader);
resultInHours = local_ads::ReadTimestamp<std::chrono::hours>(src);
resultInSeconds = local_ads::ReadTimestamp<std::chrono::seconds>(src);
resultInHours = ReadTimestamp<chrono::hours>(src);
resultInSeconds = ReadTimestamp<chrono::seconds>(src);
}
TEST_EQUAL(std::chrono::duration_cast<std::chrono::hours>(ts - resultInHours).count(), 0, ());
TEST_EQUAL(std::chrono::duration_cast<std::chrono::seconds>(ts - resultInSeconds).count(), 0, ());
TEST_EQUAL(chrono::duration_cast<chrono::hours>(ts - resultInHours).count(), 0, ());
TEST_EQUAL(chrono::duration_cast<chrono::seconds>(ts - resultInSeconds).count(), 0, ());
}
UNIT_TEST(LocalAdsHelpers_Read_Write_RawData)
{
platform::tests_support::ScopedFile testFile("la_tests.dat");
std::vector<uint8_t> rawData = {1, 2, 3, 4, 5};
vector<uint8_t> rawData = {1, 2, 3, 4, 5};
{
FileWriter writer(testFile.GetFullPath());
local_ads::WriteRawData(writer, rawData);
WriteRawData(writer, rawData);
}
std::vector<uint8_t> result;
vector<uint8_t> result;
{
FileReader reader(testFile.GetFullPath());
ReaderSource<FileReader> src(reader);
result = local_ads::ReadRawData(src);
result = ReadRawData(src);
}
TEST_EQUAL(rawData, result, ());

View file

@ -131,7 +131,7 @@ void LocalAdsManager::UpdateViewport(ScreenBase const & screen)
auto const it = m_info.find(mwmName);
bool needUpdateByTimeout = (connectionStatus == Platform::EConnectionType::CONNECTION_WIFI);
if (!needUpdateByTimeout && it != m_info.end())
needUpdateByTimeout = Now() > (it->second.m_creationTimestamp + kWWanUpdateTimeout);
needUpdateByTimeout = Now() > (it->second.m_created + kWWanUpdateTimeout);
if (needUpdateByTimeout || it == m_info.end())
requestedCampaigns.push_back(mwmName);
@ -172,11 +172,10 @@ void LocalAdsManager::ThreadRoutine()
info.m_data = DownloadCampaign(mwm.first);
if (info.m_data.empty())
continue;
info.m_creationTimestamp = Now();
info.m_created = Now();
// Parse data and send symbols to rendering.
auto symbols = ParseCampaign(std::move(info.m_data), mwm.first,
info.m_creationTimestamp);
auto symbols = ParseCampaign(std::move(info.m_data), mwm.first, info.m_created);
if (symbols.empty())
{
std::lock_guard<std::mutex> lock(m_mutex);
@ -288,7 +287,7 @@ void LocalAdsManager::ReadCampaignFile(std::string const & campaignFile)
{
std::string countryName;
CampaignInfo info;
DeserializeCampaign(src, countryName, info.m_creationTimestamp, info.m_data);
DeserializeCampaign(src, countryName, info.m_created, info.m_data);
m_info[countryName] = info;
m_campaigns[countryName] = false;
}
@ -309,7 +308,7 @@ void LocalAdsManager::WriteCampaignFile(std::string const & campaignFile)
std::lock_guard<std::mutex> lock(m_mutex);
FileWriter writer(campaignFile);
for (auto const & info : m_info)
SerializeCampaign(writer, info.first, info.second.m_creationTimestamp, info.second.m_data);
SerializeCampaign(writer, info.first, info.second.m_created, info.second.m_data);
}
catch (RootException const & ex)
{
@ -348,7 +347,7 @@ void LocalAdsManager::Invalidate()
for (auto const & info : m_info)
{
auto campaignSymbols = ParseCampaign(info.second.m_data, m_getMwmIdByNameFn(info.first),
info.second.m_creationTimestamp);
info.second.m_created);
symbols.insert(campaignSymbols.begin(), campaignSymbols.end());
}
}

View file

@ -73,7 +73,7 @@ private:
std::map<std::string, bool> m_campaigns;
struct CampaignInfo
{
Timestamp m_creationTimestamp;
Timestamp m_created;
std::vector<uint8_t> m_data;
};
std::map<std::string, CampaignInfo> m_info;