diff options
author | Mikhail Gorbushin <m.gorbushin@corp.mail.ru> | 2019-03-26 15:09:39 +0300 |
---|---|---|
committer | Vlad Mihaylenko <vxmihaylenko@gmail.com> | 2019-03-26 15:15:58 +0300 |
commit | 4496f0b2a009522a59c81ec8bd3380dc46deb3dd (patch) | |
tree | 824f503d9934e78a51449bb76df28a621558fce2 /routing | |
parent | 2bceb4e7b26dec9aeb5ff63b958b99a9eabb9563 (diff) |
[routing] add settings save for routing options
Diffstat (limited to 'routing')
-rw-r--r-- | routing/routing_options.cpp | 8 | ||||
-rw-r--r-- | routing/routing_options.hpp | 1 | ||||
-rw-r--r-- | routing/routing_tests/routing_options_tests.cpp | 21 |
3 files changed, 29 insertions, 1 deletions
diff --git a/routing/routing_options.cpp b/routing/routing_options.cpp index aeb8ca3a79..9067ad5eda 100644 --- a/routing/routing_options.cpp +++ b/routing/routing_options.cpp @@ -8,6 +8,7 @@ #include "base/checked_cast.hpp" #include "base/logging.hpp" #include "base/macros.hpp" +#include "base/string_utils.hpp" #include <initializer_list> #include <sstream> @@ -32,6 +33,13 @@ RoutingOptions RoutingOptions::LoadCarOptionsFromSettings() return RoutingOptions(base::checked_cast<RoadType>(mode)); } +// static +void RoutingOptions::SaveCarOptionsToSettings(RoutingOptions options) +{ + settings::Set(kAvoidRoutingOptionSettingsForCar, + strings::to_string(static_cast<int32_t>(options.GetOptions()))); +} + void RoutingOptions::Add(RoutingOptions::Road type) { m_options |= static_cast<RoadType>(type); diff --git a/routing/routing_options.hpp b/routing/routing_options.hpp index 437080de98..457ad61cf1 100644 --- a/routing/routing_options.hpp +++ b/routing/routing_options.hpp @@ -33,6 +33,7 @@ public: explicit RoutingOptions(RoadType mask) : m_options(mask) {} static RoutingOptions LoadCarOptionsFromSettings(); + static void SaveCarOptionsToSettings(RoutingOptions options); void Add(Road type); void Remove(Road type); diff --git a/routing/routing_tests/routing_options_tests.cpp b/routing/routing_tests/routing_options_tests.cpp index 779101a392..2f2df77bf7 100644 --- a/routing/routing_tests/routing_options_tests.cpp +++ b/routing/routing_tests/routing_options_tests.cpp @@ -11,13 +11,20 @@ namespace { using RoadType = RoutingOptions::RoadType; -void Checker(std::vector<RoutingOptions::Road> const & include) +RoutingOptions CreateOptions(std::vector<RoutingOptions::Road> const & include) { RoutingOptions options; for (auto type : include) options.Add(type); + return options; +} + +void Checker(std::vector<RoutingOptions::Road> const & include) +{ + RoutingOptions options = CreateOptions(include); + for (auto type : include) TEST(options.Has(type), ()); @@ -48,4 +55,16 @@ UNIT_TEST(RoutingOptionTest) Checker({RoutingOptions::Road::Dirty, RoutingOptions::Road::Motorway}); Checker({}); } + +UNIT_TEST(RoutingOption_GetSetTest) +{ + RoutingOptions options = CreateOptions({RoutingOptions::Road::Toll, + RoutingOptions::Road::Motorway, + RoutingOptions::Road::Dirty}); + + RoutingOptions::SaveCarOptionsToSettings(options); + RoutingOptions fromSettings = RoutingOptions::LoadCarOptionsFromSettings(); + + TEST_EQUAL(options.GetOptions(), fromSettings.GetOptions(), ()); +} } // namespace |