PPI: Add missing TargetDgramWriter doku
[senf.git] / Socket / Protocols / Raw / LLAddressing.test.cc
index 1d9f570..5f91dc1 100644 (file)
@@ -1,9 +1,9 @@
 // $Id$
 //
 // Copyright (C) 2006
-// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
-// Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
-//     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
+// 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
 // it under the terms of the GNU General Public License as published by
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-// Unit tests
+/** \file
+    \brief LLAddressing unit tests */
 
 //#include "LLAddressing.test.hh"
 //#include "LLAddressing.test.ih"
 
 // Custom includes
-#include <boost/lexical_cast.hpp>
+#include "../../../Utils/String.hh"
 #include "LLAddressing.hh"
 
-#include <boost/test/auto_unit_test.hpp>
+#include "../../../Utils/auto_unit_test.hh"
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
 
 BOOST_AUTO_UNIT_TEST(llAddress)
 {
+    using senf::LLSocketAddress;
+    
     {
-        senf::LLSocketAddress a;
+        LLSocketAddress addr;
 
-        BOOST_CHECK_EQUAL( a.protocol(), 0u );
-        BOOST_CHECK_EQUAL( a.interface(), "" );
-        BOOST_CHECK_EQUAL( a.arptype(), 0u );
-        BOOST_CHECK_EQUAL( a.pkttype(), senf::LLSocketAddress::Undefined );
-        BOOST_CHECK( ! a.address() );
+        BOOST_CHECK( ! addr );
+        BOOST_CHECK_EQUAL( addr.protocol(), 0u );
+        BOOST_CHECK_EQUAL( addr.interface(), "" );
+        BOOST_CHECK_EQUAL( addr.arptype(), 0u );
+        BOOST_CHECK_EQUAL( addr.pkttype(), LLSocketAddress::Undefined );
+        BOOST_CHECK( ! addr.address() );
 
-        a.address(senf::MACAddress::from_string("05-10-1A-2f-25-30"));
-        BOOST_CHECK_EQUAL( boost::lexical_cast<std::string>(a.address()), "05:10:1a:2f:25:30" );
-        a.interface("lo");
-        BOOST_CHECK_EQUAL( a.interface(), "lo" );
-        a.protocol(123);
-        BOOST_CHECK_EQUAL( a.protocol(), 123u );
+        senf::MACAddress mac (senf::MACAddress::from_string("05-10-1A-2f-25-30"));
+        addr.address( mac);
+        BOOST_CHECK( addr );
+        BOOST_CHECK_EQUAL( addr, LLSocketAddress(mac));
+        BOOST_CHECK_EQUAL( addr, LLSocketAddress(addr));
+        BOOST_CHECK_EQUAL( addr.address(), mac );
+        addr.interface("lo");
+        BOOST_CHECK_EQUAL( addr.interface(), "lo" );
+        addr.protocol(123);
+        BOOST_CHECK_EQUAL( addr.protocol(), 123u );
     }
 
     {
-        senf::LLSocketAddress a (
+        LLSocketAddress addr (
             senf::MACAddress::from_string("11-12-13-14-15-16"), "lo");
 
-        BOOST_CHECK_EQUAL( a.protocol(), 0u );
-        BOOST_CHECK_EQUAL( a.interface(), "lo" );
-        BOOST_CHECK_EQUAL( a.arptype(), 0u );
-        BOOST_CHECK_EQUAL( a.pkttype(), senf::LLSocketAddress::Undefined );
-        BOOST_CHECK_EQUAL( boost::lexical_cast<std::string>(a.address()), "11:12:13:14:15:16" );
+        BOOST_CHECK_EQUAL( addr.protocol(), 0u );
+        BOOST_CHECK_EQUAL( addr.interface(), "lo" );
+        BOOST_CHECK_EQUAL( addr.arptype(), 0u );
+        BOOST_CHECK_EQUAL( addr.pkttype(), LLSocketAddress::Undefined );
+        BOOST_CHECK_EQUAL( senf::str(addr.address()), "11:12:13:14:15:16" );
     }
 
     {
-        senf::LLSocketAddress a (123, "lo");
+        LLSocketAddress addr (123, "lo");
 
-        BOOST_CHECK_EQUAL( a.protocol(), 123u );
-        BOOST_CHECK_EQUAL( a.interface(), "lo" );
-        BOOST_CHECK_EQUAL( a.arptype(), 0u );
-        BOOST_CHECK_EQUAL( a.pkttype(), senf::LLSocketAddress::Undefined );
-        BOOST_CHECK( ! a.address() );
+        BOOST_CHECK_EQUAL( addr.protocol(), 123u );
+        BOOST_CHECK_EQUAL( addr.interface(), "lo" );
+        BOOST_CHECK_EQUAL( addr.arptype(), 0u );
+        BOOST_CHECK_EQUAL( addr.pkttype(), LLSocketAddress::Undefined );
+        BOOST_CHECK( ! addr.address() );
+    }
+    
+    {
+        BOOST_CHECK_THROW( LLSocketAddress addr("SENF_TEST_INVALID_INTERFACENAME"),
+                senf::AddressSyntaxException );
+        
+        LLSocketAddress addr ("lo");
+        
+        BOOST_CHECK_EQUAL( addr.protocol(), 0u );
+        BOOST_CHECK_EQUAL( addr.interface(), "lo" );
+        BOOST_CHECK_EQUAL( addr.arptype(), 0u );
+        BOOST_CHECK_EQUAL( addr.pkttype(), LLSocketAddress::Undefined );
+        BOOST_CHECK( ! addr.address() );
+        
+        BOOST_CHECK_EQUAL( LLSocketAddress("").interface(), "" );
     }
 }