Merge pull request #34 from wtdcode/add-required-aruguments-tests

Some basic tests for required arguments
This commit is contained in:
Pranav Srinivas Kumar 2019-08-07 08:02:03 -05:00 committed by GitHub
commit 272b19bec2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 0 deletions

View File

@ -10,3 +10,4 @@
#include <test_parent_parsers.hpp>
#include <test_invalid_arguments.hpp>
#include <test_negative_numbers.hpp>
#include <test_required_arguments.hpp>

View File

@ -0,0 +1,45 @@
#pragma once
#include <catch.hpp>
#include <argparse.hpp>
TEST_CASE("Parse required arguments which are not set and don't have default value.", "[required_arguments]") {
argparse::ArgumentParser program("test");
program.add_argument("--output", "-o").required();
REQUIRE_THROWS(program.parse_args({ "./main" }));
}
TEST_CASE("Parse required arguments which are set as empty value and don't have default value.", "[required_arguments]") {
argparse::ArgumentParser program("test");
program.add_argument("--output", "-o").required();
REQUIRE_THROWS(program.parse_args({ "./main", "-o" }));
}
TEST_CASE("Parse required arguments which are set as some value and don't have default value.", "[required_arguments]") {
argparse::ArgumentParser program("test");
program.add_argument("--output", "-o").required();
program.parse_args({ "./main", "-o", "filename" });
REQUIRE(program.get("--output") == "filename");
REQUIRE(program.get("-o") == "filename");
}
TEST_CASE("Parse required arguments which are not set and have default value.", "[required_arguments]") {
argparse::ArgumentParser program("test");
program.add_argument("--output", "-o").required().default_value(std::string("filename"));
program.parse_args({ "./main" });
REQUIRE(program.get("--output") == "filename");
REQUIRE(program.get("-o") == "filename");
}
TEST_CASE("Parse required arguments which are set as empty and have default value.", "[required_arguments]") {
argparse::ArgumentParser program("test");
program.add_argument("--output", "-o").required().default_value(std::string("filename"));
REQUIRE_THROWS(program.parse_args({ "./main", "-o" }));
}
TEST_CASE("Parse required arguments which are set as some value and have default value.", "[required_arguments]") {
argparse::ArgumentParser program("test");
program.add_argument("--output", "-o").required().default_value(std::string("filename"));
program.parse_args({ "./main", "-o", "anotherfile" });
REQUIRE(program.get("--output") == "anotherfile");
REQUIRE(program.get("-o") == "anotherfile");
}