소스 검색

2010-01-13 Atsushi Enomoto <[email protected]>

	* EndpointAddressBuilder.cs : reader getters were broken.

	* EndpointAddressBuilderTest.cs : add usage example test.


svn path=/trunk/mcs/; revision=149449
Atsushi Eno 16 년 전
부모
커밋
f65322475e

+ 4 - 0
mcs/class/System.ServiceModel/System.ServiceModel/ChangeLog

@@ -1,3 +1,7 @@
+2010-01-13  Atsushi Enomoto  <[email protected]>
+
+	* EndpointAddressBuilder.cs : reader getters were broken.
+
 2010-01-13  Atsushi Enomoto  <[email protected]>
 
 	* EndpointAddressBuilder.cs : implement.

+ 3 - 2
mcs/class/System.ServiceModel/System.ServiceModel/EndpointAddressBuilder.cs

@@ -27,6 +27,7 @@
 //
 using System;
 using System.Collections.ObjectModel;
+using System.IO;
 using System.Linq;
 using System.Xml;
 using System.ServiceModel.Channels;
@@ -71,7 +72,7 @@ namespace System.ServiceModel
 		{
 			if (extension == null)
 				return null;
-			var r = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (extension));
+			var r = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (new StringReader (extension)));
 			r.MoveToContent ();
 			return r;
 		}
@@ -80,7 +81,7 @@ namespace System.ServiceModel
 		{
 			if (metadata == null)
 				return null;
-			var r = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (metadata));
+			var r = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (new StringReader (metadata)));
 			r.MoveToContent ();
 			return r;
 		}

+ 4 - 0
mcs/class/System.ServiceModel/Test/System.ServiceModel/ChangeLog

@@ -1,3 +1,7 @@
+2010-01-13  Atsushi Enomoto  <[email protected]>
+
+	* EndpointAddressBuilderTest.cs : add usage example test.
+
 2010-01-08  Atsushi Enomoto  <[email protected]>
 
 	* CallbackBehaviorAttributeTest.cs : added callback example from

+ 17 - 0
mcs/class/System.ServiceModel/Test/System.ServiceModel/EndpointAddressBuilderTest.cs

@@ -27,6 +27,7 @@
 //
 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.ServiceModel;
 using System.Text;
 using System.Xml;
@@ -44,5 +45,21 @@ namespace MonoTests.System.ServiceModel
 		{
 			new EndpointAddressBuilder ().ToEndpointAddress ();
 		}
+
+		[Test]
+		public void UsageExample ()
+		{
+			var eb = new EndpointAddressBuilder ();
+			var dr = XmlDictionaryReader.CreateDictionaryReader (XmlReader.Create (new StringReader ("<foo/>")));
+			eb.SetExtensionReader (dr);
+			Assert.AreEqual (ReadState.EndOfFile, dr.ReadState, "#1");
+			var xr = eb.GetReaderAtExtensions ();
+			xr.ReadOuterXml ();
+			xr = eb.GetReaderAtExtensions (); // do not return the same XmlReader
+			Assert.AreEqual (ReadState.Interactive, xr.ReadState, "#2");
+			xr.ReadOuterXml ();
+			eb.SetExtensionReader (null); // allowed
+			Assert.IsNull (eb.GetReaderAtExtensions (), "#3");
+		}
 	}
 }