Exemple #1
0
#include "argh.h"

#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
#include "doctest.h"

using namespace argh;

TEST_CASE("Test empty cmdl") 
{
    parser cmdl;
    cmdl.parse(0, nullptr);
    CHECK(0 == cmdl.pos_args().size());
    CHECK(0 == cmdl.size());
    CHECK(cmdl[0].empty());
    CHECK(cmdl(0).str().empty());
    CHECK(cmdl[10].empty());
    CHECK(cmdl(10).str().empty());
    CHECK(!cmdl["xxx"]);
    CHECK(cmdl("xxx").str().empty());
}

TEST_CASE("Test parsing ctor")
{
   const char* argv[] = { "0", "-a", "1", "-b", "2", "3", "4" };
   int argc = sizeof(argv) / sizeof(argv[0]);
   {
      parser cmdl(argc, argv);
      CHECK(2 == cmdl.flags().size());
      CHECK(5 == cmdl.pos_args().size());
      CHECK(5 == cmdl.size());
      CHECK(cmdl["a"]);