1 /*
2 * Copyright (c) 2025 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 <gtest/gtest.h>
16
17 #include <meta/base/version.h>
18
19 #include "TestRunner.h"
20
21 using namespace testing::ext;
22
23 META_BEGIN_NAMESPACE()
24
25 class VersionTest : public testing::Test {
26 public:
SetUpTestSuite()27 static void SetUpTestSuite()
28 {
29 SetTest();
30 }
TearDownTestSuite()31 static void TearDownTestSuite()
32 {
33 TearDownTest();
34 }
SetUp()35 void SetUp() {}
TearDown()36 void TearDown() {}
37 };
38
39 HWTEST_F(VersionTest, Compare, TestSize.Level1)
40 {
41 Version a;
42 Version b(1, 0);
43 Version c(1, 1);
44 Version d(0, 9999);
45 Version e(1, 9999);
46 Version f(2366, 0);
47
48 EXPECT_TRUE(a == a);
49 EXPECT_TRUE(b == b);
50 EXPECT_TRUE(a != b);
51
52 EXPECT_TRUE(a < b);
53 EXPECT_TRUE(b < c);
54 EXPECT_TRUE(d < b);
55 EXPECT_TRUE(e < f);
56
57 EXPECT_FALSE(b > b);
58 EXPECT_FALSE(b > c);
59 EXPECT_FALSE(d > b);
60 EXPECT_FALSE(e > f);
61
62 EXPECT_TRUE(a <= a);
63 EXPECT_TRUE(b <= b);
64 EXPECT_TRUE(a <= b);
65 EXPECT_TRUE(b <= c);
66 EXPECT_TRUE(d <= b);
67 EXPECT_TRUE(e <= f);
68
69 EXPECT_TRUE(a >= a);
70 EXPECT_TRUE(b >= b);
71 EXPECT_FALSE(a >= b);
72 EXPECT_FALSE(b >= c);
73 EXPECT_FALSE(d >= b);
74 EXPECT_FALSE(e >= f);
75 }
76
TestFromToVersion(Version v)77 void TestFromToVersion(Version v)
78 {
79 Version other(v.ToString());
80 EXPECT_EQ(v, other);
81 }
82
83 HWTEST_F(VersionTest, ToString, TestSize.Level1)
84 {
85 TestFromToVersion(Version());
86 TestFromToVersion(Version(1, 0));
87 TestFromToVersion(Version(1, 1));
88 TestFromToVersion(Version(1, 9999));
89 TestFromToVersion(Version(9999, 0));
90 TestFromToVersion(Version(123, 2));
91 }
92
93 HWTEST_F(VersionTest, FromString, TestSize.Level1)
94 {
95 EXPECT_EQ(Version("1"), Version(1, 0));
96 EXPECT_EQ(Version("1125"), Version(1125, 0));
97 EXPECT_EQ(Version("1."), Version(1, 0));
98 EXPECT_EQ(Version("1.df"), Version(1, 0));
99 }
100
101 HWTEST_F(VersionTest, InvalidString, TestSize.Level1)
102 {
103 EXPECT_EQ(Version(""), Version());
104 EXPECT_EQ(Version(".1"), Version());
105 EXPECT_EQ(Version(".."), Version());
106 EXPECT_EQ(Version("asdb"), Version());
107 EXPECT_EQ(Version("-1.24"), Version());
108 }
109
110 META_END_NAMESPACE()
111