X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FParsedCommand.test.cc;h=b9c095a789e149cc3b082e0506218b43b4ce5afc;hb=9a4ab28bb53bc1a7719141a2263282d4cf73b258;hp=0ad7fc66716d2465eadec71e7d3d5d51a861d21b;hpb=958bdb52c39fa39f4ef91cafd9628bcb4f85a03c;p=senf.git diff --git a/Utils/Console/ParsedCommand.test.cc b/Utils/Console/ParsedCommand.test.cc index 0ad7fc6..b9c095a 100644 --- a/Utils/Console/ParsedCommand.test.cc +++ b/Utils/Console/ParsedCommand.test.cc @@ -21,7 +21,7 @@ // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. /** \file - \brief ParsedCommand.test unit tests */ + \brief ParsedCommand unit tests */ //#include "ParsedCommand.test.hh" //#include "ParsedCommand.test.ih" @@ -132,7 +132,7 @@ BOOST_AUTO_UNIT_TEST(parsedCommand) // Just for the fun of it, use a functor and not a function pointer as parser ... dir.add("cb6", &cb5) .arg( kw::parser = TestParser() ); - BOOST_CHECK_NO_THROW( + SENF_CHECK_NO_THROW( parser.parse("test/cb6 false", boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); BOOST_CHECK_EQUAL( ss.str(), "Value: true\n" ); @@ -145,7 +145,7 @@ BOOST_AUTO_UNIT_TEST(parsedCommand) // compatible types also work dir.add("cb7", boost::function(&cb2)) .formatter( &testFormatter ); - BOOST_CHECK_NO_THROW( + SENF_CHECK_NO_THROW( parser.parse("test/cb7", boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); BOOST_CHECK_EQUAL( ss.str(), "formatter\n" ); @@ -165,6 +165,9 @@ BOOST_AUTO_UNIT_TEST(parsedCommand) "lux sto ioco. Per Re dono. Copiose reus scitus jus diligens sis scapulare\n" "Servitium transi." ) + .shortdoc( + "Ops fortunate." ) + .overloadDoc( "Lo nam balnearius Opprimo Pennatus, no decentia sui, dicto esse se pulchritudo,\n" "pupa Sive res indifferenter. Captivo pa." ) @@ -187,20 +190,22 @@ BOOST_AUTO_UNIT_TEST(parsedCommand) (void) cbNode; - BOOST_CHECK_NO_THROW( + SENF_CHECK_NO_THROW( parser.parse("test/cb 111 222.4", boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); - BOOST_CHECK_NO_THROW( + SENF_CHECK_NO_THROW( parser.parse("test/cb 222", boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); - BOOST_CHECK_NO_THROW( + SENF_CHECK_NO_THROW( parser.parse("test/cb foo", boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); - BOOST_CHECK_NO_THROW( + SENF_CHECK_NO_THROW( parser.parse("test/cb", boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); BOOST_CHECK_EQUAL( ss.str(), "333\n" "224\n" "Value: foo\n" "Value: \n" ); + + BOOST_CHECK_EQUAL( dir("cb").shorthelp(), "Ops fortunate." ); } { @@ -273,6 +278,38 @@ BOOST_AUTO_UNIT_TEST(memberParsedCommand) } } +namespace { + + senf::console::DirectoryNode::ptr dircb() + { + senf::console::DirectoryNode & dir ( + senf::console::root()["test"].mkdir("dircb")); + dir.add("cb1", &cb1); + return dir.thisptr(); + } + +} + +BOOST_AUTO_UNIT_TEST(directoryReturn) +{ + senf::console::Executor executor; + senf::console::CommandParser parser; + senf::console::ScopedDirectory<> dir; + senf::console::root().add("test", dir); + dir.add("test", &dircb); + + { + std::stringstream ss; + SENF_CHECK_NO_THROW( + parser.parse("test/test { ls; }", + boost::bind( boost::ref(executor), boost::ref(ss), _1 )) ); + BOOST_CHECK_EQUAL( ss.str(), + "\n" + "cb1 \n" ); + } + +} + #ifdef COMPILE_CHECK COMPILE_FAIL(argParser)