mirror of
https://github.com/ciphervance/supercell-wx.git
synced 2025-10-30 18:40:05 +00:00
78 lines
2.5 KiB
C++
78 lines
2.5 KiB
C++
#include <scwx/qt/settings/settings_variable.hpp>
|
|
|
|
#include <gtest/gtest.h>
|
|
|
|
namespace scwx
|
|
{
|
|
namespace qt
|
|
{
|
|
namespace settings
|
|
{
|
|
|
|
TEST(SettingsVariableTest, Boolean)
|
|
{
|
|
SettingsVariable<bool> boolVariable {"bool"};
|
|
boolVariable.SetDefault(true);
|
|
boolVariable.SetValue(false);
|
|
|
|
EXPECT_EQ(boolVariable.name(), "bool");
|
|
EXPECT_EQ(boolVariable.GetValue(), false);
|
|
EXPECT_EQ(boolVariable.SetValue(true), true);
|
|
EXPECT_EQ(boolVariable.GetValue(), true);
|
|
EXPECT_EQ(boolVariable.SetValueOrDefault(false), true);
|
|
EXPECT_EQ(boolVariable.GetValue(), false);
|
|
}
|
|
|
|
TEST(SettingsVariableTest, Integer)
|
|
{
|
|
SettingsVariable<int64_t> intVariable {"int64_t"};
|
|
intVariable.SetDefault(42);
|
|
intVariable.SetMinimum(10);
|
|
intVariable.SetMaximum(99);
|
|
intVariable.SetValue(50);
|
|
|
|
EXPECT_EQ(intVariable.name(), "int64_t");
|
|
EXPECT_EQ(intVariable.GetValue(), 50);
|
|
EXPECT_EQ(intVariable.SetValue(0), false);
|
|
EXPECT_EQ(intVariable.GetValue(), 50);
|
|
EXPECT_EQ(intVariable.SetValueOrDefault(0), false); // < Minimum
|
|
EXPECT_EQ(intVariable.GetValue(), 10);
|
|
EXPECT_EQ(intVariable.SetValueOrDefault(100), false); // > Maximum
|
|
EXPECT_EQ(intVariable.GetValue(), 99);
|
|
intVariable.SetValueToDefault();
|
|
EXPECT_EQ(intVariable.GetValue(), 42);
|
|
EXPECT_EQ(intVariable.SetValue(43), true);
|
|
EXPECT_EQ(intVariable.GetValue(), 43);
|
|
EXPECT_EQ(intVariable.SetValueOrDefault(57), true);
|
|
EXPECT_EQ(intVariable.GetValue(), 57);
|
|
|
|
EXPECT_EQ(intVariable.StageValue(0), false);
|
|
EXPECT_EQ(intVariable.StageValue(50), true);
|
|
EXPECT_EQ(intVariable.GetValue(), 57);
|
|
intVariable.Commit();
|
|
EXPECT_EQ(intVariable.GetValue(), 50);
|
|
}
|
|
|
|
TEST(SettingsVariableTest, String)
|
|
{
|
|
SettingsVariable<std::string> stringVariable {"string"};
|
|
stringVariable.SetDefault("Default");
|
|
stringVariable.SetValidator([](const std::string& value)
|
|
{ return !value.empty(); });
|
|
stringVariable.SetValue("Hello World");
|
|
|
|
EXPECT_EQ(stringVariable.name(), "string");
|
|
EXPECT_EQ(stringVariable.GetValue(), "Hello World");
|
|
EXPECT_EQ(stringVariable.SetValue(""), false);
|
|
EXPECT_EQ(stringVariable.GetValue(), "Hello World");
|
|
EXPECT_EQ(stringVariable.SetValueOrDefault(""), false);
|
|
EXPECT_EQ(stringVariable.GetValue(), "Default");
|
|
EXPECT_EQ(stringVariable.SetValue("Value 1"), true);
|
|
EXPECT_EQ(stringVariable.GetValue(), "Value 1");
|
|
EXPECT_EQ(stringVariable.SetValueOrDefault("Value 2"), true);
|
|
EXPECT_EQ(stringVariable.GetValue(), "Value 2");
|
|
}
|
|
|
|
} // namespace settings
|
|
} // namespace qt
|
|
} // namespace scwx
|