1 /*
2 * Copyright (c) 2021-2022 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 #define private public
19 #define protected public
20 #include "zchar_wrapper.h"
21 #undef private
22 #undef protected
23
24 using namespace OHOS;
25 using namespace OHOS::AAFwk;
26 using testing::ext::TestSize;
27
28 namespace OHOS {
29 namespace AAFwk {
30 class AAfWKZcharWrapperTest : public testing::Test {
31 public:
SetUpTestCase()32 static void SetUpTestCase() {};
TearDownTestCase()33 static void TearDownTestCase() {};
SetUp()34 void SetUp() {};
TearDown()35 void TearDown() {};
36 };
37
38 /**
39 * @tc.number: ZcharWrapperTest_GetValue_001
40 * @tc.name: GetValue
41 * @tc.desc:
42 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetValue_001, TestSize.Level1)43 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetValue_001, TestSize.Level1)
44 {
45 zchar value = 0;
46 Char zcharValue(value);
47 ErrCode result = zcharValue.GetValue(value);
48 EXPECT_EQ(ERR_OK, result);
49 }
50
51 /**
52 * @tc.number: ZcharWrapperTest_Box_001
53 * @tc.name: Box
54 * @tc.desc:
55 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_Box_001, TestSize.Level1)56 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_Box_001, TestSize.Level1)
57 {
58 char value = 0;
59 Char charValue(value);
60 char result = charValue.Unbox(charValue.Box(value));
61 EXPECT_EQ(0, result);
62 }
63
64 /**
65 * @tc.number: ZcharWrapperTest_GetByteSize_001
66 * @tc.name: GetByteSize
67 * @tc.desc:
68 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_001, TestSize.Level1)69 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_001, TestSize.Level1)
70 {
71 zchar value = 0xD801;
72 Char zcharValue(value);
73 EXPECT_EQ(0, zcharValue.GetByteSize(value));
74 }
75
76 /**
77 * @tc.number: ZcharWrapperTest_GetByteSize_002
78 * @tc.name: GetByteSize
79 * @tc.desc:
80 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_002, TestSize.Level1)81 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_002, TestSize.Level1)
82 {
83 zchar value = 0x10FFFF + 1;
84 Char zcharValue(value);
85 EXPECT_EQ(0, zcharValue.GetByteSize(value));
86 }
87
88 /**
89 * @tc.number: ZcharWrapperTest_GetByteSize_003
90 * @tc.name: GetByteSize
91 * @tc.desc:
92 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_003, TestSize.Level1)93 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_003, TestSize.Level1)
94 {
95 zchar value = 0x00000800 - 1;
96 Char zcharValue(value);
97 EXPECT_EQ(2, zcharValue.GetByteSize(value));
98 }
99
100 /**
101 * @tc.number: ZcharWrapperTest_GetByteSize_004
102 * @tc.name: GetByteSize
103 * @tc.desc:
104 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_004, TestSize.Level1)105 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_004, TestSize.Level1)
106 {
107 zchar value = 0x00010000 - 1;
108 Char zcharValue(value);
109 EXPECT_EQ(3, zcharValue.GetByteSize(value));
110 }
111
112 /**
113 * @tc.number: ZcharWrapperTest_GetByteSize_005
114 * @tc.name: GetByteSize
115 * @tc.desc:
116 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_005, TestSize.Level1)117 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetByteSize_005, TestSize.Level1)
118 {
119 zchar value = 0x00010000 + 1;
120 Char zcharValue(value);
121 EXPECT_EQ(4, zcharValue.GetByteSize(value));
122 }
123
124 /**
125 * @tc.number: ZcharWrapperTest_WriteUTF8Bytes_001
126 * @tc.name: WriteUTF8Bytes
127 * @tc.desc:
128 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_001, TestSize.Level1)129 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_001, TestSize.Level1)
130 {
131 zchar value = 0;
132 Char zcharValue(value);
133 char *dst = new char [4];
134 int32_t size = 4;
135 zcharValue.WriteUTF8Bytes(dst, value, size);
136 EXPECT_EQ(1, zcharValue.GetByteSize(value));
137 }
138
139 /**
140 * @tc.number: ZcharWrapperTest_WriteUTF8Bytes_002
141 * @tc.name: WriteUTF8Bytes
142 * @tc.desc:
143 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_002, TestSize.Level1)144 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_002, TestSize.Level1)
145 {
146 zchar value = 0;
147 Char zcharValue(value);
148 char *dst = new char [4];
149 int32_t size = 3;
150 zcharValue.WriteUTF8Bytes(dst, value, size);
151 EXPECT_EQ(1, zcharValue.GetByteSize(value));
152 }
153
154 /**
155 * @tc.number: ZcharWrapperTest_WriteUTF8Bytes_003
156 * @tc.name: WriteUTF8Bytes
157 * @tc.desc:
158 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_003, TestSize.Level1)159 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_WriteUTF8Bytes_003, TestSize.Level1)
160 {
161 zchar value = 0;
162 Char zcharValue(value);
163 char *dst = new char [4];
164 int32_t size = 2;
165 zcharValue.WriteUTF8Bytes(dst, value, size);
166 EXPECT_EQ(1, zcharValue.GetByteSize(value));
167 }
168
169 /**
170 * @tc.number: ZcharWrapperTest_GetChar_001
171 * @tc.name: GetChar
172 * @tc.desc:
173 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_001, TestSize.Level1)174 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_001, TestSize.Level1)
175 {
176 zchar value = 0;
177 Char zcharValue(value);
178 std::string str = "";
179 int32_t index = 2;
180 EXPECT_EQ(Char::INVALID_CHAR, zcharValue.GetChar(str, index));
181 }
182
183 /**
184 * @tc.number: ZcharWrapperTest_GetChar_002
185 * @tc.name: GetChar
186 * @tc.desc:
187 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_002, TestSize.Level1)188 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_002, TestSize.Level1)
189 {
190 zchar value = 0;
191 Char zcharValue(value);
192 std::string str = "string";
193 int32_t index = -1;
194 EXPECT_EQ(Char::INVALID_CHAR, zcharValue.GetChar(str, index));
195 }
196
197 /**
198 * @tc.number: ZcharWrapperTest_GetChar_003
199 * @tc.name: GetChar
200 * @tc.desc:
201 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_003, TestSize.Level1)202 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetChar_003, TestSize.Level1)
203 {
204 zchar value = 0;
205 Char zcharValue(value);
206 std::string str = "string";
207 int32_t index = 10;
208 EXPECT_EQ(Char::INVALID_CHAR, zcharValue.GetChar(str, index));
209 }
210
211 /**
212 * @tc.number: ZcharWrapperTest_GetCharInternal_001
213 * @tc.name: GetCharInternal
214 * @tc.desc:
215 */
HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetCharInternal_001, TestSize.Level1)216 HWTEST_F(AAfWKZcharWrapperTest, ZcharWrapperTest_GetCharInternal_001, TestSize.Level1)
217 {
218 zchar value = 0;
219 Char zcharValue(value);
220 const char* str = u8"你好";
221 unsigned char* cur = reinterpret_cast<unsigned char*>(const_cast<char*>(str));
222 int32_t size = 0;
223 zcharValue.GetCharInternal(cur, size);
224 EXPECT_EQ(3, size);
225 }
226 }
227 }