git.fiddlerwoaroof.com
argument_test.cc
74bdb8d9
 #include <vector>
 #include <string>
 
 #include <iostream>
 
 #include "argument.h"
 #include "test_util.h"
 
 int convert_single_argument_to_cplusplus() {
     //given
     int nargs = 1;
     const char *arg = "blah";
     const char **argv = &arg;
 
     //when
     std::vector<const std::string> actual = convert_arguments(nargs, argv);
 
     //then
     std::vector<std::string> temp(1);
     temp[0] = arg;
     std::vector<const std::string> expected(temp.begin(), temp.end());
 
     check(actual == expected, "did not convert to c++");
     succeed();
 }
 
 int convert_no_arguments_to_cplusplus() {
     //given
     int nargs = 0;
     const char **argv = 0;
 
     //when
     std::vector<const std::string> actual = convert_arguments(nargs, argv);
 
     //then
     std::vector<const std::string> expected;
 
     check(actual == expected, "did not convert to c++");
     succeed();
 }
 
 int convert_multiple_arguments_to_cplusplus() {
     //given
     int nargs = 3;
     const char *arg1 = "one";
     const char *arg2 = "two";
     const char *arg3 = "three";
     const char *argv[] = {arg1,arg2,arg3};
 
     //when
     std::vector<const std::string> actual = convert_arguments(nargs, argv);
 
     //then
     std::vector<std::string> temp;
     temp.push_back(arg1);
     temp.push_back(arg2);
     temp.push_back(arg3);
     std::vector<const std::string> expected(temp.begin(), temp.end());
 
     check(actual == expected, "did not convert to c++");
     succeed();
 }
 
 RESET_VARS_START
 RESET_VARS_END
 
 int run_tests() {
     test(convert_single_argument_to_cplusplus);
     test(convert_no_arguments_to_cplusplus);
     succeed();
 }
 
 int main() {
     return !run_tests();
 }