PPI: Fix senf::ppi::init() event hook scheduling
[senf.git] / Utils / Logger / Target.test.cc
index b41ead9..1a643b0 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
-// Copyright (C) 2007 
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer NETwork research (NET)
+// Copyright (C) 2007
+// Fraunhofer Institute for Open Communication Systems (FOKUS)
+// Competence Center NETwork research (NET), St. Augustin, GERMANY
 //     Stefan Bund <g0dil@berlios.de>
 //
 // This program is free software; you can redistribute it and/or modify
@@ -21,7 +21,7 @@
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
 /** \file
-    \brief Target.test unit tests */
+    \brief Target unit tests */
 
 //#include "Target.test.hh"
 //#include "Target.test.ih"
@@ -30,7 +30,7 @@
 #include <sstream>
 #include "main.test.hh"
 
-#include <boost/test/auto_unit_test.hpp>
+#include "../../Utils/auto_unit_test.hh"
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
@@ -43,8 +43,8 @@ namespace {
         typedef std::string result_type;
         std::string operator()(senf::log::Target::RoutingEntry const & entry) const
             {
-                static char const * levels[] = { "NONE", "VERBOSE", "NOTICE", "MESSAGE",
-                                                 "IMPORTANT", "CRITICAL","DISABLED" };
+                static char const * levels[] = { 
+                        "NONE", "VERBOSE", "NOTICE", "MESSAGE", "IMPORTANT", "CRITICAL", "FATAL", "DISABLED" };
                 static char const * actions[] = { "ACCEPT", "REJECT" };
                 std::stringstream s;
                 s << entry.stream() << "-" << entry.area() << "-" << levels[entry.level()] << "-" 
@@ -59,6 +59,15 @@ BOOST_AUTO_UNIT_TEST(target)
 {
     senf::log::StringTarget target;
 
+    BOOST_CHECK_THROW( target.route("senf::log::test::myStream", "invalid_area"), 
+            senf::log::Target::InvalidAreaException );
+    BOOST_CHECK_THROW( target.route("invalid_stream", ""),
+            senf::log::Target::InvalidStreamException );
+    BOOST_CHECK_THROW( target.unroute("senf::log::test::myStream", "invalid_area"), 
+            senf::log::Target::InvalidAreaException );
+    BOOST_CHECK_THROW( target.unroute("invalid_stream", ""),
+            senf::log::Target::InvalidStreamException );
+
     target.route<senf::log::Debug>();
     target.route<senf::log::test::myStream, senf::log::DefaultArea>(senf::log::Target::REJECT);
     target.route<senf::log::test::myStream, senf::log::VERBOSE>(senf::log::Target::ACCEPT, 0);
@@ -81,22 +90,24 @@ BOOST_AUTO_UNIT_TEST(target)
         "senf::log::Debug-senf::log::test::Foo-VERBOSE-REJECT",
         "senf::log::Debug--NONE-ACCEPT",
         "senf::log::test::myStream-senf::log::test::Foo-VERBOSE-ACCEPT",
-        "senf::log::test::myStream--NONE-REJECT",
+        "senf::log::test::myStream-senf::log::DefaultArea-NONE-REJECT",
         "senf::log::test::myStream--IMPORTANT-REJECT",
     };
 
     BOOST_CHECK_EQUAL_COLLECTIONS( i, i_end, data, data + sizeof(data)/sizeof(data[0]) );
+    BOOST_CHECK( *target.begin() == target[0] );
 
     target.unroute<senf::log::Debug>();
     target.unroute<senf::log::test::myStream, senf::log::VERBOSE>();
     target.unroute<senf::log::test::myStream, senf::log::DefaultArea>(senf::log::Target::REJECT);
-    target.unroute<senf::log::test::myStream, senf::log::test::Foo, senf::log::VERBOSE>();
     target.unroute("senf::log::test::myStream", "", senf::log::IMPORTANT::value, 
                    senf::log::Target::REJECT);
     target.unroute(1);
-    target.unroute(0);
+    target.flush();
 
     BOOST_CHECK( target.begin() == target.end() );
+    BOOST_CHECK( target.empty() );
+    BOOST_CHECK_EQUAL( target.size(), 0u );
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////