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 <gmock/gmock-matchers.h> 178bf80f4bSopenharmony_ci#include <gtest/gtest.h> 188bf80f4bSopenharmony_ci 198bf80f4bSopenharmony_ci#include <meta/api/number.h> 208bf80f4bSopenharmony_ci#include <meta/interface/detail/any.h> 218bf80f4bSopenharmony_ci 228bf80f4bSopenharmony_ci#include "src/test_runner.h" 238bf80f4bSopenharmony_ci#include "src/testing_objects.h" 248bf80f4bSopenharmony_ci 258bf80f4bSopenharmony_ciMETA_BEGIN_NAMESPACE() 268bf80f4bSopenharmony_ciusing namespace testing::ext; 278bf80f4bSopenharmony_ci 288bf80f4bSopenharmony_cienum MyEnum : int16_t { ONE = 1, TWO, THREE }; 298bf80f4bSopenharmony_ci 308bf80f4bSopenharmony_ciclass NumberTest : public testing::Test { 318bf80f4bSopenharmony_cipublic: 328bf80f4bSopenharmony_ci static void SetUpTestSuite() 338bf80f4bSopenharmony_ci { 348bf80f4bSopenharmony_ci SetTest(); 358bf80f4bSopenharmony_ci } 368bf80f4bSopenharmony_ci static void TearDownTestSuite() 378bf80f4bSopenharmony_ci { 388bf80f4bSopenharmony_ci ResetTest(); 398bf80f4bSopenharmony_ci } 408bf80f4bSopenharmony_ci void SetUp() override {} 418bf80f4bSopenharmony_ci void TearDown() override {} 428bf80f4bSopenharmony_ci}; 438bf80f4bSopenharmony_ci 448bf80f4bSopenharmony_ci/** 458bf80f4bSopenharmony_ci * @tc.name: NumberTest 468bf80f4bSopenharmony_ci * @tc.desc: test Values function 478bf80f4bSopenharmony_ci * @tc.type: FUNC 488bf80f4bSopenharmony_ci * @tc.require: I7DMS1 498bf80f4bSopenharmony_ci */ 508bf80f4bSopenharmony_ciHWTEST_F(NumberTest, Values, TestSize.Level1) 518bf80f4bSopenharmony_ci{ 528bf80f4bSopenharmony_ci Number n = 1; 538bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<uint32_t>(), 1); 548bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<int32_t>(), 1); 558bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<float>(), 1); 568bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<MyEnum>(), MyEnum::ONE); 578bf80f4bSopenharmony_ci 588bf80f4bSopenharmony_ci n = Any<uint64_t>(10); 598bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<uint32_t>(), 10); 608bf80f4bSopenharmony_ci n = 1.2f; 618bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<uint32_t>(), 1); 628bf80f4bSopenharmony_ci EXPECT_EQ(n.Get<int32_t>(), 1); 638bf80f4bSopenharmony_ci EXPECT_NEAR(n.Get<float>(), 1.2, 0.0001); 648bf80f4bSopenharmony_ci 658bf80f4bSopenharmony_ci Number en = MyEnum::TWO; 668bf80f4bSopenharmony_ci EXPECT_EQ(en.Get<uint32_t>(), 2); 678bf80f4bSopenharmony_ci EXPECT_EQ(en.Get<MyEnum>(), MyEnum::TWO); 688bf80f4bSopenharmony_ci} 698bf80f4bSopenharmony_ciMETA_END_NAMESPACE()