Socket/Protocols/INet: Allow socket address string representation to omit the address...
[senf.git] / Socket / Protocols / INet / INetAddressing.test.cc
index dcf4443..0c7a7b0 100644 (file)
@@ -1,8 +1,8 @@
 // $Id$
 //
 // Copyright (C) 2006
-// Fraunhofer Institute for Open Communication Systems (FOKUS) 
-// Competence Center NETwork research (NET), St. Augustin, GERMANY 
+// 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
@@ -38,6 +38,7 @@ BOOST_AUTO_UNIT_TEST(inet4SocketAddress)
 {
     using senf::INet4SocketAddress;
     using senf::INet4Address;
+    using senf::AddressSyntaxException;
 
     {
         INet4SocketAddress addr;
@@ -56,10 +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"), INet4SocketAddress::SyntaxException );
-    BOOST_CHECK_THROW( INet4SocketAddress(":12345"), INet4SocketAddress::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 );
@@ -83,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(), "" );
@@ -116,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") );