Added ICMPv6 Packet Parser and Unittests for different ICMP Packages.
[senf.git] / Console / Node.test.cc
index f5a2c02..cab82e3 100644 (file)
@@ -37,7 +37,7 @@
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
-BOOST_AUTO_UNIT_TEST(gnericNode)
+BOOST_AUTO_UNIT_TEST(genericNode)
 {
     senf::console::GenericNode & node (
         senf::console::root().mkdir("dir1").mkdir("dir2").doc("help info"));
@@ -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,11 +98,14 @@ BOOST_AUTO_UNIT_TEST(directoryNode)
         children, 
         children+sizeof(children)/sizeof(children[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 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]) );
 
     p->doc("test doc");
     std::stringstream ss;
@@ -116,10 +119,20 @@ BOOST_AUTO_UNIT_TEST(directoryNode)
     BOOST_CHECK_EQUAL( senf::console::root().children().size(), 0u );
 }
 
+BOOST_AUTO_UNIT_TEST(linkNode)
+{
+    senf::console::root().mkdir("dir1");
+    senf::console::root().link("link1", senf::console::root()["dir1"]);
+
+    BOOST_CHECK( senf::console::root()["dir1"] == senf::console::root()["link1"] );
+
+    senf::console::root().remove("dir1");
+    senf::console::root().remove("link1");
+}
+
 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 +147,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 +168,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" );
     }