Utils/Logger: Remove dependency on libboost_datetime
[senf.git] / Console / Node.test.cc
index f5a2c02..0e0668d 100644 (file)
@@ -60,7 +60,7 @@ BOOST_AUTO_UNIT_TEST(gnericNode)
 }
 
 namespace {
-    void callback(std::ostream & os, senf::console::SimpleCommandNode::Arguments arguments)
+    void callback(std::ostream & os, senf::console::ParseCommandInfo const & command)
     {
         os << "callback";
     }
@@ -98,12 +98,28 @@ BOOST_AUTO_UNIT_TEST(directoryNode)
         children, 
         children+sizeof(children)/sizeof(children[0]) );
 
+    char const * const completions[] = { "dir1", "dir2" };
+    BOOST_CHECK_EQUAL_COLLECTIONS(
+        boost::make_transform_iterator(senf::console::root().completions("dir").begin(), 
+                                       select1st<std::string const &>()),
+        boost::make_transform_iterator(senf::console::root().completions("dir").end(),
+                                       select1st<std::string const &>()),
+        completions, 
+        completions+sizeof(completions)/sizeof(completions[0]) );
+
     char const * const path[] = { "..", "dir2", "dir3" };
     BOOST_CHECK( &senf::console::root()["dir1"].traverse( boost::make_iterator_range(
                                                               path, 
                                                               path+sizeof(path)/sizeof(path[0])) )
                  == &senf::console::root()["dir2"]["dir3"] );
 
+    char const * const incompletePath[] = { "d" };
+    BOOST_CHECK( &senf::console::root()["dir2"].traverse( boost::make_iterator_range(
+                                                              incompletePath, 
+                                                              incompletePath+sizeof(incompletePath)/sizeof(incompletePath[0])),
+                                                          true )
+                 == &senf::console::root()["dir2"]["dir3"] );
+
     p->doc("test doc");
     std::stringstream ss;
     p->help(ss);
@@ -118,8 +134,7 @@ BOOST_AUTO_UNIT_TEST(directoryNode)
 
 namespace {
     struct Functor {
-        void operator()(std::ostream & os, 
-                        senf::console::SimpleCommandNode::Arguments const &) {
+        void operator()(std::ostream & os, senf::console::ParseCommandInfo const &) {
             os << "functor";
         }
     };
@@ -134,13 +149,13 @@ BOOST_AUTO_UNIT_TEST(senfConsoleAddNode)
 
     {
         std::stringstream ss;
-        senf::console::root()("fn1")(ss, info.arguments());
+        senf::console::root()("fn1")(ss, info);
         BOOST_CHECK_EQUAL( ss.str(), "callback" );
     }
 
     {
         std::stringstream ss;
-        senf::console::root()("fn2")(ss, info.arguments());
+        senf::console::root()("fn2")(ss, info);
         BOOST_CHECK_EQUAL( ss.str(), "functor" );
     }
     
@@ -155,7 +170,7 @@ BOOST_AUTO_UNIT_TEST(simpleCommandNode)
     {
         std::stringstream ss;
         senf::console::ParseCommandInfo info;
-        senf::console::root()("fn")(ss, info.arguments());
+        senf::console::root()("fn")(ss, info);
         BOOST_CHECK_EQUAL( ss.str(), "callback" );
     }