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 <meta/base/version.h>
19
20 #include "src/test_runner.h"
21
22 using namespace testing::ext;
23
24 META_BEGIN_NAMESPACE()
25
26 class VersionTest : public testing::Test {
27 public:
SetUpTestSuite()28 static void SetUpTestSuite()
29 {
30 SetTest();
31 }
TearDownTestSuite()32 static void TearDownTestSuite()
33 {
34 ResetTest();
35 }
36 void SetUp() override {}
37 void TearDown() override {}
38 };
39
40 /**
41 * @tc.name: VersionTest
42 * @tc.desc: test Compare function
43 * @tc.type: FUNC
44 * @tc.require: I7DMS1
45 */
HWTEST_F(VersionTest, Compare, TestSize.Level1)46 HWTEST_F(VersionTest, Compare, TestSize.Level1)
47 {
48 Version a;
49 Version b(1, 0);
50 Version c(1, 1);
51 Version d(0, 9999);
52 Version e(1, 9999);
53 Version f(2366, 0);
54
55 EXPECT_TRUE(a == a);
56 EXPECT_TRUE(b == b);
57 EXPECT_TRUE(a != b);
58
59 EXPECT_TRUE(a < b);
60 EXPECT_TRUE(b < c);
61 EXPECT_TRUE(d < b);
62 EXPECT_TRUE(e < f);
63
64 EXPECT_FALSE(b > b);
65 EXPECT_FALSE(b > c);
66 EXPECT_FALSE(d > b);
67 EXPECT_FALSE(e > f);
68
69 EXPECT_TRUE(a <= a);
70 EXPECT_TRUE(b <= b);
71 EXPECT_TRUE(a <= b);
72 EXPECT_TRUE(b <= c);
73 EXPECT_TRUE(d <= b);
74 EXPECT_TRUE(e <= f);
75
76 EXPECT_TRUE(a >= a);
77 EXPECT_TRUE(b >= b);
78 EXPECT_FALSE(a >= b);
79 EXPECT_FALSE(b >= c);
80 EXPECT_FALSE(d >= b);
81 EXPECT_FALSE(e >= f);
82 }
83
TestFromToVersion(Version v)84 void TestFromToVersion(Version v)
85 {
86 Version other(v.ToString());
87 EXPECT_EQ(v, other);
88 }
89
90 /**
91 * @tc.name: VersionTest
92 * @tc.desc: test ToString function
93 * @tc.type: FUNC
94 * @tc.require: I7DMS1
95 */
HWTEST_F(VersionTest, ToString, TestSize.Level1)96 HWTEST_F(VersionTest, ToString, TestSize.Level1)
97 {
98 TestFromToVersion(Version());
99 TestFromToVersion(Version(1, 0));
100 TestFromToVersion(Version(1, 1));
101 TestFromToVersion(Version(1, 9999));
102 TestFromToVersion(Version(9999, 0));
103 TestFromToVersion(Version(123, 2));
104 }
105
106 /**
107 * @tc.name: VersionTest
108 * @tc.desc: test FromString function
109 * @tc.type: FUNC
110 * @tc.require: I7DMS1
111 */
HWTEST_F(VersionTest, FromString, TestSize.Level1)112 HWTEST_F(VersionTest, FromString, TestSize.Level1)
113 {
114 EXPECT_EQ(Version("1"), Version(1, 0));
115 EXPECT_EQ(Version("1125"), Version(1125, 0));
116 EXPECT_EQ(Version("1."), Version(1, 0));
117 EXPECT_EQ(Version("1.df"), Version(1, 0));
118 }
119
120 /**
121 * @tc.name: VersionTest
122 * @tc.desc: test InvalidString function
123 * @tc.type: FUNC
124 * @tc.require: I7DMS1
125 */
HWTEST_F(VersionTest, InvalidString, TestSize.Level1)126 HWTEST_F(VersionTest, InvalidString, TestSize.Level1)
127 {
128 EXPECT_EQ(Version(""), Version());
129 EXPECT_EQ(Version(".1"), Version());
130 EXPECT_EQ(Version(".."), Version());
131 EXPECT_EQ(Version("asdb"), Version());
132 EXPECT_EQ(Version("-1.24"), Version());
133 }
134 META_END_NAMESPACE()