blob: 97f72892109e1aa27b70faead04c17ba8bc5cc57 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "garnet/bin/zxdb/client/setting_value.h"
#include "gtest/gtest.h"
namespace zxdb {
TEST(SettingValue, Boolean) {
SettingValue setting(false);
ASSERT_TRUE(setting.valid());
ASSERT_TRUE(setting.is_bool());
EXPECT_FALSE(setting.GetBool());
setting = SettingValue(true);
EXPECT_TRUE(setting.GetBool());
setting.GetBool() = false;
EXPECT_FALSE(setting.GetBool());
}
TEST(SettingValue, Int) {
SettingValue setting(0);
ASSERT_TRUE(setting.valid());
ASSERT_TRUE(setting.is_int());
EXPECT_EQ(setting.GetInt(), 0);
constexpr int kTestInt = 43;
setting = SettingValue(kTestInt);
EXPECT_EQ(setting.GetInt(), kTestInt);
constexpr int kTestInt2 = 10;
setting.GetInt() = kTestInt2;
EXPECT_EQ(setting.GetInt(), kTestInt2);
setting.GetInt()++;
setting.GetInt() += 2;
setting.GetInt() *= 2;
EXPECT_EQ(setting.GetInt(), (kTestInt2 + 3) * 2);
}
const char kTestString[] = "test_string";
const char kTestString2[] = "test_string2";
const char kTestString3[] = "test_string3";
TEST(SettingValue, String) {
SettingValue setting(std::string{});
ASSERT_TRUE(setting.valid());
ASSERT_TRUE(setting.is_string());
EXPECT_TRUE(setting.GetString().empty());
setting = SettingValue(kTestString);
EXPECT_EQ(setting.GetString(), kTestString);
setting = SettingValue(std::string(kTestString2));
EXPECT_EQ(setting.GetString(), kTestString2);
setting.GetString() = kTestString3;
EXPECT_EQ(setting.GetString(), kTestString3);
setting.GetString().append(kTestString3);
EXPECT_EQ(setting.GetString(), std::string(kTestString3) + kTestString3);
}
TEST(SettingValue, List) {
SettingValue setting(std::vector<std::string>{});
ASSERT_TRUE(setting.valid());
ASSERT_TRUE(setting.is_list());
EXPECT_TRUE(setting.GetList().empty());
setting = SettingValue(std::vector<std::string>{kTestString});
ASSERT_EQ(setting.GetList().size(), 1u);
setting.GetList() = {kTestString, kTestString2};
ASSERT_EQ(setting.GetList().size(), 2u);
setting.GetList().pop_back();
setting.GetList().push_back(kTestString3);
setting.GetList().push_back(kTestString2);
ASSERT_EQ(setting.GetList().size(), 3u);
EXPECT_EQ(setting.GetList()[1], kTestString3);
auto it = setting.GetList().begin();
EXPECT_EQ(*it++, kTestString);
EXPECT_EQ(*it++, kTestString3);
EXPECT_EQ(*it++, kTestString2);
EXPECT_EQ(it, setting.GetList().end());
}
} // namespace zxdb