Add 'unflatten' to doxygen/dot processing
[senf.git] / Socket / SocketHandle.test.cc
index 709fb9f..0b354ae 100644 (file)
@@ -20,7 +20,8 @@
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-// Unit tests
+/** \file
+    \brief SocketHandle unit tests */
 
 //#include "SocketHandle.test.hh"
 //#include "SocketHandle.test.ih"
 namespace {
 
     class MySocketHandle
-        : public senf::SocketHandle<senf::test::SomeProtocol::Policy>
+        : public senf::SocketHandle<senf::test::SomeSocketProtocol::Policy>
     {
     public:
         MySocketHandle()
-            : senf::SocketHandle<senf::test::SomeProtocol::Policy>(
+            : senf::SocketHandle<senf::test::SomeSocketProtocol::Policy>(
                 std::auto_ptr<senf::SocketBody>(
-                    new senf::ProtocolSocketBody<senf::test::SomeProtocol>(false, 0)))
+                    new senf::ProtocolSocketBody<senf::test::SomeSocketProtocol>(false, 0)))
             {}
     };
 
@@ -66,15 +67,22 @@ 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);
         osh = myh;
 
-        typedef senf::SocketHandle<senf::test::SomeProtocol::Policy> SomeSocketHandle;
+        typedef senf::SocketHandle<senf::test::SomeSocketProtocol::Policy> SomeSocketHandle;
         SomeSocketHandle ssh = senf::static_socket_cast<SomeSocketHandle>(osh);
 
-        BOOST_CHECK_NO_THROW( senf::dynamic_socket_cast<SomeSocketHandle>(osh) );
+        SENF_CHECK_NO_THROW( senf::dynamic_socket_cast<SomeSocketHandle>(osh) );
+        SENF_CHECK_NO_THROW( senf::dynamic_socket_cast<AnotherSocketHandle>(osh) );
 
         typedef senf::SocketHandle< senf::MakeSocketPolicy<
             OtherSocketPolicy,
@@ -91,13 +99,15 @@ BOOST_AUTO_UNIT_TEST(socketHandle)
                            "file.handle: 0\n"
                            "file.refcount: 3\n"
                            "handle: senf::SocketHandle<senf::SocketPolicy<senf::test::SomeAddressingPolicy, senf::test::SomeFramingPolicy, senf::test::SomeCommunicationPolicy, senf::test::SomeReadPolicy, senf::test::SomeWritePolicy> >\n"
-                           "socket.protocol: senf::test::SomeProtocol\n"
+                           "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" );
+
+        SENF_CHECK_NO_THROW( myh.facet<senf::test::SomeSocketProtocol>() );
     }
     
     // Ensure, the destructor is called and calls the correct close() implementation
-    BOOST_CHECK_EQUAL( senf::test::SomeProtocol::closeCount(), 1u );
+    BOOST_CHECK_EQUAL( senf::test::SomeSocketProtocol::closeCount(), 1u );
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////