corda/unittest/util/arg-parser-test.cpp

69 lines
1.7 KiB
C++
Raw Normal View History

2013-02-17 19:10:18 +00:00
/* Copyright (c) 2008-2011, Avian Contributors
Permission to use, copy, modify, and/or distribute this software
for any purpose with or without fee is hereby granted, provided
that the above copyright notice and this permission notice appear
in all copies.
There is NO WARRANTY for this software. See license.txt for
details. */
#include <stdio.h>
#include "common.h"
2013-02-22 03:14:17 +00:00
#include <avian/util/arg-parser.h>
2013-02-17 19:10:18 +00:00
#include "test-harness.h"
using namespace avian::util;
class ArgParserTest : public Test {
public:
ArgParserTest():
Test("ArgParser")
{}
virtual void run() {
{
ArgParser parser;
Arg arg1(parser, false, "arg1", "<value>");
Arg required2(parser, true, "required2", "<value>");
const char* args[] = {
"myExecutable",
"-arg1", "myValue1",
"-required2", "myRequired2",
0
};
assertTrue(parser.parse(sizeof(args) / sizeof(char*) - 1, args));
assertEqual("myValue1", arg1.value);
assertEqual("myRequired2", required2.value);
}
{
ArgParser parser;
Arg arg1(parser, false, "arg1", "<value>");
Arg required2(parser, true, "required2", "<value>");
const char* args[] = {
"myExecutable",
"-arg1", "myValue1",
"-required2",
0
};
assertFalse(parser.parse(sizeof(args) / sizeof(char*) - 1, args));
}
{
ArgParser parser;
Arg arg1(parser, false, "arg1", "<value>");
Arg required2(parser, true, "required2", "<value>");
const char* args[] = {
"myExecutable",
"-arg1", "myValue1",
0
};
assertFalse(parser.parse(sizeof(args) / sizeof(char*) - 1, args));
}
}
} argParserTest;