]> git.localhorst.tv Git - blank.git/blobdiff - tst/integration/InvocationTest.cpp
test missing option arguments
[blank.git] / tst / integration / InvocationTest.cpp
index 70fd47ff4928c7408125077863e5b84fc70c4f2c..fc3ed426344abd476114d6fa072eee7a3131fbcf 100644 (file)
@@ -2,7 +2,7 @@
 
 #include "TestInstance.hpp"
 
-CPPUNIT_TEST_SUITE_NAMED_REGISTRATION(blank::test::InvocationTest, "headed");
+CPPUNIT_TEST_SUITE_REGISTRATION(blank::test::InvocationTest);
 
 
 namespace blank {
@@ -18,9 +18,51 @@ void InvocationTest::tearDown() {
 
 
 void InvocationTest::testUnknownArg() {
-       TestInstance prog({ "--worscht" });
+       TestInstance prog({ "--worscht", "-W", "käs" });
        prog.AssertErrorLine("unknown option --worscht");
+       prog.AssertErrorLine("unknown option W");
+       prog.AssertErrorLine("unable to interpret argument 3 (käs)");
        prog.AssertExitStatus(1);
+       prog.AssertNoError();
+       prog.AssertNoOutput();
+}
+
+void InvocationTest::testIncompleteOption() {
+       TestInstance prog({
+               "-",
+               "",
+               "--",
+               "-"
+       }, false, false);
+       prog.AssertErrorLine("warning: incomplete option list at position 1");
+       prog.AssertErrorLine("warning: found empty argument at position 2");
+       prog.AssertErrorLine("unable to interpret argument 4 (-)");
+       prog.AssertExitStatus(1);
+       prog.AssertNoError();
+       prog.AssertNoOutput();
+}
+
+void InvocationTest::testMissingArgs() {
+       const std::vector<std::string> opts_with_args = {
+               "--asset-path",
+               "--host",
+               "--port",
+               "--cmd-port",
+               "--player-name",
+               "--save-path",
+               "--world-name",
+               "-m",
+               "-n",
+               "-s",
+               "-t",
+       };
+       for (auto arg : opts_with_args) {
+               TestInstance prog({ arg }, false, false);
+               prog.AssertErrorLine("missing argument to " + arg);
+               prog.AssertExitStatus(1);
+               prog.AssertNoError();
+               prog.AssertNoOutput();
+       }
 }
 
 }