1
+ using NUnit . Framework ;
2
+ using System ;
3
+ using System . IO ;
4
+ using System . Text ;
5
+ using System . Xml . Serialization ;
6
+ using XMLSerializationInCsharp_v2 ;
7
+
8
+ namespace XMLSerializationInCsharpTests
9
+ {
10
+ public class XMLSerializationUnitTest_v2
11
+ {
12
+ string xml = @"<?xml version=""1.0"" encoding=""utf-8""?>
13
+ <Patient xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
14
+ <ID>232323</ID>
15
+ <FirstName>John</FirstName>
16
+ <LastName>Doe</LastName>
17
+ <Birthday>1990-12-30T00:00:00</Birthday>
18
+ <RoomNo>310</RoomNo>
19
+ <HomeAddress>
20
+ <Street>12 Main str.</Street>
21
+ <Zip>23322</Zip>
22
+ <City>Boston</City>
23
+ <Country>USA</Country>
24
+ </HomeAddress>
25
+ </Patient>" ;
26
+
27
+ string xmlArr = @"<?xml version=""1.0"" encoding=""utf-8""?>
28
+ <ArrayOfPatient xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">
29
+ <Patient>
30
+ <ID>232323</ID>
31
+ <FirstName>John</FirstName>
32
+ <LastName>Doe</LastName>
33
+ <Birthday>1990-12-30T00:00:00</Birthday>
34
+ <RoomNo>310</RoomNo>
35
+ <HomeAddress>
36
+ <Street>12 Main str.</Street>
37
+ <Zip>23322</Zip>
38
+ <City>Boston</City>
39
+ <Country>USA</Country>
40
+ </HomeAddress>
41
+ </Patient>
42
+ <Patient>
43
+ <ID>454545</ID>
44
+ <FirstName>Jane</FirstName>
45
+ <LastName>Doe</LastName>
46
+ <Birthday>1985-01-02T00:00:00</Birthday>
47
+ <RoomNo>232</RoomNo>
48
+ <HomeAddress>
49
+ <Street>8 Market str.</Street>
50
+ <Zip>XS45E</Zip>
51
+ <City>London</City>
52
+ <Country>UK</Country>
53
+ </HomeAddress>
54
+ </Patient>
55
+ </ArrayOfPatient>" ;
56
+
57
+ [ SetUp ]
58
+ public void Setup ( )
59
+ {
60
+
61
+ }
62
+
63
+ [ Test ]
64
+ public void WhenSerializingAClassWithComplexObject_ThenCorrectXML ( )
65
+ {
66
+ var patient = new Patient ( )
67
+ {
68
+ ID = 232323 ,
69
+ FirstName = "John" ,
70
+ LastName = "Doe" ,
71
+ Birthday = new DateTime ( 1990 , 12 , 30 ) ,
72
+ RoomNo = 310 ,
73
+ HomeAddress = new Address ( )
74
+ {
75
+ Street = "12 Main str." ,
76
+ Zip = "23322" ,
77
+ City = "Boston" ,
78
+ Country = "USA" ,
79
+ }
80
+ } ;
81
+
82
+ using ( MemoryStream stream = new MemoryStream ( ) )
83
+ using ( StreamWriter writer = new StreamWriter ( stream , Encoding . UTF8 ) )
84
+ {
85
+ XmlSerializer serializer = new XmlSerializer ( typeof ( Patient ) ) ;
86
+ serializer . Serialize ( writer , patient ) ;
87
+ Assert . AreEqual ( xml , Encoding . UTF8 . GetString ( stream . ToArray ( ) ) ) ;
88
+ }
89
+ }
90
+
91
+ [ Test ]
92
+ public void WhenSerializingAnArrayOfObjects_ThenCorrectXML ( )
93
+ {
94
+ var arr = new Patient [ ]
95
+ {
96
+ new Patient ( )
97
+ {
98
+ ID = 232323 ,
99
+ FirstName = "John" ,
100
+ LastName = "Doe" ,
101
+ Birthday = new DateTime ( 1990 , 12 , 30 ) ,
102
+ RoomNo = 310 ,
103
+ HomeAddress = new Address ( )
104
+ {
105
+ Street = "12 Main str." ,
106
+ Zip = "23322" ,
107
+ City = "Boston" ,
108
+ Country = "USA" ,
109
+ }
110
+ } ,
111
+ new Patient ( )
112
+ {
113
+ ID = 454545 ,
114
+ FirstName = "Jane" ,
115
+ LastName = "Doe" ,
116
+ Birthday = new DateTime ( 1985 , 1 , 2 ) ,
117
+ RoomNo = 232 ,
118
+ HomeAddress = new Address ( )
119
+ {
120
+ Street = "8 Market str." ,
121
+ Zip = "XS45E" ,
122
+ City = "London" ,
123
+ Country = "UK" ,
124
+ }
125
+ }
126
+ } ;
127
+
128
+ using ( var stream = new MemoryStream ( ) )
129
+ using ( var writer = new StreamWriter ( stream , Encoding . UTF8 ) )
130
+ {
131
+ var serializer = new XmlSerializer ( typeof ( Patient [ ] ) ) ;
132
+ serializer . Serialize ( writer , arr ) ;
133
+ Assert . AreEqual ( xmlArr , Encoding . UTF8 . GetString ( stream . ToArray ( ) ) ) ;
134
+ }
135
+ }
136
+ }
137
+ }
0 commit comments