• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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