Author: atsushi
Date: 2008-02-05 12:44:31 -0500 (Tue, 05 Feb 2008)
New Revision: 94910

Added:
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
Modified:
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
   
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
   trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
   
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
   
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
   
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
Log:

2008-02-05  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * WebMessageEncodingBindingElement.cs :
          implement CreateMessageEncoderFactory().
        * WebMessageEncoderFactory.cs, WebMessageEncoder.cs : implementation.
        * WebBodyFormatMessageProperty.cs : ToString() is more informative.

        * WebMessageEncodingBindingElementTest.cs : added MessageEncoder test.
        * WebBodyFormatMessagePropertyTest.cs : fixed ToString() test.



Modified: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
    2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/ChangeLog
    2008-02-05 17:44:31 UTC (rev 94910)
@@ -1,5 +1,12 @@
 2008-02-05  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * WebMessageEncodingBindingElement.cs :
+         implement CreateMessageEncoderFactory().
+       * WebMessageEncoderFactory.cs, WebMessageEncoder.cs : implementation.
+       * WebBodyFormatMessageProperty.cs : ToString() is more informative.
+
+2008-02-05  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * WebBodyFormatMessageProperty.cs, WebContentTypeMapper.cs,
          WebContentFormat.cs, WebMessageEncodingBindingElement.cs :
          new files.

Modified: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
      2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
      2008-02-05 17:44:31 UTC (rev 94910)
@@ -24,7 +24,7 @@
 
                public override string ToString ()
                {
-                       return format.ToString ();
+                       return String.Concat (Name, ": WebContentFormat=", 
format.ToString ());
                }
        }
 }

Added: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
 2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
 2008-02-05 17:44:31 UTC (rev 94910)
@@ -0,0 +1,50 @@
+using System;
+using System.IO;
+using System.ServiceModel;
+
+namespace System.ServiceModel.Channels
+{
+       internal class WebMessageEncoder : MessageEncoder
+       {
+               WebMessageEncodingBindingElement source;
+
+               public WebMessageEncoder (WebMessageEncodingBindingElement 
source)
+               {
+                       this.source = source;
+               }
+
+               public override string ContentType {
+                       get { return MediaType + "; charset=" + 
source.WriteEncoding.HeaderName; }
+               }
+
+               // FIXME: find out how it can be customized.
+               public override string MediaType {
+                       get { return "application/xml"; }
+               }
+
+               public override MessageVersion MessageVersion {
+                       get { return MessageVersion.None; }
+               }
+
+               public override Message ReadMessage (ArraySegment<byte> buffer, 
BufferManager bufferManager, string contentType)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public override Message ReadMessage (Stream stream, int 
maxSizeOfHeaders, string contentType)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public override void WriteMessage (Message message, Stream 
stream)
+               {
+                       throw new NotImplementedException ();
+               }
+
+               public override ArraySegment<byte> WriteMessage (Message 
message, int maxMessageSize, BufferManager bufferManager,
+                                                                int 
messageOffset)
+               {
+                       throw new NotImplementedException ();
+               }
+       }
+}


Property changes on: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoder.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Added: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
  2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
  2008-02-05 17:44:31 UTC (rev 94910)
@@ -0,0 +1,23 @@
+using System;
+using System.ServiceModel;
+
+namespace System.ServiceModel.Channels
+{
+       internal class WebMessageEncoderFactory : MessageEncoderFactory
+       {
+               MessageEncoder encoder;
+
+               public WebMessageEncoderFactory 
(WebMessageEncodingBindingElement source)
+               {
+                       encoder = new WebMessageEncoder (source);
+               }
+
+               public override MessageEncoder Encoder {
+                       get { return encoder; }
+               }
+
+               public override MessageVersion MessageVersion {
+                       get { return MessageVersion.None; }
+               }
+       }
+}


Property changes on: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncoderFactory.cs
___________________________________________________________________
Name: svn:eol-style
   + native

Modified: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
  2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
  2008-02-05 17:44:31 UTC (rev 94910)
@@ -102,7 +102,7 @@
                [MonoTODO]
                public override MessageEncoderFactory 
CreateMessageEncoderFactory ()
                {
-                       throw new NotImplementedException ();
+                       return new WebMessageEncoderFactory (this);
                }
 
                [MonoTODO]

Modified: 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources   
    2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/System.ServiceModel.Web.dll.sources   
    2008-02-05 17:44:31 UTC (rev 94910)
@@ -14,6 +14,8 @@
 System.ServiceModel.Channels/WebBodyFormatMessageProperty.cs
 System.ServiceModel.Channels/WebContentFormat.cs
 System.ServiceModel.Channels/WebContentTypeMapper.cs
+System.ServiceModel.Channels/WebMessageEncoder.cs
+System.ServiceModel.Channels/WebMessageEncoderFactory.cs
 System.ServiceModel.Channels/WebMessageEncodingBindingElement.cs
 System.ServiceModel.Syndication/Atom10FeedFormatter.cs
 System.ServiceModel.Syndication/Atom10FeedFormatter_1.cs

Modified: 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
       2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/ChangeLog
       2008-02-05 17:44:31 UTC (rev 94910)
@@ -1,4 +1,9 @@
 2008-02-05  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
+       * WebMessageEncodingBindingElementTest.cs : added MessageEncoder test.
+       * WebBodyFormatMessagePropertyTest.cs : fixed ToString() test.
+
+2008-02-05  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
        * WebMessageEncodingBindingElementTest.cs,
          WebBodyFormatMessagePropertyTest.cs : new test files.

Modified: 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
     2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebBodyFormatMessagePropertyTest.cs
     2008-02-05 17:44:31 UTC (rev 94910)
@@ -15,7 +15,7 @@
                        WebBodyFormatMessageProperty p = new 
WebBodyFormatMessageProperty (WebContentFormat.Json);
                        Assert.AreEqual ("WebBodyFormatMessageProperty", 
WebBodyFormatMessageProperty.Name, "#1");
                        Assert.AreEqual (WebContentFormat.Json, p.Format, "#2");
-                       Assert.AreEqual ("Json", p.ToString (), "#3");
+                       Assert.AreEqual ("WebBodyFormatMessageProperty: 
WebContentFormat=Json", p.ToString (), "#3");
                }
        }
 }

Modified: 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
===================================================================
--- 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
 2008-02-05 17:35:06 UTC (rev 94909)
+++ 
trunk/olive/class/System.ServiceModel.Web/Test/System.ServiceModel.Channels/WebMessageEncodingBindingElementTest.cs
 2008-02-05 17:44:31 UTC (rev 94910)
@@ -22,5 +22,14 @@
                        WebMessageEncodingBindingElement be = new 
WebMessageEncodingBindingElement ();
                        Assert.AreEqual (Encoding.UTF8, be.WriteEncoding, "#1");
                }
+
+               [Test]
+               public void MessageEncoder ()
+               {
+                       WebMessageEncodingBindingElement m = new 
WebMessageEncodingBindingElement ();
+                       MessageEncoder e = m.CreateMessageEncoderFactory 
().Encoder;
+                       Assert.AreEqual ("application/xml", e.MediaType, "#1");
+                       Assert.AreEqual ("application/xml; charset=utf-8", 
e.ContentType, "#2");
+               }
        }
 }

_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to