2004-12-09 Lluis Sanchez Gual <lluis@ximian.com>
authorLluis Sanchez <lluis@novell.com>
Thu, 9 Dec 2004 11:26:49 +0000 (11:26 -0000)
committerLluis Sanchez <lluis@novell.com>
Thu, 9 Dec 2004 11:26:49 +0000 (11:26 -0000)
* SerializationTest.cs: Added test for bug #70104.

svn path=/trunk/mcs/; revision=37478

mcs/class/corlib/Test/System.Runtime.Serialization/ChangeLog
mcs/class/corlib/Test/System.Runtime.Serialization/SerializationTest.cs

index 0ded05427f7d793ac9ce898446e522b1b0f360f7..d0625560f38b06726ee281070c7ec471bf13a866 100644 (file)
@@ -1,3 +1,7 @@
+2004-12-09  Lluis Sanchez Gual  <lluis@ximian.com>\r
+\r
+       * SerializationTest.cs: Added test for bug #70104.\r
+\r
 2004-05-13  Lluis Sanchez Gual  <lluis@ximian.com>\r
 \r
        * SerializationTest.cs: Test serialization of empty struct arrays. This\r
index 30b5abe2a91685ea792ea14ac7826706568526e5..4a0c69e9123b9235df035237433cd2c37eaae459 100644 (file)
@@ -43,6 +43,7 @@ namespace MonoTests.System.Runtime.Serialization
                        StreamingContext context = new StreamingContext (StreamingContextStates.Other);\r
                        SurrogateSelector sel = new SurrogateSelector();\r
                        sel.AddSurrogate (typeof (Point), context, new PointSurrogate());\r
+                       sel.AddSurrogate (typeof (FalseISerializable), context, new FalseISerializableSurrogate());\r
 \r
                        List list = CreateTestData();\r
                        BinderTester_A bta = CreateBinderTestData();\r
@@ -61,6 +62,7 @@ namespace MonoTests.System.Runtime.Serialization
                        StreamingContext context = new StreamingContext (StreamingContextStates.Other);\r
                        SurrogateSelector sel = new SurrogateSelector();\r
                        sel.AddSurrogate (typeof (Point), context, new PointSurrogate());\r
+                       sel.AddSurrogate (typeof (FalseISerializable), context, new FalseISerializableSurrogate());\r
 \r
                        BinaryFormatter f = new BinaryFormatter (sel, context);\r
 \r
@@ -370,6 +372,41 @@ namespace MonoTests.System.Runtime.Serialization
                }\r
        }\r
 \r
+       [Serializable]\r
+       public class FalseISerializable : ISerializable\r
+       {\r
+               public int field;\r
+               \r
+               public FalseISerializable (int n)\r
+               {\r
+                       field = n;\r
+               }\r
+               \r
+               public void GetObjectData(SerializationInfo info, StreamingContext context)\r
+               {\r
+                       throw new InvalidOperationException ("Serialize:We should not pass here.");\r
+               }\r
+               \r
+               public FalseISerializable (SerializationInfo info, StreamingContext context)\r
+               {\r
+                       throw new InvalidOperationException ("Deserialize:We should not pass here.");\r
+               }\r
+       }\r
+       \r
+       public class FalseISerializableSurrogate : ISerializationSurrogate\r
+       {\r
+               public void GetObjectData (object obj, SerializationInfo info, StreamingContext context)\r
+               {\r
+                       info.AddValue("field", Convert.ToString (((FalseISerializable)obj).field));\r
+               }\r
+               \r
+               public object SetObjectData (object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector)\r
+               {\r
+                       ((FalseISerializable)obj).field = Convert.ToInt32 (info.GetValue("field", typeof(string)));\r
+                       return obj;\r
+               }\r
+       }\r
+\r
        [Serializable]\r
        public class SimpleClass\r
        {\r
@@ -454,6 +491,8 @@ namespace MonoTests.System.Runtime.Serialization
                SimpleClass _shared1;\r
                SimpleClass _shared2;\r
                SimpleClass _shared3;\r
+               \r
+               FalseISerializable _falseSerializable;\r
 \r
                public void Init()\r
                {\r
@@ -516,6 +555,8 @@ namespace MonoTests.System.Runtime.Serialization
                        _shared1 = new SimpleClass('A');\r
                        _shared2 = new SimpleClass('A');\r
                        _shared3 = _shared1;\r
+                       \r
+                       _falseSerializable = new FalseISerializable (2);\r
                }\r
 \r
                public int SampleCall (string str, SomeValues sv, ref int acum)\r
@@ -610,6 +651,8 @@ namespace MonoTests.System.Runtime.Serialization
                        _shared1.val = 'B';\r
                        SerializationTest.AssertEquals ("SomeValues._shared2", _shared2.val, 'A');\r
                        SerializationTest.AssertEquals ("SomeValues._shared3", _shared3.val, 'B');\r
+                       \r
+                       SerializationTest.AssertEquals ("SomeValues._falseSerializable", _falseSerializable.field, 2);\r
                }\r
        }\r
 \r