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