148f512ceSopenharmony_ci/* 248f512ceSopenharmony_ci * Copyright (c) 2021 Huawei Device Co., Ltd. 348f512ceSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 448f512ceSopenharmony_ci * you may not use this file except in compliance with the License. 548f512ceSopenharmony_ci * You may obtain a copy of the License at 648f512ceSopenharmony_ci * 748f512ceSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 848f512ceSopenharmony_ci * 948f512ceSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1048f512ceSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1148f512ceSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1248f512ceSopenharmony_ci * See the License for the specific language governing permissions and 1348f512ceSopenharmony_ci * limitations under the License. 1448f512ceSopenharmony_ci */ 1548f512ceSopenharmony_ci 1648f512ceSopenharmony_ci#include "subcommand_help_test.h" 1748f512ceSopenharmony_ci 1848f512ceSopenharmony_ci#include "debug_logger.h" 1948f512ceSopenharmony_ci#include "subcommand.h" 2048f512ceSopenharmony_ci#include "subcommand_help.h" 2148f512ceSopenharmony_ci#include "utilities.h" 2248f512ceSopenharmony_ci 2348f512ceSopenharmony_ciusing namespace testing::ext; 2448f512ceSopenharmony_ciusing namespace std; 2548f512ceSopenharmony_ciusing namespace OHOS::HiviewDFX; 2648f512ceSopenharmony_cinamespace OHOS { 2748f512ceSopenharmony_cinamespace Developtools { 2848f512ceSopenharmony_cinamespace HiPerf { 2948f512ceSopenharmony_ciclass SubCommandHelpTest : public testing::Test { 3048f512ceSopenharmony_cipublic: 3148f512ceSopenharmony_ci static void SetUpTestCase(void); 3248f512ceSopenharmony_ci static void TearDownTestCase(void); 3348f512ceSopenharmony_ci void SetUp(); 3448f512ceSopenharmony_ci void TearDown(); 3548f512ceSopenharmony_ci 3648f512ceSopenharmony_ci SubCommandHelp subCommandHelp; 3748f512ceSopenharmony_ci}; 3848f512ceSopenharmony_ci 3948f512ceSopenharmony_ciclass SubCommandTmp : public SubCommand { 4048f512ceSopenharmony_cipublic: 4148f512ceSopenharmony_ci explicit SubCommandTmp(std::string name) 4248f512ceSopenharmony_ci : SubCommand(TEST_CMD_HLP, TEST_HLP_BRIEF, TEST_HLP_HELP) 4348f512ceSopenharmony_ci { 4448f512ceSopenharmony_ci } 4548f512ceSopenharmony_ci 4648f512ceSopenharmony_ci bool OnSubCommand(std::vector<std::string> &args) override 4748f512ceSopenharmony_ci { 4848f512ceSopenharmony_ci return true; 4948f512ceSopenharmony_ci } 5048f512ceSopenharmony_ci}; 5148f512ceSopenharmony_ci 5248f512ceSopenharmony_civoid SubCommandHelpTest::SetUpTestCase() 5348f512ceSopenharmony_ci{ 5448f512ceSopenharmony_ci ASSERT_EQ(SubCommand::GetSubCommands().size(), 0u); 5548f512ceSopenharmony_ci SubCommandHelp::RegisterSubCommandHelp(); 5648f512ceSopenharmony_ci} 5748f512ceSopenharmony_ci 5848f512ceSopenharmony_civoid SubCommandHelpTest::TearDownTestCase() 5948f512ceSopenharmony_ci{ 6048f512ceSopenharmony_ci SubCommand::ClearSubCommands(); 6148f512ceSopenharmony_ci ASSERT_EQ(SubCommand::GetSubCommands().size(), 0u); 6248f512ceSopenharmony_ci} 6348f512ceSopenharmony_ci 6448f512ceSopenharmony_civoid SubCommandHelpTest::SetUp() {} 6548f512ceSopenharmony_ci 6648f512ceSopenharmony_civoid SubCommandHelpTest::TearDown() {} 6748f512ceSopenharmony_ci 6848f512ceSopenharmony_ci/** 6948f512ceSopenharmony_ci * @tc.name: TestOnSubCommand 7048f512ceSopenharmony_ci * @tc.desc: 7148f512ceSopenharmony_ci * @tc.type: FUNC 7248f512ceSopenharmony_ci */ 7348f512ceSopenharmony_ciHWTEST_F(SubCommandHelpTest, TestOnSubCommand, TestSize.Level1) 7448f512ceSopenharmony_ci{ 7548f512ceSopenharmony_ci std::vector<std::string> args; 7648f512ceSopenharmony_ci 7748f512ceSopenharmony_ci args = {"--help"}; 7848f512ceSopenharmony_ci EXPECT_EQ(subCommandHelp.OnSubCommand(args), true); 7948f512ceSopenharmony_ci} 8048f512ceSopenharmony_ci 8148f512ceSopenharmony_ci/** 8248f512ceSopenharmony_ci * @tc.name: TestOnHelpAll 8348f512ceSopenharmony_ci * @tc.desc: 8448f512ceSopenharmony_ci * @tc.type: FUNC 8548f512ceSopenharmony_ci */ 8648f512ceSopenharmony_ciHWTEST_F(SubCommandHelpTest, TestOnHelpAll, TestSize.Level1) 8748f512ceSopenharmony_ci{ 8848f512ceSopenharmony_ci std::vector<std::string> args; 8948f512ceSopenharmony_ci 9048f512ceSopenharmony_ci EXPECT_EQ(subCommandHelp.OnHelp(args), true); 9148f512ceSopenharmony_ci} 9248f512ceSopenharmony_ci 9348f512ceSopenharmony_ci/** 9448f512ceSopenharmony_ci * @tc.name: TestOnHelpRegCmd 9548f512ceSopenharmony_ci * @tc.desc: 9648f512ceSopenharmony_ci * @tc.type: FUNC 9748f512ceSopenharmony_ci */ 9848f512ceSopenharmony_ciHWTEST_F(SubCommandHelpTest, TestOnHelpRegCmd, TestSize.Level1) 9948f512ceSopenharmony_ci{ 10048f512ceSopenharmony_ci std::vector<std::string> args; 10148f512ceSopenharmony_ci SubCommand::RegisterSubCommand(TEST_CMD_HLP, std::make_unique<SubCommandTmp>(TEST_CMD_HLP)); 10248f512ceSopenharmony_ci args = {"TEST_CMD_HLP"}; 10348f512ceSopenharmony_ci EXPECT_EQ(subCommandHelp.OnHelp(args), true); 10448f512ceSopenharmony_ci} 10548f512ceSopenharmony_ci 10648f512ceSopenharmony_ci/** 10748f512ceSopenharmony_ci * @tc.name: TestOnHelpUnknownCmd 10848f512ceSopenharmony_ci * @tc.desc: 10948f512ceSopenharmony_ci * @tc.type: FUNC 11048f512ceSopenharmony_ci */ 11148f512ceSopenharmony_ciHWTEST_F(SubCommandHelpTest, TestOnHelpUnknownCmd, TestSize.Level1) 11248f512ceSopenharmony_ci{ 11348f512ceSopenharmony_ci std::vector<std::string> args; 11448f512ceSopenharmony_ci 11548f512ceSopenharmony_ci args = {"unknowcmd"}; 11648f512ceSopenharmony_ci EXPECT_EQ(subCommandHelp.OnHelp(args), false); 11748f512ceSopenharmony_ci} 11848f512ceSopenharmony_ci} // namespace HiPerf 11948f512ceSopenharmony_ci} // namespace Developtools 12048f512ceSopenharmony_ci} // namespace OHOS 121