X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FOverloadedCommand.test.cc;h=ad68f575eec6d8dc4f82c7a68bbc3add770c69ab;hb=456ee576285b76aa46240f8001f426757810dcc1;hp=287920176471e009c008443cfa2df2f2b163c4c6;hpb=30c1daf8a1c404209210f76a9a54bcfde443603b;p=senf.git diff --git a/Console/OverloadedCommand.test.cc b/Console/OverloadedCommand.test.cc index 2879201..ad68f57 100644 --- a/Console/OverloadedCommand.test.cc +++ b/Console/OverloadedCommand.test.cc @@ -30,7 +30,7 @@ #include #include "OverloadedCommand.hh" -#include +#include "../Utils/auto_unit_test.hh" #include #define prefix_ @@ -38,17 +38,17 @@ namespace { - void fn1(std::ostream &, senf::console::CommandOverload::Arguments const &) + void fn1(std::ostream &, senf::console::ParseCommandInfo const &) { throw senf::console::SyntaxErrorException("fn1 error"); } - void fn2(std::ostream &, senf::console::CommandOverload::Arguments const &) + void fn2(std::ostream &, senf::console::ParseCommandInfo const &) { throw senf::console::SyntaxErrorException("fn2 error"); } - void fn3(std::ostream & os, senf::console::CommandOverload::Arguments const &) + void fn3(std::ostream & os, senf::console::ParseCommandInfo const &) { os << "fn3\n"; } @@ -58,18 +58,43 @@ namespace { BOOST_AUTO_UNIT_TEST(overladedCommand) { senf::console::OverloadedCommandNode & cmd ( - senf::console::root().add("overload", senf::console::OverloadedCommandNode::create())); - cmd.add(senf::console::SimpleCommandOverload::create(&fn1)); - cmd.add(senf::console::SimpleCommandOverload::create(&fn2)); + senf::console::root() + .add("overload", senf::console::OverloadedCommandNode::create()) + .doc("cmd") ); + cmd.add(senf::console::SimpleCommandOverload::create(&fn1)).doc("fn1"); + cmd.add(senf::console::SimpleCommandOverload::create(&fn2)).doc("fn2"); - senf::console::ParseCommandInfo info; - std::stringstream ss; - BOOST_CHECK_THROW( senf::console::root()("overload")(ss, info.arguments()), - senf::console::SyntaxErrorException ); - - cmd.add(senf::console::SimpleCommandOverload::create(&fn3)); - BOOST_CHECK_NO_THROW( senf::console::root()("overload")(ss, info.arguments()) ); - BOOST_CHECK_EQUAL( ss.str(), "fn3\n" ); + { + senf::console::ParseCommandInfo info; + std::stringstream ss; + BOOST_CHECK_THROW( senf::console::root()("overload")(ss, info), + senf::console::SyntaxErrorException ); + + cmd.add(senf::console::SimpleCommandOverload::create(&fn3)).doc("fn3"); + BOOST_CHECK_NO_THROW( senf::console::root()("overload")(ss, info) ); + BOOST_CHECK_EQUAL( ss.str(), "fn3\n" ); + } + + { + std::stringstream ss; + cmd.help(ss); + BOOST_CHECK_EQUAL( ss.str(), + "Usage:\n" + " 1- overload ...\n" + " 2- overload ...\n" + " 3- overload ...\n" + "\n" + "cmd\n" + "\n" + "Variant 1:\n" + "fn1\n" + "\n" + "Variant 2:\n" + "fn2\n" + "\n" + "Variant 3:\n" + "fn3\n" ); + } cmd.unlink(); }