Merge pull request #1659 from alexanderkyte/stringbuilder-referencesource
[mono.git] / mcs / class / System.Runtime.Serialization.Formatters.Soap / Test / InternalSoapValuesTest.cs
1 using System;\r
2 using System.IO;\r
3 using NUnit.Framework;\r
4 using System.Runtime.Serialization.Formatters.Soap;\r
5 \r
6 namespace SoapShared\r
7 {\r
8         /// <summary>\r
9         /// Summary description for InternalSoapValuesTest.\r
10         /// </summary>\r
11         [TestFixture]\r
12         public class InternalSoapValuesTest\r
13         {\r
14                 private MemoryStream ms;\r
15                 private SoapFormatter sf;\r
16                 \r
17 \r
18                 public InternalSoapValuesTest()\r
19                 {\r
20                         ms = new MemoryStream();\r
21                         sf = new SoapFormatter();\r
22                 }\r
23 \r
24                 [Test]\r
25                 public void WriteReadData()\r
26                 {\r
27                         SerializedClass c = new SerializedClass();\r
28                         \r
29                         SerializeDeserialize(c);\r
30                         SerializeDeserialize(new SerializedClass[]{c,c});\r
31                         SerializeDeserialize(c.str);\r
32                         SerializeDeserialize(c.m_bool);\r
33                         SerializeDeserialize(c.m_byte);\r
34                         SerializeDeserialize(c.m_bytes);\r
35                         SerializeDeserialize(c.m_decimal);\r
36                         SerializeDeserialize(c.m_double);\r
37                         SerializeDeserialize(c.m_float);\r
38                         SerializeDeserialize(c.m_int);\r
39                         SerializeDeserialize(c.m_long);\r
40                         SerializeDeserialize(c.m_object);\r
41                         SerializeDeserialize(c.m_sbyte);\r
42                         SerializeDeserialize(c.m_short);\r
43                         //SerializeDeserialize(c.m_time);\r
44                         SerializeDeserialize(c.m_timeSpan);\r
45                         SerializeDeserialize(c.m_uint);\r
46                         SerializeDeserialize(c.m_ulong);\r
47                         SerializeDeserialize(c.m_ushort);\r
48                 }\r
49 \r
50                 private void SerializeDeserialize(object obj)\r
51                 {\r
52                         ms = new MemoryStream();\r
53                         Serialize(obj, ms);\r
54                         ms.Position = 0;\r
55                         Object des = Deserialize(ms);\r
56                         Assertion.AssertEquals(obj.GetType(), des.GetType());\r
57                 }\r
58 \r
59                 private void Serialize(object ob, Stream stream)\r
60                 {\r
61                         sf.Serialize(stream, ob);\r
62                 }\r
63 \r
64                 private object Deserialize(Stream stream)\r
65                 {\r
66                         Object obj = sf.Deserialize(stream);\r
67                         return obj;\r
68                 }\r
69         }\r
70         \r
71         [Serializable]\r
72         class SerializedClass\r
73         {\r
74                 public string str = "rrr";\r
75                 public bool m_bool;\r
76                 public sbyte m_sbyte;\r
77                 public byte m_byte;\r
78                 public long m_long;\r
79                 public ulong m_ulong;\r
80                 public int m_int;\r
81                 public uint m_uint;\r
82                 public float m_float;\r
83                 public double m_double;\r
84                 public decimal m_decimal;\r
85                 public short m_short;\r
86                 public ushort m_ushort;\r
87                 public object m_object = new object();\r
88                 public TimeSpan m_timeSpan = TimeSpan.FromTicks(TimeSpan.TicksPerDay);\r
89                 public byte[] m_bytes = new byte[10];\r
90                 //public DateTime m_time = DateTime.Now;\r
91         }\r
92 }\r