PPI: Checkin of first compiling (yet not working) version
[senf.git] / Socket / SocketPolicy.test.cc
index af167a4..84a830c 100644 (file)
@@ -1,6 +1,6 @@
 // $Id$
 //
-// Copyright (C) 2006 
+// Copyright (C) 2006
 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
 //     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
@@ -38,7 +38,7 @@
 #define prefix_
 ///////////////////////////////cc.p////////////////////////////////////////
 
-using namespace satcom::lib;
+using namespace senf;
 
 namespace {
     struct INetAddressingPolicy : public AddressingPolicyBase {};
@@ -55,7 +55,7 @@ namespace {
 
     struct WritablePolicy : public WritePolicyBase {};
     struct UnwritablePolicy : public WritePolicyBase {};
-    
+
     struct SocketBufferingPolicy : public BufferingPolicyBase {};
 
     template <class Policy>
@@ -65,7 +65,7 @@ namespace {
         ConvertibleValue(ConvertibleValue const & other) {}
 
         template <class OtherPolicy>
-        ConvertibleValue(ConvertibleValue<OtherPolicy> const & other, 
+        ConvertibleValue(ConvertibleValue<OtherPolicy> const & other,
                          typename boost::enable_if< SocketPolicyIsBaseOf<Policy,OtherPolicy> >::type * = 0)
             {}
 
@@ -73,8 +73,8 @@ namespace {
             { return *this; }
 
         template <class OtherPolicy>
-        typename boost::enable_if< SocketPolicyIsBaseOf<Policy,OtherPolicy>, 
-                                   ConvertibleValue >::type const & 
+        typename boost::enable_if< SocketPolicyIsBaseOf<Policy,OtherPolicy>,
+                                   ConvertibleValue >::type const &
         operator=(ConvertibleValue<OtherPolicy> const & other)
             { return *this; }
     };
@@ -83,7 +83,7 @@ namespace {
 
 BOOST_AUTO_UNIT_TEST(socketPolicy)
 {
-    // All these checks are really compile-time checks ...
+    // Most of these checks are really compile-time checks ...
 
     typedef MakeSocketPolicy<
         UnixAddressingPolicy,
@@ -97,7 +97,7 @@ BOOST_AUTO_UNIT_TEST(socketPolicy)
         ReadablePolicy,
         UnspecifiedWritePolicy,
         UnspecifiedBufferingPolicy> Policy2;
-        
+
     BOOST_MPL_ASSERT(( boost::is_same<Policy1,Policy2> ));
 
     typedef MakeSocketPolicy<
@@ -121,13 +121,23 @@ BOOST_AUTO_UNIT_TEST(socketPolicy)
 
     // The following should fail at compile time
     // BOOST_MPL_ASSERT(( SocketPolicyIsBaseOf<Policy1,Policy3> ));
-   
-    ConvertibleValue<Policy1> p1;
-    ConvertibleValue<Policy3> p3(p1);
 
-    p3 = p1;
-    // The following should fail at compile time
-    // p1 = p3;
+    {
+        ConvertibleValue<Policy1> p1;
+        ConvertibleValue<Policy3> p3(p1);
+
+        p3 = p1;
+        // The following should fail at compile time
+        // p1 = p3;
+    }
+    
+    {
+        Policy1 p1;
+        Policy3 p3;
+
+        BOOST_CHECK_THROW( Policy1::checkBaseOf(p3), std::bad_cast );
+        BOOST_CHECK_NO_THROW( Policy3::checkBaseOf(p1) );
+    }
 }
 
 ///////////////////////////////cc.e////////////////////////////////////////
@@ -136,5 +146,10 @@ BOOST_AUTO_UNIT_TEST(socketPolicy)
 \f
 // Local Variables:
 // mode: c++
-// c-file-style: "satcom"
+// fill-column: 100
+// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
+// compile-command: "scons -u test"
+// comment-column: 40
 // End: