18bf80f4bSopenharmony_ci/* 28bf80f4bSopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 38bf80f4bSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 48bf80f4bSopenharmony_ci * you may not use this file except in compliance with the License. 58bf80f4bSopenharmony_ci * You may obtain a copy of the License at 68bf80f4bSopenharmony_ci * 78bf80f4bSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 88bf80f4bSopenharmony_ci * 98bf80f4bSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 108bf80f4bSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 118bf80f4bSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 128bf80f4bSopenharmony_ci * See the License for the specific language governing permissions and 138bf80f4bSopenharmony_ci * limitations under the License. 148bf80f4bSopenharmony_ci */ 158bf80f4bSopenharmony_ci 168bf80f4bSopenharmony_ci#include <gtest/gtest.h> 178bf80f4bSopenharmony_ci 188bf80f4bSopenharmony_ci#include <meta/base/version.h> 198bf80f4bSopenharmony_ci 208bf80f4bSopenharmony_ci#include "src/test_runner.h" 218bf80f4bSopenharmony_ci 228bf80f4bSopenharmony_ciusing namespace testing::ext; 238bf80f4bSopenharmony_ci 248bf80f4bSopenharmony_ciMETA_BEGIN_NAMESPACE() 258bf80f4bSopenharmony_ci 268bf80f4bSopenharmony_ciclass VersionTest : public testing::Test { 278bf80f4bSopenharmony_cipublic: 288bf80f4bSopenharmony_ci static void SetUpTestSuite() 298bf80f4bSopenharmony_ci { 308bf80f4bSopenharmony_ci SetTest(); 318bf80f4bSopenharmony_ci } 328bf80f4bSopenharmony_ci static void TearDownTestSuite() 338bf80f4bSopenharmony_ci { 348bf80f4bSopenharmony_ci ResetTest(); 358bf80f4bSopenharmony_ci } 368bf80f4bSopenharmony_ci void SetUp() override {} 378bf80f4bSopenharmony_ci void TearDown() override {} 388bf80f4bSopenharmony_ci}; 398bf80f4bSopenharmony_ci 408bf80f4bSopenharmony_ci/** 418bf80f4bSopenharmony_ci * @tc.name: VersionTest 428bf80f4bSopenharmony_ci * @tc.desc: test Compare function 438bf80f4bSopenharmony_ci * @tc.type: FUNC 448bf80f4bSopenharmony_ci * @tc.require: I7DMS1 458bf80f4bSopenharmony_ci */ 468bf80f4bSopenharmony_ciHWTEST_F(VersionTest, Compare, TestSize.Level1) 478bf80f4bSopenharmony_ci{ 488bf80f4bSopenharmony_ci Version a; 498bf80f4bSopenharmony_ci Version b(1, 0); 508bf80f4bSopenharmony_ci Version c(1, 1); 518bf80f4bSopenharmony_ci Version d(0, 9999); 528bf80f4bSopenharmony_ci Version e(1, 9999); 538bf80f4bSopenharmony_ci Version f(2366, 0); 548bf80f4bSopenharmony_ci 558bf80f4bSopenharmony_ci EXPECT_TRUE(a == a); 568bf80f4bSopenharmony_ci EXPECT_TRUE(b == b); 578bf80f4bSopenharmony_ci EXPECT_TRUE(a != b); 588bf80f4bSopenharmony_ci 598bf80f4bSopenharmony_ci EXPECT_TRUE(a < b); 608bf80f4bSopenharmony_ci EXPECT_TRUE(b < c); 618bf80f4bSopenharmony_ci EXPECT_TRUE(d < b); 628bf80f4bSopenharmony_ci EXPECT_TRUE(e < f); 638bf80f4bSopenharmony_ci 648bf80f4bSopenharmony_ci EXPECT_FALSE(b > b); 658bf80f4bSopenharmony_ci EXPECT_FALSE(b > c); 668bf80f4bSopenharmony_ci EXPECT_FALSE(d > b); 678bf80f4bSopenharmony_ci EXPECT_FALSE(e > f); 688bf80f4bSopenharmony_ci 698bf80f4bSopenharmony_ci EXPECT_TRUE(a <= a); 708bf80f4bSopenharmony_ci EXPECT_TRUE(b <= b); 718bf80f4bSopenharmony_ci EXPECT_TRUE(a <= b); 728bf80f4bSopenharmony_ci EXPECT_TRUE(b <= c); 738bf80f4bSopenharmony_ci EXPECT_TRUE(d <= b); 748bf80f4bSopenharmony_ci EXPECT_TRUE(e <= f); 758bf80f4bSopenharmony_ci 768bf80f4bSopenharmony_ci EXPECT_TRUE(a >= a); 778bf80f4bSopenharmony_ci EXPECT_TRUE(b >= b); 788bf80f4bSopenharmony_ci EXPECT_FALSE(a >= b); 798bf80f4bSopenharmony_ci EXPECT_FALSE(b >= c); 808bf80f4bSopenharmony_ci EXPECT_FALSE(d >= b); 818bf80f4bSopenharmony_ci EXPECT_FALSE(e >= f); 828bf80f4bSopenharmony_ci} 838bf80f4bSopenharmony_ci 848bf80f4bSopenharmony_civoid TestFromToVersion(Version v) 858bf80f4bSopenharmony_ci{ 868bf80f4bSopenharmony_ci Version other(v.ToString()); 878bf80f4bSopenharmony_ci EXPECT_EQ(v, other); 888bf80f4bSopenharmony_ci} 898bf80f4bSopenharmony_ci 908bf80f4bSopenharmony_ci/** 918bf80f4bSopenharmony_ci * @tc.name: VersionTest 928bf80f4bSopenharmony_ci * @tc.desc: test ToString function 938bf80f4bSopenharmony_ci * @tc.type: FUNC 948bf80f4bSopenharmony_ci * @tc.require: I7DMS1 958bf80f4bSopenharmony_ci */ 968bf80f4bSopenharmony_ciHWTEST_F(VersionTest, ToString, TestSize.Level1) 978bf80f4bSopenharmony_ci{ 988bf80f4bSopenharmony_ci TestFromToVersion(Version()); 998bf80f4bSopenharmony_ci TestFromToVersion(Version(1, 0)); 1008bf80f4bSopenharmony_ci TestFromToVersion(Version(1, 1)); 1018bf80f4bSopenharmony_ci TestFromToVersion(Version(1, 9999)); 1028bf80f4bSopenharmony_ci TestFromToVersion(Version(9999, 0)); 1038bf80f4bSopenharmony_ci TestFromToVersion(Version(123, 2)); 1048bf80f4bSopenharmony_ci} 1058bf80f4bSopenharmony_ci 1068bf80f4bSopenharmony_ci/** 1078bf80f4bSopenharmony_ci * @tc.name: VersionTest 1088bf80f4bSopenharmony_ci * @tc.desc: test FromString function 1098bf80f4bSopenharmony_ci * @tc.type: FUNC 1108bf80f4bSopenharmony_ci * @tc.require: I7DMS1 1118bf80f4bSopenharmony_ci */ 1128bf80f4bSopenharmony_ciHWTEST_F(VersionTest, FromString, TestSize.Level1) 1138bf80f4bSopenharmony_ci{ 1148bf80f4bSopenharmony_ci EXPECT_EQ(Version("1"), Version(1, 0)); 1158bf80f4bSopenharmony_ci EXPECT_EQ(Version("1125"), Version(1125, 0)); 1168bf80f4bSopenharmony_ci EXPECT_EQ(Version("1."), Version(1, 0)); 1178bf80f4bSopenharmony_ci EXPECT_EQ(Version("1.df"), Version(1, 0)); 1188bf80f4bSopenharmony_ci} 1198bf80f4bSopenharmony_ci 1208bf80f4bSopenharmony_ci/** 1218bf80f4bSopenharmony_ci * @tc.name: VersionTest 1228bf80f4bSopenharmony_ci * @tc.desc: test InvalidString function 1238bf80f4bSopenharmony_ci * @tc.type: FUNC 1248bf80f4bSopenharmony_ci * @tc.require: I7DMS1 1258bf80f4bSopenharmony_ci */ 1268bf80f4bSopenharmony_ciHWTEST_F(VersionTest, InvalidString, TestSize.Level1) 1278bf80f4bSopenharmony_ci{ 1288bf80f4bSopenharmony_ci EXPECT_EQ(Version(""), Version()); 1298bf80f4bSopenharmony_ci EXPECT_EQ(Version(".1"), Version()); 1308bf80f4bSopenharmony_ci EXPECT_EQ(Version(".."), Version()); 1318bf80f4bSopenharmony_ci EXPECT_EQ(Version("asdb"), Version()); 1328bf80f4bSopenharmony_ci EXPECT_EQ(Version("-1.24"), Version()); 1338bf80f4bSopenharmony_ci} 1348bf80f4bSopenharmony_ciMETA_END_NAMESPACE()