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 #include "utils/constant.h"
16 
17 #include <gtest/gtest.h>
18 
19 using namespace testing::ext;
20 using namespace OHOS::DistributedData;
21 
22 class ConstantTest : public testing::Test {
23 };
24 
25 /**
26 * @tc.name: EqualTest
27 * @tc.desc: Equal.
28 * @tc.type: FUNC
29 * @tc.require:
30 * @tc.author: MengYao
31 */
32 HWTEST_F(ConstantTest, EqualTest, TestSize.Level1)
33 {
34     ASSERT_TRUE(Constant::Equal(true, true));
35     ASSERT_TRUE(Constant::Equal(false, false));
36     ASSERT_FALSE(Constant::Equal(true, false));
37     ASSERT_FALSE(Constant::Equal(false, true));
38 }
39 
40 /**
41 * @tc.name: NotEqualTest
42 * @tc.desc: NotEqual.
43 * @tc.type: FUNC
44 * @tc.require:
45 * @tc.author: MengYao
46 */
47 HWTEST_F(ConstantTest, NotEqualTest, TestSize.Level1)
48 {
49     ASSERT_TRUE(Constant::NotEqual(true, false));
50     ASSERT_TRUE(Constant::NotEqual(false, true));
51     ASSERT_FALSE(Constant::NotEqual(true, true));
52     ASSERT_FALSE(Constant::NotEqual(false, false));
53 }
54 
55 /**
56 * @tc.name: SplitTest
57 * @tc.desc: SplitEmptyStringTest.
58 * @tc.type: FUNC
59 * @tc.require:
60 * @tc.author: ht
61 */
62 HWTEST_F(ConstantTest, SplitEmptyStringTest, TestSize.Level1)
63 {
64     auto tokens = Constant::Split("", ",");
65     ASSERT_EQ(tokens.size(), 1);
66     EXPECT_EQ(tokens[0], "");
67 }
68 
69 /**
70 * @tc.name: SplitTest
71 * @tc.desc: SplitStringOneDelimTest.
72 * @tc.type: FUNC
73 * @tc.require:
74 * @tc.author: ht
75 */
76 HWTEST_F(ConstantTest, SplitStringOneDelimTest, TestSize.Level1)
77 {
78     auto tokens = Constant::Split("abc_123", "_");
79     ASSERT_EQ(tokens.size(), 2);
80     EXPECT_EQ(tokens[0], "abc");
81     EXPECT_EQ(tokens[1], "123");
82 }
83 
84 /**
85 * @tc.name: SplitTest
86 * @tc.desc: SplitStringOneDelimAtBeginTest.
87 * @tc.type: FUNC
88 * @tc.require:
89 * @tc.author: ht
90 */
91 HWTEST_F(ConstantTest, SplitStringOneDelimAtBeginTest, TestSize.Level1)
92 {
93     auto tokens = Constant::Split("#abc123", "#");
94     ASSERT_EQ(tokens.size(), 2);
95     EXPECT_EQ(tokens[0], "");
96     EXPECT_EQ(tokens[1], "abc123");
97 }
98 
99 /**
100 * @tc.name: SplitTest
101 * @tc.desc: SplitStringOneDelimAtEndTest.
102 * @tc.type: FUNC
103 * @tc.require:
104 * @tc.author: ht
105 */
106 HWTEST_F(ConstantTest, SplitStringOneDelimAtEndTest, TestSize.Level1)
107 {
108     auto tokens = Constant::Split("abc123!", "!");
109     ASSERT_EQ(tokens.size(), 1);
110     EXPECT_EQ(tokens[0], "abc123");
111 }
112 
113 /**
114 * @tc.name: SplitTest
115 * @tc.desc: SplitStringMutipleDelimTest.
116 * @tc.type: FUNC
117 * @tc.require:
118 * @tc.author: ht
119 */
120 HWTEST_F(ConstantTest, SplitStringMutipleDelimTest, TestSize.Level1)
121 {
122     auto tokens = Constant::Split("abc!123!", "!");
123     ASSERT_EQ(tokens.size(), 2);
124     EXPECT_EQ(tokens[0], "abc");
125     EXPECT_EQ(tokens[1], "123");
126 }
127 
128 /**
129 * @tc.name: SplitTest
130 * @tc.desc: SplitStringNoDelimTest.
131 * @tc.type: FUNC
132 * @tc.require:
133 * @tc.author: ht
134 */
135 HWTEST_F(ConstantTest, SplitStringNoDelimTest, TestSize.Level1)
136 {
137     auto tokens = Constant::Split("abc123", "^");
138     ASSERT_EQ(tokens.size(), 1);
139     EXPECT_EQ(tokens[0], "abc123");
140 }
141 
142 /**
143 * @tc.name: SplitTest
144 * @tc.desc: SplitStringContinuousDelimTest.
145 * @tc.type: FUNC
146 * @tc.require:
147 * @tc.author: ht
148 */
149 HWTEST_F(ConstantTest, SplitStringContinuousDelimTest, TestSize.Level1)
150 {
151     auto tokens = Constant::Split("abc$$$123", "$");
152     ASSERT_EQ(tokens.size(), 4);
153     EXPECT_EQ(tokens[0], "abc");
154     EXPECT_EQ(tokens[1], "");
155     EXPECT_EQ(tokens[2], "");
156     EXPECT_EQ(tokens[3], "123");
157 }
158 
159 /**
160 * @tc.name: SplitTest
161 * @tc.desc: SplitStringLongDelimTest.
162 * @tc.type: FUNC
163 * @tc.require:
164 * @tc.author: ht
165 */
166 HWTEST_F(ConstantTest, SplitStringLongDelimTest, TestSize.Level1)
167 {
168     auto tokens = Constant::Split("abc&&&123", "&&");
169     ASSERT_EQ(tokens.size(), 2);
170     EXPECT_EQ(tokens[0], "abc");
171     EXPECT_EQ(tokens[1], "&123");
172 }
173