Skip to content
Snippets Groups Projects
Commit fa9042d9 authored by Steven Murray's avatar Steven Murray
Browse files

Revert "WIP"

This reverts commit f3880285.
parent bc122a95
No related branches found
No related tags found
No related merge requests found
/*
* The CERN Tape Archive(CTA) project
* Copyright(C) 2015 CERN
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
*(at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "common/exception/Exception.hpp"
#include "catalogue/CreateAdminUserCmdLineArgs.hpp"
#include <gtest/gtest.h>
#include <list>
namespace unitTests {
class cta_catalogue_CreateAdminUserCmdLineArgsTest : public ::testing::Test {
protected:
struct Argcv {
int argc;
char **argv;
Argcv(): argc(0), argv(NULL) {
}
};
typedef std::list<Argcv*> ArgcvList;
ArgcvList m_argsList;
/**
* Creates a duplicate string using the new operator.
*/
char *dupString(const char *str) {
const size_t len = strlen(str);
char *duplicate = new char[len+1];
strncpy(duplicate, str, len);
duplicate[len] = '\0';
return duplicate;
}
virtual void SetUp() {
// Allow getopt_long to be called again
optind = 0;
}
virtual void TearDown() {
// Allow getopt_long to be called again
optind = 0;
for(ArgcvList::const_iterator itor = m_argsList.begin();
itor != m_argsList.end(); itor++) {
for(int i=0; i < (*itor)->argc; i++) {
delete[] (*itor)->argv[i];
}
delete[] (*itor)->argv;
delete *itor;
}
}
};
TEST_F(cta_catalogue_CreateAdminUserCmdLineArgsTest, help_short) {
using namespace cta::catalogue;
Argcv *args = new Argcv();
m_argsList.push_back(args);
args->argc = 2;
args->argv = new char *[3];
args->argv[0] = dupString("cta-catalogue-admin-user-create");
args->argv[1] = dupString("-h");
args->argv[2] = NULL;
CreateAdminUserCmdLineArgs cmdLine(args->argc, args->argv);
ASSERT_TRUE(cmdLine.help);
ASSERT_TRUE(cmdLine.dbConfigPath.empty());
ASSERT_TRUE(cmdLine.adminUserName.empty());
ASSERT_TRUE(cmdLine.comment.empty());
}
TEST_F(cta_catalogue_CreateAdminUserCmdLineArgsTest, help_long) {
using namespace cta::catalogue;
Argcv *args = new Argcv();
m_argsList.push_back(args);
args->argc = 2;
args->argv = new char *[3];
args->argv[0] = dupString("cta-catalogue-admin-user-create");
args->argv[1] = dupString("--help");
args->argv[2] = NULL;
CreateAdminUserCmdLineArgs cmdLine(args->argc, args->argv);
ASSERT_TRUE(cmdLine.help);
ASSERT_TRUE(cmdLine.dbConfigPath.empty());
ASSERT_TRUE(cmdLine.adminUserName.empty());
ASSERT_TRUE(cmdLine.comment.empty());
}
TEST_F(cta_catalogue_CreateAdminUserCmdLineArgsTest, hostname_short) {
using namespace cta::catalogue;
Argcv *args = new Argcv();
m_argsList.push_back(args);
args->argc = 6;
args->argv = new char *[7];
args->argv[0] = dupString("cta-catalogue-admin-user-create");
args->argv[1] = dupString("dbConfigPath");
args->argv[2] = dupString("-n");
args->argv[3] = dupString("adminUserName");
args->argv[4] = dupString("-c");
args->argv[5] = dupString("comment");
args->argv[6] = NULL;
CreateAdminUserCmdLineArgs cmdLine(args->argc, args->argv);
ASSERT_FALSE(cmdLine.help);
ASSERT_EQ(std::string("dbConfigPath"), cmdLine.dbConfigPath);
ASSERT_EQ(std::string("adminUserName"), cmdLine.adminUserName);
ASSERT_EQ(std::string("comment"), cmdLine.comment);
}
TEST_F(cta_catalogue_CreateAdminUserCmdLineArgsTest, hostname_long) {
using namespace cta::catalogue;
Argcv *args = new Argcv();
m_argsList.push_back(args);
args->argc = 6;
args->argv = new char *[7];
args->argv[0] = dupString("cta-catalogue-admin-user-create");
args->argv[1] = dupString("dbConfigPath");
args->argv[2] = dupString("--hostname");
args->argv[3] = dupString("adminUserName");
args->argv[4] = dupString("--comment");
args->argv[5] = dupString("comment");
args->argv[6] = NULL;
CreateAdminUserCmdLineArgs cmdLine(args->argc, args->argv);
ASSERT_FALSE(cmdLine.help);
ASSERT_EQ(std::string("dbConfigPath"), cmdLine.dbConfigPath);
ASSERT_EQ(std::string("adminUserName"), cmdLine.adminUserName);
ASSERT_EQ(std::string("comment"), cmdLine.comment);
}
} // namespace unitTests
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment