]> git.localhorst.tv Git - blank.git/blob - tst/integration/InvocationTest.cpp
test missing option arguments
[blank.git] / tst / integration / InvocationTest.cpp
1 #include "InvocationTest.hpp"
2
3 #include "TestInstance.hpp"
4
5 CPPUNIT_TEST_SUITE_REGISTRATION(blank::test::InvocationTest);
6
7
8 namespace blank {
9 namespace test {
10
11 void InvocationTest::setUp() {
12
13 }
14
15 void InvocationTest::tearDown() {
16
17 }
18
19
20 void InvocationTest::testUnknownArg() {
21         TestInstance prog({ "--worscht", "-W", "käs" });
22         prog.AssertErrorLine("unknown option --worscht");
23         prog.AssertErrorLine("unknown option W");
24         prog.AssertErrorLine("unable to interpret argument 3 (käs)");
25         prog.AssertExitStatus(1);
26         prog.AssertNoError();
27         prog.AssertNoOutput();
28 }
29
30 void InvocationTest::testIncompleteOption() {
31         TestInstance prog({
32                 "-",
33                 "",
34                 "--",
35                 "-"
36         }, false, false);
37         prog.AssertErrorLine("warning: incomplete option list at position 1");
38         prog.AssertErrorLine("warning: found empty argument at position 2");
39         prog.AssertErrorLine("unable to interpret argument 4 (-)");
40         prog.AssertExitStatus(1);
41         prog.AssertNoError();
42         prog.AssertNoOutput();
43 }
44
45 void InvocationTest::testMissingArgs() {
46         const std::vector<std::string> opts_with_args = {
47                 "--asset-path",
48                 "--host",
49                 "--port",
50                 "--cmd-port",
51                 "--player-name",
52                 "--save-path",
53                 "--world-name",
54                 "-m",
55                 "-n",
56                 "-s",
57                 "-t",
58         };
59         for (auto arg : opts_with_args) {
60                 TestInstance prog({ arg }, false, false);
61                 prog.AssertErrorLine("missing argument to " + arg);
62                 prog.AssertExitStatus(1);
63                 prog.AssertNoError();
64                 prog.AssertNoOutput();
65         }
66 }
67
68 }
69 }