1 /*
2  * Copyright (c) 2023 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 #include <iostream>
16 #include <map>
17 
18 #include <gtest/gtest.h>
19 
20 #include "app_event_store.h"
21 #include "hiappevent_base.h"
22 #include "hiappevent_config.h"
23 #include "hiappevent_userinfo.h"
24 
25 using namespace testing::ext;
26 using namespace OHOS::HiviewDFX;
27 
28 namespace {
29 const std::string TEST_DIR = "/data/test/hiappevent/";
30 const std::string TEST_USER_ID_NAME = "testUserName";
31 const std::string TEST_USER_ID_VALUE = "testUserId";
32 const std::string TEST_USER_PROP_NAME = "testUserName";
33 const std::string TEST_USER_PROP_VALUE = "testUserProperty";
34 
35 class HiAppEventUserInfoTest : public testing::Test {
36 public:
37     void SetUp();
38     void TearDown();
39 };
40 
SetUp()41 void HiAppEventUserInfoTest::SetUp()
42 {
43     HiAppEventConfig::GetInstance().SetStorageDir(TEST_DIR);
44     (void)AppEventStore::GetInstance().InitDbStore();
45     HiAppEvent::UserInfo::GetInstance().RemoveUserId(TEST_USER_ID_NAME);
46     HiAppEvent::UserInfo::GetInstance().RemoveUserProperty(TEST_USER_PROP_NAME);
47 }
48 
TearDown()49 void HiAppEventUserInfoTest::TearDown()
50 {
51     (void)AppEventStore::GetInstance().DestroyDbStore();
52 }
53 }
54 
55 /**
56  * @tc.name: HiAppEventUserInfoTest001
57  * @tc.desc: Test to set and get user id.
58  * @tc.type: FUNC
59  * @tc.require: issueI8EOLQ
60  */
61 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest001, TestSize.Level3)
62 {
63     std::cout << "HiAppEventUserInfoTest001 start" << std::endl;
64 
65     {
66         int ret = HiAppEvent::UserInfo::GetInstance().SetUserId(TEST_USER_ID_NAME, TEST_USER_ID_VALUE);
67         ASSERT_EQ(ret, 0);
68     }
69     {
70         std::string strUserId;
71         int ret = HiAppEvent::UserInfo::GetInstance().GetUserId(TEST_USER_ID_NAME, strUserId);
72         ASSERT_EQ(ret, 0);
73         ASSERT_NE(strUserId, "");
74     }
75 
76     std::cout << "HiAppEventUserInfoTest001 end" << std::endl;
77 }
78 
79 /**
80  * @tc.name: HiAppEventUserInfoTest002
81  * @tc.desc: Test failed to get user id.
82  * @tc.type: FUNC
83  * @tc.require: issueI8EOLQ
84  */
85 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest002, TestSize.Level3)
86 {
87     std::cout << "HiAppEventUserInfoTest002 start" << std::endl;
88 
89     {
90         int ret = HiAppEvent::UserInfo::GetInstance().SetUserId(TEST_USER_ID_NAME, TEST_USER_ID_VALUE);
91         ASSERT_EQ(ret, 0);
92     }
93     {
94         std::string strUserId;
95         int ret = HiAppEvent::UserInfo::GetInstance().GetUserId("", strUserId);
96         ASSERT_EQ(ret, 0);
97         ASSERT_EQ(strUserId, "");
98     }
99 
100     std::cout << "HiAppEventUserInfoTest002 end" << std::endl;
101 }
102 
103 /**
104  * @tc.name: HiAppEventUserInfoTest003
105  * @tc.desc: Test to replace and get user id.
106  * @tc.type: FUNC
107  * @tc.require: issueI8EOLQ
108  */
109 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest003, TestSize.Level3)
110 {
111     std::cout << "HiAppEventUserInfoTest003 start" << std::endl;
112 
113     {
114         int ret = HiAppEvent::UserInfo::GetInstance().SetUserId(TEST_USER_ID_NAME, TEST_USER_ID_VALUE);
115         ASSERT_EQ(ret, 0);
116 
117         ret = HiAppEvent::UserInfo::GetInstance().SetUserId(TEST_USER_ID_NAME, "testUserId1");
118         ASSERT_EQ(ret, 0);
119     }
120     {
121         std::string strUserId;
122         int ret = HiAppEvent::UserInfo::GetInstance().GetUserId(TEST_USER_ID_NAME, strUserId);
123         ASSERT_EQ(ret, 0);
124         ASSERT_EQ(strUserId, "testUserId1");
125     }
126 
127     std::cout << "HiAppEventUserInfoTest003 end" << std::endl;
128 }
129 
130 /**
131  * @tc.name: HiAppEventUserInfoTest004
132  * @tc.desc: Test to remove and get user id.
133  * @tc.type: FUNC
134  * @tc.require: issueI8EOLQ
135  */
136 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest004, TestSize.Level3)
137 {
138     std::cout << "HiAppEventUserInfoTest004 start" << std::endl;
139 
140     {
141         int ret = HiAppEvent::UserInfo::GetInstance().SetUserId(TEST_USER_ID_NAME, TEST_USER_ID_VALUE);
142         ASSERT_EQ(ret, 0);
143 
144         ret = HiAppEvent::UserInfo::GetInstance().SetUserId(TEST_USER_ID_NAME, "");
145         ASSERT_EQ(ret, 0);
146     }
147     {
148         std::string strUserId;
149         int ret = HiAppEvent::UserInfo::GetInstance().GetUserId(TEST_USER_ID_NAME, strUserId);
150         ASSERT_EQ(ret, 0);
151         ASSERT_EQ(strUserId, "");
152     }
153 
154     std::cout << "HiAppEventUserInfoTest004 end" << std::endl;
155 }
156 
157 /**
158  * @tc.name: HiAppEventUserInfoTest005
159  * @tc.desc: Test to set and get user property.
160  * @tc.type: FUNC
161  * @tc.require: issueI8EOLQ
162  */
163 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest005, TestSize.Level3)
164 {
165     std::cout << "HiAppEventUserInfoTest005 start" << std::endl;
166 
167     {
168         int ret = HiAppEvent::UserInfo::GetInstance().SetUserProperty(TEST_USER_PROP_NAME, TEST_USER_PROP_VALUE);
169         ASSERT_EQ(ret, 0);
170     }
171     {
172         std::string strUserProperty;
173         int ret = HiAppEvent::UserInfo::GetInstance().GetUserProperty(TEST_USER_PROP_NAME, strUserProperty);
174         ASSERT_EQ(ret, 0);
175         ASSERT_NE(strUserProperty, "");
176     }
177 
178     std::cout << "HiAppEventUserInfoTest005 end" << std::endl;
179 }
180 
181 /**
182  * @tc.name: HiAppEventUserInfoTest006
183  * @tc.desc: Test failed to get user property.
184  * @tc.type: FUNC
185  * @tc.require: issueI8EOLQ
186  */
187 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest006, TestSize.Level3)
188 {
189     std::cout << "HiAppEventUserInfoTest006 start" << std::endl;
190 
191     {
192         int ret = HiAppEvent::UserInfo::GetInstance().SetUserProperty(TEST_USER_PROP_NAME, TEST_USER_PROP_VALUE);
193         ASSERT_EQ(ret, 0);
194     }
195     {
196         std::string strUserProperty;
197         int ret = HiAppEvent::UserInfo::GetInstance().GetUserProperty("", strUserProperty);
198         ASSERT_EQ(ret, 0);
199         ASSERT_EQ(strUserProperty, "");
200     }
201 
202     std::cout << "HiAppEventUserInfoTest006 end" << std::endl;
203 }
204 
205 /**
206  * @tc.name: HiAppEventUserInfoTest007
207  * @tc.desc: Test to set and get user property.
208  * @tc.type: FUNC
209  * @tc.require: issueI8EOLQ
210  */
211 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest007, TestSize.Level3)
212 {
213     std::cout << "HiAppEventUserInfoTest007 start" << std::endl;
214 
215     {
216         int ret = HiAppEvent::UserInfo::GetInstance().SetUserProperty(TEST_USER_PROP_NAME, TEST_USER_PROP_VALUE);
217         ASSERT_EQ(ret, 0);
218 
219         ret = HiAppEvent::UserInfo::GetInstance().SetUserProperty(TEST_USER_PROP_NAME, "testUserProperty1");
220         ASSERT_EQ(ret, 0);
221     }
222     {
223         std::string strUserProperty;
224         int ret = HiAppEvent::UserInfo::GetInstance().GetUserProperty(TEST_USER_PROP_NAME, strUserProperty);
225         ASSERT_EQ(ret, 0);
226         ASSERT_EQ(strUserProperty, "testUserProperty1");
227     }
228 
229     std::cout << "HiAppEventUserInfoTest007 end" << std::endl;
230 }
231 
232 /**
233  * @tc.name: HiAppEventUserInfoTest008
234  * @tc.desc: Test to remove and get user property.
235  * @tc.type: FUNC
236  * @tc.require: issueI8EOLQ
237  */
238 HWTEST_F(HiAppEventUserInfoTest, HiAppEventUserInfoTest008, TestSize.Level3)
239 {
240     std::cout << "HiAppEventUserInfoTest008 start" << std::endl;
241 
242     {
243         int ret = HiAppEvent::UserInfo::GetInstance().SetUserProperty(TEST_USER_PROP_NAME, TEST_USER_PROP_VALUE);
244         ASSERT_EQ(ret, 0);
245 
246         ret = HiAppEvent::UserInfo::GetInstance().SetUserProperty(TEST_USER_PROP_NAME, "");
247         ASSERT_EQ(ret, 0);
248     }
249     {
250         std::string strUserProperty;
251         int ret = HiAppEvent::UserInfo::GetInstance().GetUserProperty(TEST_USER_PROP_NAME, strUserProperty);
252         ASSERT_EQ(ret, 0);
253         ASSERT_EQ(strUserProperty, "");
254     }
255 
256     std::cout << "HiAppEventUserInfoTest008 end" << std::endl;
257 }