1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #include <gtest/gtest.h> 17 #include <gmock/gmock.h> 18 19 #include "setting_data_observer.h" 20 21 using namespace testing; 22 using namespace testing::ext; 23 24 namespace OHOS::ArkUi::UiAppearance { 25 namespace { 26 constexpr const char* TEST_KEY1 = "testKey1"; 27 constexpr const char* TEST_KEY2 = "testKey2"; 28 constexpr int32_t TEST_USER100 = 100; 29 constexpr int32_t TEST_USER1 = 1; 30 } 31 32 class SettingDataObserverTest : public Test { 33 }; 34 35 HWTEST_F(SettingDataObserverTest, KeyTest_0100, TestSize.Level1) 36 { 37 SettingDataObserver observer; 38 EXPECT_EQ(observer.GetKey(), ""); 39 observer.SetKey(TEST_KEY1); 40 EXPECT_EQ(observer.GetKey(), TEST_KEY1); 41 observer.SetKey(TEST_KEY1); 42 EXPECT_EQ(observer.GetKey(), TEST_KEY1); 43 observer.SetKey(TEST_KEY2); 44 EXPECT_EQ(observer.GetKey(), TEST_KEY2); 45 observer.SetKey(""); 46 EXPECT_EQ(observer.GetKey(), ""); 47 } 48 49 HWTEST_F(SettingDataObserverTest, UserIdTest_0100, TestSize.Level1) 50 { 51 SettingDataObserver observer; 52 EXPECT_EQ(observer.GetUserId(), INVALID_USER_ID); 53 observer.SetUserId(TEST_USER100); 54 EXPECT_EQ(observer.GetUserId(), TEST_USER100); 55 observer.SetUserId(TEST_USER100); 56 EXPECT_EQ(observer.GetUserId(), TEST_USER100); 57 observer.SetUserId(TEST_USER1); 58 EXPECT_EQ(observer.GetUserId(), TEST_USER1); 59 observer.SetUserId(INVALID_USER_ID); 60 EXPECT_EQ(observer.GetUserId(), INVALID_USER_ID); 61 } 62 63 HWTEST_F(SettingDataObserverTest, UpdateFuncTest_0100, TestSize.Level1) 64 { 65 SettingDataObserver observer; 66 observer.OnChange(); 67 68 int32_t userIdGet = TEST_USER100; 69 std::string keyGet; 70 bool isCalled = false; 71 __anonbffd9d100202(const std::string& key, int32_t userId) 72 observer.SetUpdateFunc([&](const std::string& key, int32_t userId) { 73 keyGet = key; 74 userIdGet = userId; 75 isCalled = true; 76 }); 77 EXPECT_EQ(userIdGet, TEST_USER100); 78 EXPECT_EQ(keyGet, ""); 79 EXPECT_EQ(isCalled, false); 80 81 observer.OnChange(); 82 EXPECT_EQ(userIdGet, INVALID_USER_ID); 83 EXPECT_EQ(keyGet, ""); 84 EXPECT_EQ(isCalled, true); 85 } 86 87 HWTEST_F(SettingDataObserverTest, UpdateFuncTest_0200, TestSize.Level1) 88 { 89 SettingDataObserver observer; 90 int32_t userIdGet = TEST_USER100; 91 std::string keyGet; 92 bool isCalled = false; 93 __anonbffd9d100302(const std::string& key, int32_t userId) 94 observer.SetUpdateFunc([&](const std::string& key, int32_t userId) { 95 keyGet = key; 96 userIdGet = userId; 97 isCalled = true; 98 }); 99 observer.SetKey(TEST_KEY1); 100 observer.SetUserId(TEST_USER1); 101 EXPECT_EQ(userIdGet, TEST_USER100); 102 EXPECT_EQ(keyGet, ""); 103 EXPECT_EQ(isCalled, false); 104 105 observer.OnChange(); 106 EXPECT_EQ(userIdGet, TEST_USER1); 107 EXPECT_EQ(keyGet, TEST_KEY1); 108 EXPECT_EQ(isCalled, true); 109 110 userIdGet = INVALID_USER_ID; 111 keyGet = ""; 112 isCalled = false; 113 observer.SetKey(TEST_KEY2); 114 observer.SetUserId(TEST_USER100); 115 observer.OnChange(); 116 EXPECT_EQ(userIdGet, TEST_USER100); 117 EXPECT_EQ(keyGet, TEST_KEY2); 118 EXPECT_EQ(isCalled, true); 119 } 120 121 HWTEST_F(SettingDataObserverTest, UpdateFuncTest_0300, TestSize.Level1) 122 { 123 SettingDataObserver observer; 124 observer.OnChange(); 125 126 int32_t userIdGet = TEST_USER100; 127 std::string keyGet; 128 bool isCalled = false; 129 __anonbffd9d100402(const std::string& key, int32_t userId) 130 observer.SetUpdateFunc([&](const std::string& key, int32_t userId) { 131 keyGet = key; 132 userIdGet = userId; 133 isCalled = true; 134 }); 135 observer.SetKey(TEST_KEY1); 136 observer.SetUserId(TEST_USER1); 137 EXPECT_EQ(userIdGet, TEST_USER100); 138 EXPECT_EQ(keyGet, ""); 139 EXPECT_EQ(isCalled, false); 140 __anonbffd9d100502(const std::string& key, int32_t userId) 141 observer.SetUpdateFunc([&](const std::string& key, int32_t userId) { 142 isCalled = true; 143 }); 144 observer.OnChange(); 145 EXPECT_EQ(userIdGet, TEST_USER100); 146 EXPECT_EQ(keyGet, ""); 147 EXPECT_EQ(isCalled, true); 148 } 149 } // namespace OHOS::ArkUi::UiAppearance 150