Utils/Termlib: Extend the completion API
[senf.git] / Socket / ClientSocketHandle.test.cc
index 37494d7..7ffbc6b 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
@@ -20,7 +20,8 @@
 // Free Software Foundation, Inc.,
 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 
-// Unit tests
+/** \file
+    \brief ClientSocketHandle unit tests */
 
 //#include "ClientSocketHandle.test.hh"
 //#include "ClientSocketHandle.test.ih"
@@ -31,7 +32,7 @@
 #include "ClientSocketHandle.hh"
 #include "AddressingPolicy.hh"
 
-#include <boost/test/auto_unit_test.hpp>
+#include "../Utils/auto_unit_test.hh"
 #include <boost/test/test_tools.hpp>
 
 #define prefix_
 
 namespace {
 
-    namespace sl = senf;
-
     class MySocketHandle
-        : public sl::ClientSocketHandle<sl::test::SomeProtocol::Policy>
+        : public senf::ClientSocketHandle<senf::test::SomeSocketProtocol::Policy>
     {
     public:
         MySocketHandle()
-            : sl::ClientSocketHandle<sl::test::SomeProtocol::Policy>(
-                std::auto_ptr<sl::SocketProtocol>(new sl::test::SomeProtocol()))
+            : senf::ClientSocketHandle<senf::test::SomeSocketProtocol::Policy>(
+                std::auto_ptr<senf::SocketBody>(
+                    new senf::ProtocolSocketBody<senf::test::SomeSocketProtocol>(false)))
             {}
     };
+
 }
 
 BOOST_AUTO_UNIT_TEST(clientSocketHandle)
@@ -59,82 +60,77 @@ BOOST_AUTO_UNIT_TEST(clientSocketHandle)
 
     // conversion to other socket handles
     {
-        typedef sl::MakeSocketPolicy<
-            sl::test::SomeFramingPolicy,
-            sl::test::SomeReadPolicy,
-            sl::test::SomeWritePolicy
+        typedef senf::MakeSocketPolicy<
+            senf::test::SomeFramingPolicy,
+            senf::test::SomeReadPolicy,
+            senf::test::SomeWritePolicy
             >::policy OtherSocketPolicy;
-        typedef sl::SocketHandle<OtherSocketPolicy> OtherSocketHandle;
+        typedef senf::SocketHandle<OtherSocketPolicy> OtherSocketHandle;
 
         BOOST_CHECKPOINT("Copy-constructing socket handle");
         OtherSocketHandle osh (myh);
         BOOST_CHECKPOINT("Assigning socket handle");
         osh = myh;
-        typedef sl::ClientSocketHandle<sl::test::SomeProtocol::Policy> SomeSocketHandle;
+        typedef senf::ClientSocketHandle<senf::test::SomeSocketProtocol::Policy> SomeSocketHandle;
         BOOST_CHECKPOINT("static_casting socket handle");
         SomeSocketHandle ssh =
-            sl::static_socket_cast<SomeSocketHandle>(osh);
-        BOOST_CHECK_NO_THROW( sl::dynamic_socket_cast<SomeSocketHandle>(osh) );
-        typedef sl::ClientSocketHandle<sl::MakeSocketPolicy<
+            senf::static_socket_cast<SomeSocketHandle>(osh);
+        SENF_CHECK_NO_THROW( senf::dynamic_socket_cast<SomeSocketHandle>(osh) );
+        typedef senf::ClientSocketHandle<senf::MakeSocketPolicy<
             OtherSocketPolicy,
-            sl::NoAddressingPolicy
+            senf::NoAddressingPolicy
             >::policy> SomeOtherSocketHandle;
-        BOOST_CHECK_THROW( sl::dynamic_socket_cast<SomeOtherSocketHandle>(osh),
+        BOOST_CHECK_THROW( senf::dynamic_socket_cast<SomeOtherSocketHandle>(osh),
                            std::bad_cast );
     }
 
     // reading and writing
-    BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(), "TEST-READ" ) );
+    SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(), "TEST-READ" ) );
     {
         std::string buf("FOO-BAR");
-        BOOST_CHECK_NO_THROW( myh.read(buf,0) );
+        SENF_CHECK_NO_THROW( myh.read(buf,0) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ" );
     }
     {
         char buf[11];
         ::strcpy(buf,"0123456789");
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(buf,buf+10), buf+9 ) );
+        SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.read(buf,buf+10), buf+9 ) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ9" );
     }
 
-    BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom().first, "TEST-READ" ) );
+    SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom().first, "TEST-READ" ) );
     {
         std::string buf("FOO-BAR");
         unsigned addr;
-        BOOST_CHECK_NO_THROW( myh.readfrom(buf,addr,0) );
+        SENF_CHECK_NO_THROW( myh.readfrom(buf,addr,0) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ" );
     }
     {
         char buf[11];
         unsigned addr;
         ::strcpy(buf,"0123456789");
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom(buf,buf+10,addr), buf+9 ) );
+        SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.readfrom(buf,buf+10,addr), buf+9 ) );
         BOOST_CHECK_EQUAL( buf, "TEST-READ9" );
     }
 
     {
         std::string s ("TEST-WRITE");
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write(s)-s.begin(), 10 ) );
+        SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write(s)-s.begin(), 10 ) );
         s = "TEST";
         // This simulates a closed file in this test policy. However, we
         // have changed the semantics so this will not work anymore.
         // BOOST_CHECK_THROW( myh.write(s),senf::SystemException );
         char const * const s1 = "TEST-WRITE9";
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write(s1,s1+10), s1+10u ) );
+        SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.write(s1,s1+10), s1+10u ) );
         s = "TEST-WRITE";
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,s)-s.begin(), 10 ) );
-        BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,s1,s1+10), s1+10 ) );
+        SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,s)-s.begin(), 10 ) );
+        SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.writeto(0,s1,s1+10), s1+10 ) );
     }
 
-    BOOST_CHECK_NO_THROW( myh.connect(0) );
-    BOOST_CHECK_NO_THROW( myh.bind(0) );
-    BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.peer(), 1u ) );
-    BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.local(), 2u ) );
-
-    BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.rcvbuf(), 0u ) );
-    BOOST_CHECK_NO_THROW( myh.rcvbuf(1) );
-    BOOST_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.sndbuf(), 0u ) );
-    BOOST_CHECK_NO_THROW( myh.sndbuf(1) );
+    SENF_CHECK_NO_THROW( myh.connect(0) );
+    SENF_CHECK_NO_THROW( myh.bind(0) );
+    SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.peer(), 1u ) );
+    SENF_CHECK_NO_THROW( BOOST_CHECK_EQUAL( myh.local(), 2u ) );
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////