2 * Copyright (c) 2014 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 * @file test/cyad/CyadCommandlineTest.h
18 * @author Aleksander Zdyb <a.zdyb@samsung.com>
20 * @brief Fixture for CyadCommandlineParser tests
23 #ifndef TEST_CYAD_CYADCOMMANDLINETEST_H_
24 #define TEST_CYAD_CYADCOMMANDLINETEST_H_
33 #include <gmock/gmock.h>
34 #include <gtest/gtest.h>
36 #include <cyad/CommandlineParser/CyadCommand.h>
37 #include <cyad/CommandlineParser/CyadCommandlineParser.h>
39 class CyadCommandlineTest : public ::testing::Test {
41 typedef std::vector<std::string> Args;
43 void prepare_argv(const Args &args) {
47 m_argv = new char *[m_argc];
49 for (auto i = 0; i < m_argc; ++i) {
50 m_argv[i] = strdup(args.at(i).c_str());
51 if (m_argv[i] == nullptr)
52 throw std::bad_alloc();
56 int argc(void) const {
60 char * const *argv(void) const {
65 virtual void TearDown(void) {
69 void destroy_argv(void) {
70 for (auto i = 0; i < m_argc; ++i) {
81 char **m_argv = nullptr;
84 #endif /* TEST_CYAD_CYADCOMMANDLINETEST_H_ */