blob: e04d8e564b01419d3e2993a967670ea4f28cc2e5 [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 "src/developer/debug/zxdb/client/setting_value.h"
#include <gtest/gtest.h>
namespace zxdb {
TEST(SettingValue, Boolean) {
SettingValue setting(false);
ASSERT_TRUE(setting.is_bool());
EXPECT_FALSE(setting.get_bool());
setting = SettingValue(true);
EXPECT_TRUE(setting.get_bool());
setting.set_bool(false);
EXPECT_FALSE(setting.get_bool());
}
TEST(SettingValue, Int) {
SettingValue setting(0);
ASSERT_TRUE(setting.is_int());
EXPECT_EQ(setting.get_int(), 0);
constexpr int kTestInt = 43;
setting = SettingValue(kTestInt);
EXPECT_EQ(setting.get_int(), kTestInt);
constexpr int kTestInt2 = 10;
setting.set_int(kTestInt2);
EXPECT_EQ(setting.get_int(), kTestInt2);
}
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.is_string());
EXPECT_TRUE(setting.get_string().empty());
setting = SettingValue(kTestString);
EXPECT_EQ(setting.get_string(), kTestString);
setting = SettingValue(std::string(kTestString2));
EXPECT_EQ(setting.get_string(), kTestString2);
setting.set_string(kTestString3);
EXPECT_EQ(setting.get_string(), kTestString3);
}
TEST(SettingValue, List) {
SettingValue setting(std::vector<std::string>{});
ASSERT_TRUE(setting.is_list());
EXPECT_TRUE(setting.get_list().empty());
setting = SettingValue(std::vector<std::string>{kTestString});
ASSERT_EQ(setting.get_list().size(), 1u);
setting.set_list({kTestString, kTestString2});
ASSERT_EQ(setting.get_list().size(), 2u);
auto it = setting.get_list().begin();
EXPECT_EQ(*it++, kTestString);
EXPECT_EQ(*it++, kTestString2);
EXPECT_EQ(it, setting.get_list().end());
}
} // namespace zxdb