X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fclass%2FSystem.Runtime.Serialization.Formatters.Soap%2FTest%2FSoapFormatterTest.cs;h=3dd914db71bd48309df4f6a987248553a1e0b3ab;hb=c133ae2dc82c0533f5790333a3c93b2635b9c43c;hp=ad4bf29dce3e28b1119599d63d4a19022ef1bf4b;hpb=89d0ba3968d36576553e0f483b0c69465f94e8ae;p=mono.git diff --git a/mcs/class/System.Runtime.Serialization.Formatters.Soap/Test/SoapFormatterTest.cs b/mcs/class/System.Runtime.Serialization.Formatters.Soap/Test/SoapFormatterTest.cs index ad4bf29dce3..3dd914db71b 100644 --- a/mcs/class/System.Runtime.Serialization.Formatters.Soap/Test/SoapFormatterTest.cs +++ b/mcs/class/System.Runtime.Serialization.Formatters.Soap/Test/SoapFormatterTest.cs @@ -2,6 +2,8 @@ using System; using System.Collections; using System.Reflection; +using System.Threading; +using System.Globalization; using System.Runtime.Remoting; using System.Runtime.Remoting.Messaging; using System.Runtime.Serialization; @@ -9,7 +11,7 @@ using System.Runtime.Serialization.Formatters; using System.Runtime.Serialization.Formatters.Soap; using System.Runtime.Remoting.Metadata.W3cXsd2001; using System.IO; -using NUnit.Framework; +using NUnit.Framework; namespace MonoTests.System.Runtime.Serialization.Formatters.Soap { @@ -223,7 +225,7 @@ namespace MonoTests.System.Runtime.Serialization.Formatters.Soap { objReturn = Serialize(1); Assertion.AssertEquals("#int32", objReturn, 1); objReturn = Serialize((Single)0.1234); - Assertion.AssertEquals("#Single", objReturn, 0.1234); + Assertion.AssertEquals("#Single", objReturn, 0.123400003f); objReturn = Serialize((Double)1234567890.0987654321); Assertion.AssertEquals("#iDouble", objReturn, 1234567890.0987654321); objReturn = Serialize(true); @@ -346,10 +348,10 @@ namespace MonoTests.System.Runtime.Serialization.Formatters.Soap { Assertion.AssertEquals("#Version1 Version2", "Version2", objReturn.GetType().Name); Assertion.AssertEquals("#_value", 123, ((Version2) objReturn)._value); Assertion.AssertEquals("#_foo", "Default value", ((Version2) objReturn)._foo); - } - + } + [Test] - public void TestMethodSignatureSerialization () + public void TestMethodSignatureSerialization () { Header h = new Header ("__MethodSignature", new Type [] { typeof(string),typeof(SignatureTest[]) }, false, "http://schemas.microsoft.com/clr/soap/messageProperties"); @@ -368,22 +370,58 @@ namespace MonoTests.System.Runtime.Serialization.Formatters.Soap { SoapMessage t = new SoapMessage (); sf.TopObject = t; - t = (SoapMessage) sf.Deserialize (ms); - + t = (SoapMessage) sf.Deserialize (ms); + Assertion.AssertNotNull ("#1", t.Headers[0].Value); - Assertion.AssertEquals ("#2", t.Headers[0].Value.GetType (), typeof(Type[])); - - Type[] ts = (Type[]) t.Headers[0].Value; - - Assertion.AssertEquals ("#3", 2, ts.Length); + Assertion.AssertEquals ("#2", t.Headers[0].Value.GetType (), typeof(Type[])); + + Type[] ts = (Type[]) t.Headers[0].Value; + + Assertion.AssertEquals ("#3", 2, ts.Length); Assertion.AssertNotNull ("#4", ts[0]); - Assertion.AssertNotNull ("#5", ts[1]); - Console.WriteLine ("PPP:" + ts[0].GetType()); + Assertion.AssertNotNull ("#5", ts[1]); + Console.WriteLine ("PPP:" + ts[0].GetType()); Assertion.AssertEquals ("#6", typeof(string), ts[0]); Assertion.AssertEquals ("#7", typeof(SignatureTest[]), ts[1]); } - } - + + [Test] + public void TestCulture () + { + var currentCulture = Thread.CurrentThread.CurrentCulture; + try { + Thread.CurrentThread.CurrentCulture = new CultureInfo ("de-DE"); + + var ms = new MemoryStream (); + var test = new CultureTest (); + + _soapFormatter.Serialize(ms, test); + ms.Position = 0; + _soapFormatter.Deserialize(ms); + } finally { + Thread.CurrentThread.CurrentCulture = currentCulture; + } + } + + [Serializable] + public class CultureTest + { + [OnDeserialized] + public void OnDeserialization (StreamingContext context) + { + var ci = Thread.CurrentThread.CurrentCulture; + Assertion.AssertEquals("#1", "German (Germany)", ci.EnglishName); + } + + [OnSerialized] + public void OnSerialized (StreamingContext context) + { + var ci = Thread.CurrentThread.CurrentCulture; + Assertion.AssertEquals("#2", "German (Germany)", ci.EnglishName); + } + } + } + [Serializable] public class SignatureTest {