2 #include "gtest/gtest.h"
3 #include "boost/smart_ptr.hpp"
8 class CmdArgumentsTest :
public ::testing::Test {
14 char exe_name[] =
"test";
15 char a1[] =
"--arg1=val1";
16 char a2[] =
"--arg2=2.2";
17 char *argv[] = { exe_name, a1, a2 };
22 virtual ~CmdArgumentsTest() {
29 virtual void SetUp() {
34 virtual void TearDown() {
40 boost::scoped_ptr<CmdArguments> args_;
43 TEST_F(CmdArgumentsTest, RetrieveCorrectFatal) {
45 std::string arg1 = args_->getArg<std::string>(
"arg1",
true);
46 double arg2 = args_->getArg<
double>(
"arg2",
true);
48 EXPECT_EQ(
"val1", arg1) <<
"first argument string value wrong";
49 EXPECT_EQ(2.2, arg2) <<
"second argument double value wrong";
52 TEST_F(CmdArgumentsTest, ThrowOnNotPresentFatal) {
55 args_->getArg<std::string>(
"arg11",
true)
59 TEST_F(CmdArgumentsTest, CorrectDefaultIfNotPresent) {
61 double arg = args_->getArg<
double>(
"arg22", 10.0,
false);
62 EXPECT_EQ(10.0, arg) <<
"second argument double value wrong";
67 int main(
int argc,
char **argv) {
68 ::testing::InitGoogleTest(&argc, argv);
69 return RUN_ALL_TESTS();
Parsing command line arguments.
int main(int argc, char *argv[])