• 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 
18 #include "array_wifi_id_serializer_test.h"
19 #include "edm_constants.h"
20 #include "utils.h"
21 
22 using namespace testing::ext;
23 
24 namespace OHOS {
25 namespace EDM {
26 namespace TEST {
SetUpTestSuite(void)27 void ArrayWifiIdSerializerTest::SetUpTestSuite(void)
28 {
29     Utils::SetEdmInitialEnv();
30 }
31 
TearDownTestSuite(void)32 void ArrayWifiIdSerializerTest::TearDownTestSuite(void)
33 {
34     Utils::ResetTokenTypeAndUid();
35     ASSERT_TRUE(Utils::IsOriginalUTEnv());
36     std::cout << "now ut process is orignal ut env : " << Utils::IsOriginalUTEnv() << std::endl;
37 }
38 
39 /**
40  * @tc.name: TestSetDifferencePolicyDataEmpty
41  * @tc.desc: Test ArrayWifiIdSerializerTest::SetDifferencePolicy when data is empty
42  * @tc.type: FUNC
43  */
44     HWTEST_F(ArrayWifiIdSerializerTest, TestSetDifferencePolicyDataEmpty, TestSize.Level1)
45 {
46     auto serializer = ArrayWifiIdSerializer::GetInstance();
47     std::vector<WifiId> data;
48     std::vector<WifiId> currentData;
49     std::vector<WifiId> res = serializer->SetDifferencePolicyData(data, currentData);
50     ASSERT_TRUE(res.empty());
51 }
52 
53 /**
54  * @tc.name: TestSerializeEmpty
55  * @tc.desc: Test ArrayWifiIdSerializerTest::Serialize when jsonString is empty
56  * @tc.type: FUNC
57  */
58     HWTEST_F(ArrayWifiIdSerializerTest, TestSerializeEmpty, TestSize.Level1)
59 {
60     auto serializer = ArrayWifiIdSerializer::GetInstance();
61     std::string jsonString;
62     std::vector<WifiId> dataObj;
63     bool ret = serializer->Serialize(dataObj, jsonString);
64     ASSERT_TRUE(ret);
65     ASSERT_TRUE(jsonString.empty());
66 }
67 
68 /**
69  * @tc.name: TestSerializeSuc
70  * @tc.desc: Test ArrayWifiIdSerializerTest::Serialize
71  * @tc.type: FUNC
72  */
73     HWTEST_F(ArrayWifiIdSerializerTest, TestSerializeSuc, TestSize.Level1)
74 {
75     auto serializer = ArrayWifiIdSerializer::GetInstance();
76     std::string jsonString;
77     std::vector<WifiId> dataObj;
78     WifiId id1;
79     id1.SetSsid("wifi_name");
80     id1.SetBssid("68:77:24:77:A6:D9");
81     dataObj.push_back(id1);
82     bool ret = serializer->Serialize(dataObj, jsonString);
83     ASSERT_TRUE(ret);
84     ASSERT_FALSE(jsonString.empty());
85 }
86 
87 /**
88  * @tc.name: TestDeserializeWithEmptyString
89  * @tc.desc: Test ArrayWifiIdSerializerTest::Deserialize jsonString is empty
90  * @tc.type: FUNC
91  */
92 HWTEST_F(ArrayWifiIdSerializerTest, TestDeserializeWithEmptyString, TestSize.Level1)
93 {
94     auto serializer = ArrayWifiIdSerializer::GetInstance();
95     std::string jsonString = "";
96     std::vector<WifiId> dataObj;
97     bool ret = serializer->Deserialize(jsonString, dataObj);
98     ASSERT_TRUE(ret);
99 }
100 
101 /**
102  * @tc.name: TestDeserializeRootIsNotArray
103  * @tc.desc: Test ArrayWifiIdSerializerTest::Deserialize RootIsNotArray
104  * @tc.type: FUNC
105  */
106 HWTEST_F(ArrayWifiIdSerializerTest, TestDeserializeRootIsNotArray, TestSize.Level1)
107 {
108     auto serializer = ArrayWifiIdSerializer::GetInstance();
109     std::string jsonString = R"({"key": "value"})";
110     std::vector<WifiId> dataObj;
111     bool ret = serializer->Deserialize(jsonString, dataObj);
112     ASSERT_FALSE(ret);
113 }
114 
115 /**
116  * @tc.name: TestDeserializeSuc
117  * @tc.desc: Test ArrayWifiIdSerializerTest::Deserialize
118  * @tc.type: FUNC
119  */
120 HWTEST_F(ArrayWifiIdSerializerTest, TestDeserializeSuc, TestSize.Level1)
121 {
122     auto serializer = ArrayWifiIdSerializer::GetInstance();
123     std::string jsonString = R"([{"ssid": "wifi_name", "bssid": "68:77:24:77:A6:D9"}])";
124     std::vector<WifiId> dataObj;
125     bool ret = serializer->Deserialize(jsonString, dataObj);
126     ASSERT_TRUE(ret);
127     ASSERT_EQ(dataObj.size(), 1);
128     ASSERT_EQ(dataObj[0].GetSsid(), "wifi_name");
129     ASSERT_EQ(dataObj[0].GetBssid(), "68:77:24:77:A6:D9");
130 }
131 
132 /**
133  * @tc.name: TestDeserializeMalformedJson
134  * @tc.desc: Test ArrayWifiIdSerializerTest::Deserialize MalformedJson
135  * @tc.type: FUNC
136  */
137 HWTEST_F(ArrayWifiIdSerializerTest, TestDeserializeMalformedJson, TestSize.Level1)
138 {
139     auto serializer = ArrayWifiIdSerializer::GetInstance();
140     std::string jsonString = R"([
141             {"ssid": "wifi_name1", "bssid": "68:77:24:77:A6:D7",
142             {"ssid": "wifi_name2", "bssid": "68:77:24:77:A6:D9"}
143         ])";
144     std::vector<WifiId> dataObj;
145     serializer->Deserialize(jsonString, dataObj);
146     ASSERT_TRUE(dataObj.empty());
147 }
148 
149 /**
150  * @tc.name: TestGetPolicyOutOfRange
151  * @tc.desc: Test ArrayWifiIdSerializerTest::GetPolicy out of range
152  * @tc.type: FUNC
153  */
154 HWTEST_F(ArrayWifiIdSerializerTest, TestGetPolicyOutOfRange, TestSize.Level1)
155 {
156     auto serializer = ArrayWifiIdSerializer::GetInstance();
157     MessageParcel data;
158     data.WriteInt32(EdmConstants::WIFI_LIST_MAX_SIZE + 1);
159     std::vector<WifiId> dataObj;
160     bool ret = serializer->GetPolicy(data, dataObj);
161     ASSERT_FALSE(ret);
162 }
163 
164 /**
165  * @tc.name: TestGetPolicy
166  * @tc.desc: Test ArrayWifiIdSerializerTest::GetPolicy
167  * @tc.type: FUNC
168  */
169 HWTEST_F(ArrayWifiIdSerializerTest, TestGetPolicy, TestSize.Level1)
170 {
171     auto serializer = ArrayWifiIdSerializer::GetInstance();
172     MessageParcel data;
173     std::vector<WifiId> dataObj;
174     data.WriteInt32(1);
175     data.WriteString("wifi_name1");
176     data.WriteString("68:77:24:77:A6:D7");
177     bool ret = serializer->GetPolicy(data, dataObj);
178     ASSERT_TRUE(ret);
179     ASSERT_TRUE(dataObj[0].GetSsid() == "wifi_name1");
180     ASSERT_TRUE(dataObj[0].GetBssid() == "68:77:24:77:A6:D7");
181 }
182 
183 /**
184  * @tc.name: TestWritePolicy
185  * @tc.desc: Test ArrayWifiIdSerializerTest::WritePolicy
186  * @tc.type: FUNC
187  */
188 HWTEST_F(ArrayWifiIdSerializerTest, TestWritePolicy, TestSize.Level1)
189 {
190     auto serializer = ArrayWifiIdSerializer::GetInstance();
191     MessageParcel reply;
192     std::vector<WifiId> dataObj;
193     bool ret = serializer->WritePolicy(reply, dataObj);
194     ASSERT_TRUE(ret);
195 }
196 
197 /**
198  * @tc.name: TestMergePolicy
199  * @tc.desc: Test ArrayWifiIdSerializerTest::MergePolicy
200  * @tc.type: FUNC
201  */
202 HWTEST_F(ArrayWifiIdSerializerTest, TestMergePolicy, TestSize.Level1)
203 {
204     auto serializer = ArrayWifiIdSerializer::GetInstance();
205     std::vector<std::vector<WifiId>> dataObj;
206     std::vector<WifiId> data;
207     WifiId id1;
208     id1.SetSsid("wifi_name1");
209     id1.SetBssid("68:77:24:77:A6:D7");
210     data.push_back(id1);
211     dataObj.push_back(data);
212     std::vector<WifiId> result;
213     serializer->MergePolicy(dataObj, result);
214     ASSERT_TRUE(result.size() == 1);
215 }
216 
217 } // namespace TEST
218 } // namespace EDM
219 } // namespace OHOS