X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Utils%2FConsole%2FParsedCommand.test.cc;h=e2413e77cbb2bd99559f8e28b2c18d382ea842f4;hb=b8ca4a544cce3e6023bb56b712a03d6362f2bb79;hp=0ad7fc66716d2465eadec71e7d3d5d51a861d21b;hpb=958bdb52c39fa39f4ef91cafd9628bcb4f85a03c;p=senf.git diff --git a/Utils/Console/ParsedCommand.test.cc b/Utils/Console/ParsedCommand.test.cc index 0ad7fc6..e2413e7 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" ); @@ -187,16 +187,16 @@ 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 )) ); @@ -273,6 +273,36 @@ 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(), "\ncb1\n" ); + } + +} + #ifdef COMPILE_CHECK COMPILE_FAIL(argParser)