Socket/Protocols/INet: Allow socket address string representation to omit the address...
[senf.git] / Socket / Protocols / INet / INetAddressing.test.cc
index ee68de8..0c7a7b0 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
@@ -28,7 +28,7 @@
 // Custom includes
 #include "INetAddressing.hh"
 
-#include <boost/test/auto_unit_test.hpp>
+#include "../../../Utils/auto_unit_test.hh"
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
@@ -38,6 +38,7 @@ BOOST_AUTO_UNIT_TEST(inet4SocketAddress)
 {
     using senf::INet4SocketAddress;
     using senf::INet4Address;
+    using senf::AddressSyntaxException;
 
     {
         INet4SocketAddress addr;
@@ -45,7 +46,7 @@ BOOST_AUTO_UNIT_TEST(inet4SocketAddress)
         BOOST_CHECK( ! addr );
 
         addr = INet4SocketAddress("127.0.0.1:12345");
-        BOOST_CHECK ( addr != INet4SocketAddress() );
+        BOOST_CHECK ( addr != INet4SocketAddress("127.0.0.2:12345") );
     }
 
     {
@@ -56,9 +57,10 @@ BOOST_AUTO_UNIT_TEST(inet4SocketAddress)
     BOOST_CHECK_EQUAL( INet4SocketAddress("127.0.0.1:12345"), 
                        INet4SocketAddress(INet4Address::Loopback,12345) );
 
-    BOOST_CHECK_THROW( INet4SocketAddress("127.0.0.1"), INet4SocketAddress::SyntaxException );
-    BOOST_CHECK_THROW( INet4SocketAddress("foo@bar:12345"), INet4Address::SyntaxException );
-    BOOST_CHECK_THROW( INet4SocketAddress("127.0.0.1:1234a"), INet4SocketAddress::SyntaxException );
+    BOOST_CHECK_THROW( INet4SocketAddress("127.0.0.1"), AddressSyntaxException );
+    BOOST_CHECK_THROW( INet4SocketAddress("foo:bar"), AddressSyntaxException );
+    BOOST_CHECK_THROW( INet4SocketAddress(":12345"), AddressSyntaxException );
+    BOOST_CHECK_THROW( INet4SocketAddress("127.0.0.1:1234a"), AddressSyntaxException );
 
     BOOST_CHECK_EQUAL( INet4SocketAddress("127.0.0.1:12345").address(), INet4Address::Loopback );
     BOOST_CHECK_EQUAL( INet4SocketAddress("127.0.0.1:12345").port(), 12345u );
@@ -82,13 +84,18 @@ BOOST_AUTO_UNIT_TEST(inet6SocketAddress)
 {
     using senf::INet6Address;
     using senf::INet6SocketAddress;
+    using senf::AddressSyntaxException;
 
     {
         INet6SocketAddress addr;
+        BOOST_CHECK( ! addr );
         BOOST_CHECK_EQUAL( boost::lexical_cast<std::string>(addr.address()), "::" );
         BOOST_CHECK_EQUAL( addr.port(), 0u );
         BOOST_CHECK_EQUAL( addr.iface(), "" );
         addr = senf::INet6SocketAddress("[12::21]:12345");
+        BOOST_CHECK( addr == senf::INet6SocketAddress("[12::21]:12345") );
+        BOOST_CHECK( addr != senf::INet6SocketAddress("[12::21%lo]:12345") );
+        BOOST_CHECK( addr );
         BOOST_CHECK_EQUAL( addr.address(), INet6Address::from_string("12::21") );
         BOOST_CHECK_EQUAL( addr.port(), 12345u );
         BOOST_CHECK_EQUAL( addr.iface(), "" );
@@ -115,11 +122,11 @@ BOOST_AUTO_UNIT_TEST(inet6SocketAddress)
         BOOST_CHECK_EQUAL( addr.port(), 100u );
         addr.address(INet6Address::from_string("::2"));
         BOOST_CHECK_EQUAL( addr.address(), INet6Address::from_string("::2") );
-        BOOST_CHECK_THROW( senf::INet6SocketAddress(""), INet6SocketAddress::SyntaxException );
+        BOOST_CHECK_THROW( senf::INet6SocketAddress(""), AddressSyntaxException );
         BOOST_CHECK_THROW( senf::INet6SocketAddress("[::1]"), 
-                           INet6SocketAddress::SyntaxException );
+                           AddressSyntaxException );
         BOOST_CHECK_THROW( senf::INet6SocketAddress("[::1]1234"), 
-                           INet6SocketAddress::SyntaxException );
+                           AddressSyntaxException );
         addr = senf::INet6SocketAddress("[12::21%lo]:12345");
         BOOST_CHECK_EQUAL( boost::lexical_cast<std::string>(addr), "[12::21%lo]:12345" );
         BOOST_CHECK_EQUAL( addr.address(), INet6Address::from_string("12::21") );