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()