* Copyright (c) 2021-2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef HIPERF_SUBCOMMAND_TEST_H
#define HIPERF_SUBCOMMAND_TEST_H
#include <gmock/gmock.h>
#include <gtest/gtest.h>
#include "subcommand.h"
namespace OHOS {
namespace Developtools {
namespace HiPerf {
static std::string TEST_CMD_1 = "TEST_CMD_1";
static std::string TEST_CMD_2 = "TEST_CMD_2";
static std::string TEST_CMD_3 = "TEST_CMD_3";
static std::string TEST_NOREG_CMD = "TEST_NOREG_CMD";
static std::string TEST_BRIEF = " TEST_BRIEF\n";
static std::string TEST_HELP = " TEST_HELP\n";
static const std::vector<std::string> EMPTY_ARGS = {""};
static const std::vector<std::string> TEST_REG_ARG_1 = {TEST_CMD_1};
static const std::vector<std::string> TEST_REG_ARG_2 = {TEST_CMD_2};
static const std::vector<std::string> TEST_REG_ARG_3 = {TEST_CMD_3};
static const std::vector<std::string> TEST_REG_ARG_3S = {TEST_CMD_3, TEST_CMD_2, TEST_CMD_1};
static const std::vector<std::string> TEST_NOREG_ARG_1 = {TEST_NOREG_CMD};
class SubCommandTest : public SubCommand {
public:
explicit SubCommandTest(std::string name) : SubCommand(name, TEST_BRIEF, TEST_HELP) {}
HiperfError OnSubCommand(std::vector<std::string>& args) override
{
return HiperfError::NO_ERR;
}
};
using ::testing::_;
using ::testing::Return;
class MockSubCommand : public SubCommand {
public:
explicit MockSubCommand(std::string name) : SubCommand(name, TEST_BRIEF, TEST_HELP) {}
MockSubCommand() : MockSubCommand("mock") {}
MOCK_METHOD1(OnSubCommand, HiperfError(std::vector<std::string> &args));
};
}
}
}
#endif