Packets: Restructure documentation
[senf.git] / Socket / SocketHandle.test.cc
index 63fff9e..c8071f3 100644 (file)
@@ -66,6 +66,12 @@ BOOST_AUTO_UNIT_TEST(socketHandle)
         >::policy OtherSocketPolicy;
     typedef senf::SocketHandle<OtherSocketPolicy> OtherSocketHandle;
 
+    typedef senf::MakeSocketPolicy<
+        senf::test::SomeCommunicationPolicy,
+        senf::test::SomeAddressingPolicy
+        >::policy AnotherSocketPolicy;
+    typedef senf::SocketHandle<AnotherSocketPolicy> AnotherSocketHandle;
+
     {
         MySocketHandle myh;
         OtherSocketHandle osh (myh);
@@ -75,6 +81,7 @@ BOOST_AUTO_UNIT_TEST(socketHandle)
         SomeSocketHandle ssh = senf::static_socket_cast<SomeSocketHandle>(osh);
 
         BOOST_CHECK_NO_THROW( senf::dynamic_socket_cast<SomeSocketHandle>(osh) );
+        BOOST_CHECK_NO_THROW( senf::dynamic_socket_cast<AnotherSocketHandle>(osh) );
 
         typedef senf::SocketHandle< senf::MakeSocketPolicy<
             OtherSocketPolicy,
@@ -94,6 +101,8 @@ BOOST_AUTO_UNIT_TEST(socketHandle)
                            "socket.protocol: senf::test::SomeSocketProtocol\n"
                            "socket.protocol.policy: senf::SocketPolicy<senf::test::SomeAddressingPolicy, senf::test::SomeFramingPolicy, senf::test::SomeCommunicationPolicy, senf::test::SomeReadPolicy, senf::test::SomeWritePolicy>\n"
                            "socket.server: false\n" );
+
+        BOOST_CHECK_NO_THROW( myh.facet<senf::test::SomeSocketProtocol>() );
     }
     
     // Ensure, the destructor is called and calls the correct close() implementation