148f512ceSopenharmony_ci/* 248f512ceSopenharmony_ci * Copyright (c) 2021-2022 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#ifndef HIPERF_SUBCOMMAND_TEST_H 1748f512ceSopenharmony_ci#define HIPERF_SUBCOMMAND_TEST_H 1848f512ceSopenharmony_ci 1948f512ceSopenharmony_ci#include <gmock/gmock.h> 2048f512ceSopenharmony_ci#include <gtest/gtest.h> 2148f512ceSopenharmony_ci 2248f512ceSopenharmony_ci#include "subcommand.h" 2348f512ceSopenharmony_cinamespace OHOS { 2448f512ceSopenharmony_cinamespace Developtools { 2548f512ceSopenharmony_cinamespace HiPerf { 2648f512ceSopenharmony_cistatic std::string TEST_CMD_1 = "TEST_CMD_1"; 2748f512ceSopenharmony_cistatic std::string TEST_CMD_2 = "TEST_CMD_2"; 2848f512ceSopenharmony_cistatic std::string TEST_CMD_3 = "TEST_CMD_3"; 2948f512ceSopenharmony_cistatic std::string TEST_NOREG_CMD = "TEST_NOREG_CMD"; 3048f512ceSopenharmony_cistatic std::string TEST_BRIEF = " TEST_BRIEF\n"; 3148f512ceSopenharmony_cistatic std::string TEST_HELP = " TEST_HELP\n"; 3248f512ceSopenharmony_ci 3348f512ceSopenharmony_cistatic const std::vector<std::string> EMPTY_ARGS = {""}; 3448f512ceSopenharmony_cistatic const std::vector<std::string> TEST_REG_ARG_1 = {TEST_CMD_1}; 3548f512ceSopenharmony_cistatic const std::vector<std::string> TEST_REG_ARG_2 = {TEST_CMD_2}; 3648f512ceSopenharmony_cistatic const std::vector<std::string> TEST_REG_ARG_3 = {TEST_CMD_3}; 3748f512ceSopenharmony_cistatic const std::vector<std::string> TEST_REG_ARG_3S = {TEST_CMD_3, TEST_CMD_2, TEST_CMD_1}; 3848f512ceSopenharmony_cistatic const std::vector<std::string> TEST_NOREG_ARG_1 = {TEST_NOREG_CMD}; 3948f512ceSopenharmony_ci 4048f512ceSopenharmony_ciclass SubCommandTest : public SubCommand { 4148f512ceSopenharmony_cipublic: 4248f512ceSopenharmony_ci explicit SubCommandTest(std::string name) : SubCommand(name, TEST_BRIEF, TEST_HELP) {} 4348f512ceSopenharmony_ci 4448f512ceSopenharmony_ci bool OnSubCommand(std::vector<std::string> &args) override 4548f512ceSopenharmony_ci { 4648f512ceSopenharmony_ci return true; 4748f512ceSopenharmony_ci } 4848f512ceSopenharmony_ci}; 4948f512ceSopenharmony_ci 5048f512ceSopenharmony_ciusing ::testing::_; 5148f512ceSopenharmony_ciusing ::testing::Return; 5248f512ceSopenharmony_ci 5348f512ceSopenharmony_ciclass MockSubCommand : public SubCommand { 5448f512ceSopenharmony_cipublic: 5548f512ceSopenharmony_ci explicit MockSubCommand(std::string name) : SubCommand(name, TEST_BRIEF, TEST_HELP) {} 5648f512ceSopenharmony_ci MockSubCommand() : MockSubCommand("mock") {} 5748f512ceSopenharmony_ci MOCK_METHOD1(OnSubCommand, bool(std::vector<std::string> &args)); 5848f512ceSopenharmony_ci}; 5948f512ceSopenharmony_ci} // namespace HiPerf 6048f512ceSopenharmony_ci} // namespace Developtools 6148f512ceSopenharmony_ci} // namespace OHOS 6248f512ceSopenharmony_ci#endif // HIPERF_SUBCOMMAND_TEST_H 63