X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FParsedCommand.test.cc;h=94ab8fabaa9e45b7edefedee94ad5edb9f5cb140;hb=ef4c5558d6a52367bd7040530d40c7616f6f5b71;hp=2b239d600e2010b0f4759f1e489ef7deae16284d;hpb=748363b235c4651b3992cc291a95dc2e18e45724;p=senf.git diff --git a/Console/ParsedCommand.test.cc b/Console/ParsedCommand.test.cc index 2b239d6..94ab8fa 100644 --- a/Console/ParsedCommand.test.cc +++ b/Console/ParsedCommand.test.cc @@ -27,13 +27,14 @@ //#include "ParsedCommand.test.ih" // Custom includes +#include #include #include "ParsedCommand.hh" #include "Executor.hh" #include "Parse.hh" #include "ScopedDirectory.hh" -#include +#include "../Utils/auto_unit_test.hh" #include #define prefix_ @@ -42,10 +43,10 @@ namespace { int cb1(int a, double b) { return int(a+b); } - double cb2() { return 1.2; } - void cb3(int) {} + double cb2(){ return 1.2; } + void cb3(int i) { } std::string cb4(std::ostream & os) { os << "text\n"; return "value"; } - void cb5(std::ostream & os, int v) { os << "Value: " << v << "\n"; } + void cb5(std::ostream & os, std::string v) { os << "Value: " << v << "\n"; } } BOOST_AUTO_UNIT_TEST(parsedCommand) @@ -117,12 +118,73 @@ BOOST_AUTO_UNIT_TEST(parsedCommand) { std::stringstream ss; - dir.add("cb", &cb1); - dir.add("cb", &cb5); + using namespace senf::console::tag; + + dir.add("cb", &cb1) + .doc( + "Ops fortunate, ops me ut orgia vociferatio contumax per, rudo re loco emitto\n" + "intolerabiliter ita iugo. Subcribo gravo. Devenio luna fonticulus Castanea\n" + "horum fascino Os interpretor non ipse conjuratio hora, qui filius denuntio ait\n" + "sono te odium Anhelo. Dum Cedo audax celox alius una Agnosco hic, ibi retineo\n" + "lux sto ioco. Per Re dono. Copiose reus scitus jus diligens sis scapulare\n" + "Servitium transi." ) + + .overloadDoc( + "Lo nam balnearius Opprimo Pennatus, no decentia sui, dicto esse se pulchritudo,\n" + "pupa Sive res indifferenter. Captivo pa." ) + + .arg( description_ = "Bar didelfrump di desgorb. Nu widsoflar brimeldrgf." ) + + .arg( name_ = "checkup", + description_ = "Florgel, dargel and durgel", + default_value_ = 2.1 ); + + senf::console::OverloadedCommandNode & cbNode ( + dir.add("cb", &cb5) + .overloadDoc( + "Uus Primordia fundo falsidicus corium, diurnitas humo pro leto. Sui Ueraciter\n" + "hio eruca lenis qua Agalmate ut fors penitentia. Iugum obdormio anxio nuncupo\n" + "iam, in vos nam Custodi." ) ); + + (void) cbNode; + dir.add("cb", &cb2); - parser.parse("test/cb 111 222.4; test/cb 222; test/cb", + + parser.parse("test/cb 111 222.4; test/cb 222; test/cb foo; test/cb", boost::bind( boost::ref(executor), boost::ref(ss), _1 )); - BOOST_CHECK_EQUAL( ss.str(), "333\n" "Value: 222\n" "1.2\n" ); + BOOST_CHECK_EQUAL( ss.str(), "333\n" "224\n" "Value: foo\n" "1.2\n" ); + } + + { + std::stringstream ss; + senf::console::root()["test"]("cb").help(ss); + BOOST_CHECK_EQUAL( + ss.str(), + "Usage:\n" + " 1- cb arg11:int [checkup:double]\n" + " 2- cb arg21:string\n" + " 3- cb\n" + "\n" + "With:\n" + " arg11 Bar didelfrump di desgorb. Nu widsoflar brimeldrgf.\n" + " checkup Florgel, dargel and durgel\n" + " default: 2.1\n" + "\n" + "Ops fortunate, ops me ut orgia vociferatio contumax per, rudo re loco emitto\n" + "intolerabiliter ita iugo. Subcribo gravo. Devenio luna fonticulus Castanea\n" + "horum fascino Os interpretor non ipse conjuratio hora, qui filius denuntio ait\n" + "sono te odium Anhelo. Dum Cedo audax celox alius una Agnosco hic, ibi retineo\n" + "lux sto ioco. Per Re dono. Copiose reus scitus jus diligens sis scapulare\n" + "Servitium transi.\n" + "\n" + "Variant 1:\n" + "Lo nam balnearius Opprimo Pennatus, no decentia sui, dicto esse se pulchritudo,\n" + "pupa Sive res indifferenter. Captivo pa.\n" + "\n" + "Variant 2:\n" + "Uus Primordia fundo falsidicus corium, diurnitas humo pro leto. Sui Ueraciter\n" + "hio eruca lenis qua Agalmate ut fors penitentia. Iugum obdormio anxio nuncupo\n" + "iam, in vos nam Custodi.\n" ); } } @@ -140,8 +202,8 @@ namespace { std::string name(std::string const & suffix) { return name_ + suffix; } - }; + } BOOST_AUTO_UNIT_TEST(memberParsedCommand)