Settings container

This commit is contained in:
Dan Paulat 2022-12-07 00:09:17 -06:00
parent 08b1d6e152
commit 1ad67de71b
7 changed files with 251 additions and 14 deletions

View file

@ -0,0 +1,32 @@
#include <scwx/qt/settings/settings_container.hpp>
#include <gmock/gmock.h>
#include <gtest/gtest.h>
namespace scwx
{
namespace qt
{
namespace settings
{
TEST(SettingsContainerTest, Integer)
{
SettingsContainer<std::vector<int64_t>> intContainer {
"std::vector<int64_t>"};
intContainer.SetDefault({42, 5, 63});
intContainer.SetElementMinimum(4);
intContainer.SetElementMaximum(70);
intContainer.SetValueToDefault();
EXPECT_EQ(intContainer.name(), "std::vector<int64_t>");
EXPECT_THAT(intContainer.GetValue(), ::testing::ElementsAre(42, 5, 63));
EXPECT_EQ(intContainer.SetValueOrDefault({50, 0, 80}), false);
EXPECT_THAT(intContainer.GetValue(), ::testing::ElementsAre(50, 4, 70));
EXPECT_EQ(intContainer.SetValueOrDefault({10, 20, 30}), true);
EXPECT_THAT(intContainer.GetValue(), ::testing::ElementsAre(10, 20, 30));
}
} // namespace settings
} // namespace qt
} // namespace scwx

View file

@ -23,7 +23,8 @@ set(SRC_QT_CONFIG_TESTS source/scwx/qt/config/county_database.test.cpp
source/scwx/qt/config/radar_site.test.cpp)
set(SRC_QT_MANAGER_TESTS source/scwx/qt/manager/settings_manager.test.cpp)
set(SRC_QT_MODEL_TESTS source/scwx/qt/model/imgui_context_model.test.cpp)
set(SRC_QT_SETTINGS_TESTS source/scwx/qt/settings/settings_variable.test.cpp)
set(SRC_QT_SETTINGS_TESTS source/scwx/qt/settings/settings_container.test.cpp
source/scwx/qt/settings/settings_variable.test.cpp)
set(SRC_UTIL_TESTS source/scwx/util/float.test.cpp
source/scwx/util/rangebuf.test.cpp
source/scwx/util/streams.test.cpp