2 // System.Xml.Serialization.XmlReflectionImporterTests
\r
5 // Erik LeBel (eriklebel@yahoo.ca)
\r
7 // (C) 2003 Erik LeBel
\r
9 // FIXME test some of these with Xml Attributes attached to some members:
\r
10 // do the names get carried over to Element for XmlAttributeAttribute and XmlElementAttribute?
\r
14 using System.Collections;
\r
16 using System.Xml.Schema;
\r
17 using System.Xml.Serialization;
\r
19 using NUnit.Framework;
\r
21 using MonoTests.System.Xml.TestClasses;
\r
23 namespace MonoTests.System.XmlSerialization
\r
26 internal class Debug
\r
28 public static void Print(XmlTypeMapping tm)
\r
30 Console.WriteLine("/XmlTypeMapping:");
\r
31 Console.WriteLine("ElementName: {0} ", tm.ElementName);
\r
32 Console.WriteLine("Namespace: {0} ", tm.Namespace);
\r
33 Console.WriteLine("TypeName: {0} ", tm.TypeName);
\r
34 Console.WriteLine("FullTypeName: {0} ", tm.TypeFullName);
\r
37 public static void Print(XmlMemberMapping mm)
\r
39 Console.WriteLine("/XmlMemberMapping:");
\r
40 Console.WriteLine("Any: {0} ", mm.Any);
\r
41 Console.WriteLine("ElementName: {0} ", mm.ElementName);
\r
42 Console.WriteLine("MemberName: {0} ", mm.MemberName);
\r
43 Console.WriteLine("Namespace: {0} ", mm.Namespace);
\r
44 Console.WriteLine("TypeFullName: {0} ", mm.TypeFullName);
\r
45 Console.WriteLine("TypeName: {0} ", mm.TypeName);
\r
46 Console.WriteLine("TypeNamespace: {0} ", mm.TypeNamespace);
\r
51 public class XmlReflectionImporterTests
\r
53 private const string SomeNamespace = "some:urn";
\r
54 private const string AnotherNamespace = "another:urn";
\r
56 // these Map methods re-create the XmlReflectionImporter at every call.
\r
58 private XmlTypeMapping Map(Type t)
\r
60 XmlReflectionImporter ri = new XmlReflectionImporter();
\r
61 XmlTypeMapping tm = ri.ImportTypeMapping(t);
\r
67 private XmlTypeMapping Map(Type t, XmlRootAttribute root)
\r
69 XmlReflectionImporter ri = new XmlReflectionImporter();
\r
70 XmlTypeMapping tm = ri.ImportTypeMapping(t, root);
\r
75 private XmlTypeMapping Map(Type t, string ns)
\r
77 XmlReflectionImporter ri = new XmlReflectionImporter(ns);
\r
78 XmlTypeMapping tm = ri.ImportTypeMapping(t);
\r
84 private XmlTypeMapping Map (Type t, string ns, XmlRootAttribute root)
\r
86 XmlReflectionImporter ri = new XmlReflectionImporter (ns);
\r
87 XmlTypeMapping tm = ri.ImportTypeMapping (t, root);
\r
92 private XmlTypeMapping Map(Type t, XmlAttributeOverrides overrides)
\r
94 XmlReflectionImporter ri = new XmlReflectionImporter(overrides);
\r
95 XmlTypeMapping tm = ri.ImportTypeMapping(t);
\r
101 private XmlMembersMapping MembersMap(Type t, XmlAttributeOverrides overrides,
\r
102 XmlReflectionMember [] members, bool inContainer)
\r
104 XmlReflectionImporter ri = new XmlReflectionImporter(overrides);
\r
105 XmlMembersMapping mm = ri.ImportMembersMapping(null, null, members, inContainer);
\r
111 public void TestIntTypeMapping()
\r
113 XmlTypeMapping tm = Map(typeof(int));
\r
114 Assert.AreEqual ("int", tm.ElementName, "#1");
\r
115 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
116 Assert.AreEqual ("Int32", tm.TypeName, "#3");
\r
117 Assert.AreEqual ("System.Int32", tm.TypeFullName, "#4");
\r
121 [Category ("NotWorking")]
\r
122 public void TestIntTypeMapping_Array ()
\r
124 XmlTypeMapping tm = Map(typeof(int[]));
\r
125 Assert.AreEqual ("ArrayOfInt", tm.ElementName, "#A1");
\r
126 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
128 Assert.AreEqual ("ArrayOfInt32", tm.TypeName, "#A3");
\r
130 Assert.AreEqual ("Int32[]", tm.TypeName, "#A3");
\r
132 Assert.AreEqual ("System.Int32[]", tm.TypeFullName, "#A4");
\r
134 tm = Map (typeof (int[][]));
\r
135 Assert.AreEqual ("ArrayOfArrayOfInt", tm.ElementName, "#B1");
\r
136 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
138 Assert.AreEqual ("ArrayOfArrayOfInt32", tm.TypeName, "#B3");
\r
140 Assert.AreEqual ("Int32[][]", tm.TypeName, "#B3");
\r
142 Assert.AreEqual ("System.Int32[][]", tm.TypeFullName, "#B4");
\r
144 tm = Map (typeof (int[][][]));
\r
145 Assert.AreEqual ("ArrayOfArrayOfArrayOfInt", tm.ElementName, "#C1");
\r
146 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
148 Assert.AreEqual ("ArrayOfArrayOfArrayOfInt32", tm.TypeName, "#C3");
\r
150 Assert.AreEqual ("Int32[][][]", tm.TypeName, "#C3");
\r
152 Assert.AreEqual ("System.Int32[][][]", tm.TypeFullName, "#C4");
\r
156 public void TestStringTypeMapping()
\r
158 XmlTypeMapping tm = Map(typeof(string));
\r
159 Assert.AreEqual ("string", tm.ElementName, "#1");
\r
160 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
161 Assert.AreEqual ("String", tm.TypeName, "#3");
\r
162 Assert.AreEqual ("System.String", tm.TypeFullName, "#4");
\r
166 [Category ("NotWorking")]
\r
167 public void TestStringTypeMapping_Array ()
\r
169 XmlTypeMapping tm = Map (typeof (string[]));
\r
170 Assert.AreEqual ("ArrayOfString", tm.ElementName, "#A1");
\r
171 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
173 Assert.AreEqual ("ArrayOfString", tm.TypeName, "#A3");
\r
175 Assert.AreEqual ("String[]", tm.TypeName, "#A3");
\r
177 Assert.AreEqual ("System.String[]", tm.TypeFullName, "#A4");
\r
179 tm = Map (typeof (string[][]));
\r
180 Assert.AreEqual ("ArrayOfArrayOfString", tm.ElementName, "#B1");
\r
181 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
183 Assert.AreEqual ("ArrayOfArrayOfString", tm.TypeName, "#B3");
\r
185 Assert.AreEqual ("String[][]", tm.TypeName, "#B3");
\r
187 Assert.AreEqual ("System.String[][]", tm.TypeFullName, "#B4");
\r
189 tm = Map (typeof (string[][][]));
\r
190 Assert.AreEqual ("ArrayOfArrayOfArrayOfString", tm.ElementName, "#C1");
\r
191 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
193 Assert.AreEqual ("ArrayOfArrayOfArrayOfString", tm.TypeName, "#C3");
\r
195 Assert.AreEqual ("String[][][]", tm.TypeName, "#C3");
\r
197 Assert.AreEqual ("System.String[][][]", tm.TypeFullName, "#C4");
\r
201 public void TestObjectTypeMapping()
\r
203 XmlTypeMapping tm = Map(typeof(object));
\r
204 Assert.AreEqual ("anyType", tm.ElementName, "#1");
\r
205 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
206 Assert.AreEqual ("Object", tm.TypeName, "#3");
\r
207 Assert.AreEqual ("System.Object", tm.TypeFullName, "#4");
\r
211 [Category ("NotWorking")]
\r
212 public void TestObjectTypeMapping_Array ()
\r
214 XmlTypeMapping tm = Map (typeof (object[]));
\r
215 Assert.AreEqual ("ArrayOfAnyType", tm.ElementName, "#A1");
\r
216 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
218 Assert.AreEqual ("ArrayOfObject", tm.TypeName, "#A3");
\r
220 Assert.AreEqual ("Object[]", tm.TypeName, "#A3");
\r
222 Assert.AreEqual ("System.Object[]", tm.TypeFullName, "#A4");
\r
224 tm = Map (typeof (object[][]));
\r
225 Assert.AreEqual ("ArrayOfArrayOfAnyType", tm.ElementName, "#B1");
\r
226 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
228 Assert.AreEqual ("ArrayOfArrayOfObject", tm.TypeName, "#B3");
\r
230 Assert.AreEqual ("Object[][]", tm.TypeName, "#B3");
\r
232 Assert.AreEqual ("System.Object[][]", tm.TypeFullName, "#B4");
\r
234 tm = Map (typeof (object[][][]));
\r
235 Assert.AreEqual ("ArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#C1");
\r
236 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
238 Assert.AreEqual ("ArrayOfArrayOfArrayOfObject", tm.TypeName, "#C3");
\r
240 Assert.AreEqual ("Object[][][]", tm.TypeName, "#C3");
\r
242 Assert.AreEqual ("System.Object[][][]", tm.TypeFullName, "#C4");
\r
246 public void TestByteTypeMapping()
\r
248 XmlTypeMapping tm = Map(typeof(byte));
\r
249 Assert.AreEqual ("unsignedByte", tm.ElementName, "#1");
\r
250 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
251 Assert.AreEqual ("Byte", tm.TypeName, "#3");
\r
252 Assert.AreEqual ("System.Byte", tm.TypeFullName, "#4");
\r
256 [Category ("NotWorking")]
\r
257 public void TestByteTypeMapping_Array ()
\r
259 XmlTypeMapping tm = Map(typeof(byte[]));
\r
260 Assert.AreEqual ("base64Binary", tm.ElementName, "#A1");
\r
261 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
262 Assert.AreEqual ("Byte[]", tm.TypeName, "#A3");
\r
263 Assert.AreEqual ("System.Byte[]", tm.TypeFullName, "#A4");
\r
265 tm = Map (typeof (byte[][]));
\r
266 Assert.AreEqual ("ArrayOfBase64Binary", tm.ElementName, "#B1");
\r
267 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
269 Assert.AreEqual ("ArrayOfArrayOfByte", tm.TypeName, "#B3");
\r
271 Assert.AreEqual ("Byte[][]", tm.TypeName, "#B3");
\r
273 Assert.AreEqual ("System.Byte[][]", tm.TypeFullName, "#B4");
\r
275 tm = Map (typeof (byte[][][]));
\r
276 Assert.AreEqual ("ArrayOfArrayOfBase64Binary", tm.ElementName, "#C1");
\r
277 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
279 Assert.AreEqual ("ArrayOfArrayOfArrayOfByte", tm.TypeName, "#C3");
\r
281 Assert.AreEqual ("Byte[][][]", tm.TypeName, "#C3");
\r
283 Assert.AreEqual ("System.Byte[][][]", tm.TypeFullName, "#C4");
\r
287 public void TestBoolTypeMapping()
\r
289 XmlTypeMapping tm = Map(typeof(bool));
\r
290 Assert.AreEqual ("boolean", tm.ElementName, "#1");
\r
291 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
292 Assert.AreEqual ("Boolean", tm.TypeName, "#3");
\r
293 Assert.AreEqual ("System.Boolean", tm.TypeFullName, "#4");
\r
297 public void TestShortTypeMapping()
\r
299 XmlTypeMapping tm = Map(typeof(short));
\r
300 Assert.AreEqual ("short", tm.ElementName, "#1");
\r
301 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
302 Assert.AreEqual ("Int16", tm.TypeName, "#3");
\r
303 Assert.AreEqual ("System.Int16", tm.TypeFullName, "#4");
\r
307 public void TestUnsignedShortTypeMapping()
\r
309 XmlTypeMapping tm = Map(typeof(ushort));
\r
310 Assert.AreEqual ("unsignedShort", tm.ElementName, "#1");
\r
311 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
312 Assert.AreEqual ("UInt16", tm.TypeName, "#3");
\r
313 Assert.AreEqual ("System.UInt16", tm.TypeFullName, "#4");
\r
317 public void TestUIntTypeMapping()
\r
319 XmlTypeMapping tm = Map(typeof(uint));
\r
320 Assert.AreEqual ("unsignedInt", tm.ElementName, "#1");
\r
321 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
322 Assert.AreEqual ("UInt32", tm.TypeName, "#3");
\r
323 Assert.AreEqual ("System.UInt32", tm.TypeFullName, "#4");
\r
327 public void TestLongTypeMapping()
\r
329 XmlTypeMapping tm = Map(typeof(long));
\r
330 Assert.AreEqual ("long", tm.ElementName, "#1");
\r
331 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
332 Assert.AreEqual ("Int64", tm.TypeName, "#3");
\r
333 Assert.AreEqual ("System.Int64", tm.TypeFullName, "#4");
\r
337 public void TestULongTypeMapping()
\r
339 XmlTypeMapping tm = Map(typeof(ulong));
\r
340 Assert.AreEqual ("unsignedLong", tm.ElementName, "#1");
\r
341 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
342 Assert.AreEqual ("UInt64", tm.TypeName, "#3");
\r
343 Assert.AreEqual ("System.UInt64", tm.TypeFullName, "#4");
\r
347 public void TestFloatTypeMapping()
\r
349 XmlTypeMapping tm = Map(typeof(float));
\r
350 Assert.AreEqual ("float", tm.ElementName, "#1");
\r
351 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
352 Assert.AreEqual ("Single", tm.TypeName, "#3");
\r
353 Assert.AreEqual ("System.Single", tm.TypeFullName, "#4");
\r
357 public void TestDoubleTypeMapping()
\r
359 XmlTypeMapping tm = Map(typeof(double));
\r
360 Assert.AreEqual ("double", tm.ElementName, "#1");
\r
361 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
362 Assert.AreEqual ("Double", tm.TypeName, "#3");
\r
363 Assert.AreEqual ("System.Double", tm.TypeFullName, "#4");
\r
367 public void TestDateTimeTypeMapping()
\r
369 XmlTypeMapping tm = Map(typeof(DateTime));
\r
370 Assert.AreEqual ("dateTime", tm.ElementName, "#1");
\r
371 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
372 Assert.AreEqual ("DateTime", tm.TypeName, "#3");
\r
373 Assert.AreEqual ("System.DateTime", tm.TypeFullName, "#4");
\r
377 [Category ("NotWorking")]
\r
378 public void TestDateTimeTypeMapping_Array ()
\r
380 XmlTypeMapping tm = Map (typeof (DateTime[]));
\r
381 Assert.AreEqual ("ArrayOfDateTime", tm.ElementName, "#A1");
\r
382 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
384 Assert.AreEqual ("ArrayOfDateTime", tm.TypeName, "#A3");
\r
386 Assert.AreEqual ("DateTime[]", tm.TypeName, "#A3");
\r
388 Assert.AreEqual ("System.DateTime[]", tm.TypeFullName, "#A4");
\r
390 tm = Map (typeof (DateTime[][]));
\r
391 Assert.AreEqual ("ArrayOfArrayOfDateTime", tm.ElementName, "#B1");
\r
392 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
394 Assert.AreEqual ("ArrayOfArrayOfDateTime", tm.TypeName, "#B3");
\r
396 Assert.AreEqual ("DateTime[][]", tm.TypeName, "#B3");
\r
398 Assert.AreEqual ("System.DateTime[][]", tm.TypeFullName, "#B4");
\r
400 tm = Map (typeof (DateTime[][][]));
\r
401 Assert.AreEqual ("ArrayOfArrayOfArrayOfDateTime", tm.ElementName, "#C1");
\r
402 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
404 Assert.AreEqual ("ArrayOfArrayOfArrayOfDateTime", tm.TypeName, "#C3");
\r
406 Assert.AreEqual ("DateTime[][][]", tm.TypeName, "#C3");
\r
408 Assert.AreEqual ("System.DateTime[][][]", tm.TypeFullName, "#C4");
\r
412 public void TestGuidTypeMapping()
\r
414 XmlTypeMapping tm = Map(typeof(Guid));
\r
415 Assert.AreEqual ("guid", tm.ElementName, "#1");
\r
416 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
417 Assert.AreEqual ("Guid", tm.TypeName, "#3");
\r
418 Assert.AreEqual ("System.Guid", tm.TypeFullName, "#4");
\r
422 [Category ("NotWorking")]
\r
423 public void TestGuidTypeMapping_Array ()
\r
425 XmlTypeMapping tm = Map (typeof (Guid[]));
\r
426 Assert.AreEqual ("ArrayOfGuid", tm.ElementName, "#A1");
\r
427 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
429 Assert.AreEqual ("ArrayOfGuid", tm.TypeName, "#A3");
\r
431 Assert.AreEqual ("Guid[]", tm.TypeName, "#A3");
\r
433 Assert.AreEqual ("System.Guid[]", tm.TypeFullName, "#A4");
\r
435 tm = Map (typeof (Guid[][]));
\r
436 Assert.AreEqual ("ArrayOfArrayOfGuid", tm.ElementName, "#B1");
\r
437 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
439 Assert.AreEqual ("ArrayOfArrayOfGuid", tm.TypeName, "#B3");
\r
441 Assert.AreEqual ("Guid[][]", tm.TypeName, "#B3");
\r
443 Assert.AreEqual ("System.Guid[][]", tm.TypeFullName, "#B4");
\r
445 tm = Map (typeof (Guid[][][]));
\r
446 Assert.AreEqual ("ArrayOfArrayOfArrayOfGuid", tm.ElementName, "#C1");
\r
447 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
449 Assert.AreEqual ("ArrayOfArrayOfArrayOfGuid", tm.TypeName, "#C3");
\r
451 Assert.AreEqual ("Guid[][][]", tm.TypeName, "#C3");
\r
453 Assert.AreEqual ("System.Guid[][][]", tm.TypeFullName, "#C4");
\r
457 public void TestDecimalTypeMapping()
\r
459 XmlTypeMapping tm = Map(typeof(decimal));
\r
460 Assert.AreEqual ("decimal", tm.ElementName, "#1");
\r
461 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
462 Assert.AreEqual ("Decimal", tm.TypeName, "#3");
\r
463 Assert.AreEqual ("System.Decimal", tm.TypeFullName, "#4");
\r
467 public void TestXmlQualifiedNameTypeMapping()
\r
469 XmlTypeMapping tm = Map(typeof(XmlQualifiedName));
\r
470 Assert.AreEqual ("QName", tm.ElementName, "#1");
\r
471 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
472 Assert.AreEqual ("XmlQualifiedName", tm.TypeName, "#3");
\r
473 Assert.AreEqual ("System.Xml.XmlQualifiedName", tm.TypeFullName, "#4");
\r
477 public void TestSByteTypeMapping()
\r
479 XmlTypeMapping tm = Map(typeof(sbyte));
\r
480 Assert.AreEqual ("byte", tm.ElementName, "#1");
\r
481 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
482 Assert.AreEqual ("SByte", tm.TypeName, "#3");
\r
483 Assert.AreEqual ("System.SByte", tm.TypeFullName, "#4");
\r
488 public void TestCharTypeMapping()
\r
490 XmlTypeMapping tm = Map(typeof(char));
\r
491 Assert.AreEqual ("char", tm.ElementName, "#1");
\r
492 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
493 Assert.AreEqual ("Char", tm.TypeName, "#3");
\r
494 Assert.AreEqual ("System.Char", tm.TypeFullName, "#4");
\r
498 [Category ("NotWorking")]
\r
499 public void TestCharTypeMapping_Array ()
\r
501 XmlTypeMapping tm = Map (typeof (char[]));
\r
502 Assert.AreEqual ("ArrayOfChar", tm.ElementName, "#A1");
\r
503 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
505 Assert.AreEqual ("ArrayOfChar", tm.TypeName, "#A3");
\r
507 Assert.AreEqual ("Char[]", tm.TypeName, "#A3");
\r
509 Assert.AreEqual ("System.Char[]", tm.TypeFullName, "#A4");
\r
511 tm = Map (typeof (char[][]));
\r
512 Assert.AreEqual ("ArrayOfArrayOfChar", tm.ElementName, "#B1");
\r
513 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
515 Assert.AreEqual ("ArrayOfArrayOfChar", tm.TypeName, "#B3");
\r
517 Assert.AreEqual ("Char[][]", tm.TypeName, "#B3");
\r
519 Assert.AreEqual ("System.Char[][]", tm.TypeFullName, "#B4");
\r
521 tm = Map (typeof (char[][][]));
\r
522 Assert.AreEqual ("ArrayOfArrayOfArrayOfChar", tm.ElementName, "#C1");
\r
523 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
525 Assert.AreEqual ("ArrayOfArrayOfArrayOfChar", tm.TypeName, "#C3");
\r
527 Assert.AreEqual ("Char[][][]", tm.TypeName, "#C3");
\r
529 Assert.AreEqual ("System.Char[][][]", tm.TypeFullName, "#C4");
\r
533 [Category ("NotWorking")]
\r
534 public void TestXmlNodeTypeMapping ()
\r
536 Type type = typeof (XmlNode);
\r
538 XmlTypeMapping tm = Map (type);
\r
539 Assert.AreEqual (string.Empty, tm.ElementName, "#A1");
\r
540 Assert.IsNull (tm.Namespace, "#A2");
\r
541 Assert.AreEqual ("XmlNode", tm.TypeName, "#A3");
\r
542 Assert.AreEqual ("System.Xml.XmlNode", tm.TypeFullName, "#A4");
\r
544 tm = Map (type, AnotherNamespace);
\r
545 Assert.AreEqual (string.Empty, tm.ElementName, "#B1");
\r
546 Assert.IsNull (tm.Namespace, "#B2");
\r
547 Assert.AreEqual ("XmlNode", tm.TypeName, "#B3");
\r
548 Assert.AreEqual ("System.Xml.XmlNode", tm.TypeFullName, "#B4");
\r
550 XmlRootAttribute root = new XmlRootAttribute ("somename");
\r
551 root.Namespace = SomeNamespace;
\r
552 tm = Map (type, root);
\r
553 Assert.AreEqual ("somename", tm.ElementName, "#C1");
\r
554 Assert.IsNull (tm.Namespace, "#C2");
\r
555 Assert.AreEqual ("XmlNode", tm.TypeName, "#C3");
\r
556 Assert.AreEqual ("System.Xml.XmlNode", tm.TypeFullName, "#C4");
\r
558 tm = Map (type, AnotherNamespace, root);
\r
559 Assert.AreEqual ("somename", tm.ElementName, "#D1");
\r
560 Assert.IsNull (tm.Namespace, "#D2");
\r
561 Assert.AreEqual ("XmlNode", tm.TypeName, "#D3");
\r
562 Assert.AreEqual ("System.Xml.XmlNode", tm.TypeFullName, "#D4");
\r
564 root.Namespace = null;
\r
565 tm = Map (type, root);
\r
566 Assert.AreEqual ("somename", tm.ElementName, "#E1");
\r
567 Assert.IsNull (tm.Namespace, "#E2");
\r
568 Assert.AreEqual ("XmlNode", tm.TypeName, "#E3");
\r
569 Assert.AreEqual ("System.Xml.XmlNode", tm.TypeFullName, "#E4");
\r
571 tm = Map (type, AnotherNamespace, root);
\r
572 Assert.AreEqual ("somename", tm.ElementName, "#F1");
\r
573 Assert.IsNull (tm.Namespace, "#F2");
\r
574 Assert.AreEqual ("XmlNode", tm.TypeName, "#F3");
\r
575 Assert.AreEqual ("System.Xml.XmlNode", tm.TypeFullName, "#F4");
\r
579 [Category ("NotWorking")]
\r
580 public void TestXmlElementTypeMapping ()
\r
582 Type type = typeof (XmlElement);
\r
584 XmlTypeMapping tm = Map (type);
\r
585 Assert.AreEqual (string.Empty, tm.ElementName, "#1");
\r
586 Assert.IsNull (tm.Namespace, "#2");
\r
587 Assert.AreEqual ("XmlElement", tm.TypeName, "#3");
\r
588 Assert.AreEqual ("System.Xml.XmlElement", tm.TypeFullName, "#4");
\r
590 tm = Map (type, AnotherNamespace);
\r
591 Assert.AreEqual (string.Empty, tm.ElementName, "#B1");
\r
592 Assert.IsNull (tm.Namespace, "#B2");
\r
593 Assert.AreEqual ("XmlElement", tm.TypeName, "#B3");
\r
594 Assert.AreEqual ("System.Xml.XmlElement", tm.TypeFullName, "#B4");
\r
596 XmlRootAttribute root = new XmlRootAttribute ("somename");
\r
597 root.Namespace = SomeNamespace;
\r
598 tm = Map (type, root);
\r
599 Assert.AreEqual ("somename", tm.ElementName, "#C1");
\r
600 Assert.IsNull (tm.Namespace, "#C2");
\r
601 Assert.AreEqual ("XmlElement", tm.TypeName, "#C3");
\r
602 Assert.AreEqual ("System.Xml.XmlElement", tm.TypeFullName, "#C4");
\r
604 tm = Map (type, AnotherNamespace, root);
\r
605 Assert.AreEqual ("somename", tm.ElementName, "#D1");
\r
606 Assert.IsNull (tm.Namespace, "#D2");
\r
607 Assert.AreEqual ("XmlElement", tm.TypeName, "#D3");
\r
608 Assert.AreEqual ("System.Xml.XmlElement", tm.TypeFullName, "#D4");
\r
610 root.Namespace = null;
\r
611 tm = Map (type, root);
\r
612 Assert.AreEqual ("somename", tm.ElementName, "#E1");
\r
613 Assert.IsNull (tm.Namespace, "#E2");
\r
614 Assert.AreEqual ("XmlElement", tm.TypeName, "#E3");
\r
615 Assert.AreEqual ("System.Xml.XmlElement", tm.TypeFullName, "#E4");
\r
617 tm = Map (type, AnotherNamespace, root);
\r
618 Assert.AreEqual ("somename", tm.ElementName, "#F1");
\r
619 Assert.IsNull (tm.Namespace, "#F2");
\r
620 Assert.AreEqual ("XmlElement", tm.TypeName, "#F3");
\r
621 Assert.AreEqual ("System.Xml.XmlElement", tm.TypeFullName, "#F4");
\r
625 [Category ("NotWorking")]
\r
626 public void TestXmlNotationTypeMapping ()
\r
628 Type type = typeof (XmlNotation);
\r
630 XmlTypeMapping tm = Map (type);
\r
631 Assert.AreEqual (string.Empty, tm.ElementName, "#1");
\r
632 Assert.IsNull (tm.Namespace, "#2");
\r
633 Assert.AreEqual ("XmlNotation", tm.TypeName, "#3");
\r
634 Assert.AreEqual ("System.Xml.XmlNotation", tm.TypeFullName, "#4");
\r
636 tm = Map (type, AnotherNamespace);
\r
637 Assert.AreEqual (string.Empty, tm.ElementName, "#B1");
\r
638 Assert.IsNull (tm.Namespace, "#B2");
\r
639 Assert.AreEqual ("XmlNotation", tm.TypeName, "#B3");
\r
640 Assert.AreEqual ("System.Xml.XmlNotation", tm.TypeFullName, "#B4");
\r
642 XmlRootAttribute root = new XmlRootAttribute ("somename");
\r
643 root.Namespace = SomeNamespace;
\r
644 tm = Map (type, root);
\r
645 Assert.AreEqual ("somename", tm.ElementName, "#C1");
\r
646 Assert.IsNull (tm.Namespace, "#C2");
\r
647 Assert.AreEqual ("XmlNotation", tm.TypeName, "#C3");
\r
648 Assert.AreEqual ("System.Xml.XmlNotation", tm.TypeFullName, "#C4");
\r
650 tm = Map (type, AnotherNamespace, root);
\r
651 Assert.AreEqual ("somename", tm.ElementName, "#D1");
\r
652 Assert.IsNull (tm.Namespace, "#D2");
\r
653 Assert.AreEqual ("XmlNotation", tm.TypeName, "#D3");
\r
654 Assert.AreEqual ("System.Xml.XmlNotation", tm.TypeFullName, "#D4");
\r
656 root.Namespace = null;
\r
657 tm = Map (type, root);
\r
658 Assert.AreEqual ("somename", tm.ElementName, "#E1");
\r
659 Assert.IsNull (tm.Namespace, "#E2");
\r
660 Assert.AreEqual ("XmlNotation", tm.TypeName, "#E3");
\r
661 Assert.AreEqual ("System.Xml.XmlNotation", tm.TypeFullName, "#E4");
\r
663 tm = Map (type, AnotherNamespace, root);
\r
664 Assert.AreEqual ("somename", tm.ElementName, "#F1");
\r
665 Assert.IsNull (tm.Namespace, "#F2");
\r
666 Assert.AreEqual ("XmlNotation", tm.TypeName, "#F3");
\r
667 Assert.AreEqual ("System.Xml.XmlNotation", tm.TypeFullName, "#F4");
\r
671 [Category ("NotWorking")]
\r
672 public void TestXmlSerializableTypeMapping ()
\r
674 XmlTypeMapping tm = Map (typeof (Employee));
\r
675 Assert.AreEqual ("Employee", tm.ElementName, "#1");
\r
676 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
677 Assert.AreEqual ("Employee", tm.TypeName, "#3");
\r
678 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.Employee", tm.TypeFullName, "#4");
\r
682 [Category ("NotWorking")]
\r
683 public void TestXmlSerializableTypeMapping_Array ()
\r
685 XmlTypeMapping tm = Map (typeof (Employee[]));
\r
686 Assert.AreEqual ("ArrayOfEmployee", tm.ElementName, "#A1");
\r
687 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
689 Assert.AreEqual ("ArrayOfEmployee", tm.TypeName, "#A3");
\r
691 Assert.AreEqual ("Employee[]", tm.TypeName, "#A3");
\r
693 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.Employee[]", tm.TypeFullName, "#A4");
\r
695 tm = Map (typeof (Employee[][]));
\r
696 Assert.AreEqual ("ArrayOfArrayOfEmployee", tm.ElementName, "#B1");
\r
697 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
699 Assert.AreEqual ("ArrayOfArrayOfEmployee", tm.TypeName, "#B3");
\r
701 Assert.AreEqual ("Employee[][]", tm.TypeName, "#B3");
\r
703 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.Employee[][]", tm.TypeFullName, "#B4");
\r
705 tm = Map (typeof (Employee[][][]));
\r
706 Assert.AreEqual ("ArrayOfArrayOfArrayOfEmployee", tm.ElementName, "#C1");
\r
707 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
709 Assert.AreEqual ("ArrayOfArrayOfArrayOfEmployee", tm.TypeName, "#C3");
\r
711 Assert.AreEqual ("Employee[][][]", tm.TypeName, "#C3");
\r
713 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.Employee[][][]", tm.TypeFullName, "#C4");
\r
717 [Category ("NotWorking")]
\r
718 public void TestClassTypeMapping_NestedStruct ()
\r
720 XmlTypeMapping tm = Map (typeof (NestedStruct));
\r
721 Assert.AreEqual ("NestedStruct", tm.ElementName, "#1");
\r
722 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
723 Assert.AreEqual ("NestedStruct", tm.TypeName, "#3");
\r
724 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.NestedStruct", tm.TypeFullName, "#4");
\r
728 [ExpectedException (typeof (ArgumentNullException))]
\r
729 public void TestNullTypeMapping()
\r
735 public void TestIntTypeMappingWithDefaultNamespaces()
\r
737 XmlTypeMapping tm = Map(typeof(int), SomeNamespace);
\r
738 Assert.AreEqual ("int", tm.ElementName, "#1");
\r
739 Assert.AreEqual (SomeNamespace, tm.Namespace, "#2");
\r
740 Assert.AreEqual ("Int32", tm.TypeName, "#3");
\r
741 Assert.AreEqual ("System.Int32", tm.TypeFullName, "#4");
\r
745 [Category ("NotWorking")]
\r
746 public void TestStructTypeMapping ()
\r
748 XmlTypeMapping tm = Map (typeof (TimeSpan));
\r
749 Assert.AreEqual ("TimeSpan", tm.ElementName, "#1");
\r
750 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
751 Assert.AreEqual ("TimeSpan", tm.TypeName, "#3");
\r
752 Assert.AreEqual ("System.TimeSpan", tm.TypeFullName, "#4");
\r
756 [Category ("NotWorking")]
\r
757 public void TestStructTypeMapping_Array ()
\r
759 XmlTypeMapping tm = Map (typeof (TimeSpan[]));
\r
760 Assert.AreEqual ("ArrayOfTimeSpan", tm.ElementName, "#A1");
\r
761 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
763 Assert.AreEqual ("ArrayOfTimeSpan", tm.TypeName, "#A3");
\r
765 Assert.AreEqual ("TimeSpan[]", tm.TypeName, "#A3");
\r
767 Assert.AreEqual ("System.TimeSpan[]", tm.TypeFullName, "#A4");
\r
769 tm = Map (typeof (TimeSpan[][]));
\r
770 Assert.AreEqual ("ArrayOfArrayOfTimeSpan", tm.ElementName, "#B1");
\r
771 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
773 Assert.AreEqual ("ArrayOfArrayOfTimeSpan", tm.TypeName, "#B3");
\r
775 Assert.AreEqual ("TimeSpan[][]", tm.TypeName, "#B3");
\r
777 Assert.AreEqual ("System.TimeSpan[][]", tm.TypeFullName, "#B4");
\r
779 tm = Map (typeof (TimeSpan[][][]));
\r
780 Assert.AreEqual ("ArrayOfArrayOfArrayOfTimeSpan", tm.ElementName, "#C1");
\r
781 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
783 Assert.AreEqual ("ArrayOfArrayOfArrayOfTimeSpan", tm.TypeName, "#C3");
\r
785 Assert.AreEqual ("TimeSpan[][][]", tm.TypeName, "#C3");
\r
787 Assert.AreEqual ("System.TimeSpan[][][]", tm.TypeFullName, "#C4");
\r
791 [Category ("NotWorking")]
\r
792 public void TestEnumTypeMapping ()
\r
794 XmlTypeMapping tm = Map (typeof (AttributeTargets));
\r
795 Assert.AreEqual ("AttributeTargets", tm.ElementName, "#1");
\r
796 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
797 Assert.AreEqual ("AttributeTargets", tm.TypeName, "#3");
\r
798 Assert.AreEqual ("System.AttributeTargets", tm.TypeFullName, "#4");
\r
802 [Category ("NotWorking")]
\r
803 public void TestEnumTypeMapping_Array ()
\r
805 XmlTypeMapping tm = Map (typeof (AttributeTargets[]));
\r
806 Assert.AreEqual ("ArrayOfAttributeTargets", tm.ElementName, "#A1");
\r
807 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
809 Assert.AreEqual ("ArrayOfAttributeTargets", tm.TypeName, "#A3");
\r
811 Assert.AreEqual ("AttributeTargets[]", tm.TypeName, "#A3");
\r
813 Assert.AreEqual ("System.AttributeTargets[]", tm.TypeFullName, "#A4");
\r
815 tm = Map (typeof (AttributeTargets[][]));
\r
816 Assert.AreEqual ("ArrayOfArrayOfAttributeTargets", tm.ElementName, "#B1");
\r
817 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
819 Assert.AreEqual ("ArrayOfArrayOfAttributeTargets", tm.TypeName, "#B3");
\r
821 Assert.AreEqual ("AttributeTargets[][]", tm.TypeName, "#B3");
\r
823 Assert.AreEqual ("System.AttributeTargets[][]", tm.TypeFullName, "#B4");
\r
825 tm = Map (typeof (AttributeTargets[][][]));
\r
826 Assert.AreEqual ("ArrayOfArrayOfArrayOfAttributeTargets", tm.ElementName, "#C1");
\r
827 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
829 Assert.AreEqual ("ArrayOfArrayOfArrayOfAttributeTargets", tm.TypeName, "#C3");
\r
831 Assert.AreEqual ("AttributeTargets[][][]", tm.TypeName, "#C3");
\r
833 Assert.AreEqual ("System.AttributeTargets[][][]", tm.TypeFullName, "#C4");
\r
837 public void TestClassTypeMapping()
\r
839 XmlTypeMapping tm = Map (typeof (SimpleClass));
\r
840 Assert.AreEqual ("SimpleClass", tm.ElementName, "#1");
\r
841 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
842 Assert.AreEqual ("SimpleClass", tm.TypeName, "#3");
\r
843 Assert.AreEqual ("MonoTests.System.Xml.TestClasses.SimpleClass", tm.TypeFullName, "#4");
\r
847 [Category ("NotWorking")]
\r
848 public void TestClassTypeMapping_Array ()
\r
850 XmlTypeMapping tm = Map (typeof (SimpleClass[]));
\r
851 Assert.AreEqual ("ArrayOfSimpleClass", tm.ElementName, "#A1");
\r
852 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
854 Assert.AreEqual ("ArrayOfSimpleClass", tm.TypeName, "#A3");
\r
856 Assert.AreEqual ("SimpleClass[]", tm.TypeName, "#A3");
\r
858 Assert.AreEqual ("MonoTests.System.Xml.TestClasses.SimpleClass[]", tm.TypeFullName, "#A4");
\r
860 tm = Map (typeof (SimpleClass[][]));
\r
861 Assert.AreEqual ("ArrayOfArrayOfSimpleClass", tm.ElementName, "#B1");
\r
862 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
864 Assert.AreEqual ("ArrayOfArrayOfSimpleClass", tm.TypeName, "#B3");
\r
866 Assert.AreEqual ("SimpleClass[][]", tm.TypeName, "#B3");
\r
868 Assert.AreEqual ("MonoTests.System.Xml.TestClasses.SimpleClass[][]", tm.TypeFullName, "#B4");
\r
870 tm = Map (typeof (SimpleClass[][][]));
\r
871 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClass", tm.ElementName, "#C1");
\r
872 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
874 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClass", tm.TypeName, "#C3");
\r
876 Assert.AreEqual ("SimpleClass[][][]", tm.TypeName, "#C3");
\r
878 Assert.AreEqual ("MonoTests.System.Xml.TestClasses.SimpleClass[][][]", tm.TypeFullName, "#C4");
\r
882 [Category ("NotWorking")]
\r
883 public void TypeMapping_IEnumerable_SimpleClass ()
\r
885 XmlTypeMapping tm = Map (typeof (SimpleClassEnumerable));
\r
886 Assert.AreEqual ("ArrayOfSimpleClass", tm.ElementName, "#1");
\r
887 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
888 Assert.AreEqual ("SimpleClassEnumerable", tm.TypeName, "#3");
\r
889 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerable", tm.TypeFullName, "#4");
\r
891 tm = Map (typeof (SimpleClassEnumerable[]));
\r
892 Assert.AreEqual ("ArrayOfArrayOfSimpleClass", tm.ElementName, "#A1");
\r
893 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
895 Assert.AreEqual ("ArrayOfSimpleClassEnumerable", tm.TypeName, "#A3");
\r
897 Assert.AreEqual ("SimpleClassEnumerable[]", tm.TypeName, "#A3");
\r
899 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerable[]", tm.TypeFullName, "#A4");
\r
901 tm = Map (typeof (SimpleClassEnumerable[][]));
\r
902 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClass", tm.ElementName, "#B1");
\r
903 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
905 Assert.AreEqual ("ArrayOfArrayOfSimpleClassEnumerable", tm.TypeName, "#B3");
\r
907 Assert.AreEqual ("SimpleClassEnumerable[][]", tm.TypeName, "#B3");
\r
909 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerable[][]", tm.TypeFullName, "#B4");
\r
911 tm = Map (typeof (SimpleClassEnumerable[][][]));
\r
912 Assert.AreEqual ("ArrayOfArrayOfArrayOfArrayOfSimpleClass", tm.ElementName, "#C1");
\r
913 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
915 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClassEnumerable", tm.TypeName, "#C3");
\r
917 Assert.AreEqual ("SimpleClassEnumerable[][][]", tm.TypeName, "#C3");
\r
919 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerable[][][]", tm.TypeFullName, "#C4");
\r
923 [Category ("NotWorking")]
\r
924 public void TypeMapping_IEnumerable_Object ()
\r
926 XmlTypeMapping tm = Map (typeof (ObjectEnumerable));
\r
927 Assert.AreEqual ("ArrayOfAnyType", tm.ElementName, "#1");
\r
928 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
929 Assert.AreEqual ("ObjectEnumerable", tm.TypeName, "#3");
\r
930 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectEnumerable", tm.TypeFullName, "#4");
\r
932 tm = Map (typeof (ObjectEnumerable[]));
\r
933 Assert.AreEqual ("ArrayOfArrayOfAnyType", tm.ElementName, "#A1");
\r
934 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
936 Assert.AreEqual ("ArrayOfObjectEnumerable", tm.TypeName, "#A3");
\r
938 Assert.AreEqual ("ObjectEnumerable[]", tm.TypeName, "#A3");
\r
940 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectEnumerable[]", tm.TypeFullName, "#A4");
\r
942 tm = Map (typeof (ObjectEnumerable[][]));
\r
943 Assert.AreEqual ("ArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#B1");
\r
944 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
946 Assert.AreEqual ("ArrayOfArrayOfObjectEnumerable", tm.TypeName, "#B3");
\r
948 Assert.AreEqual ("ObjectEnumerable[][]", tm.TypeName, "#B3");
\r
950 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectEnumerable[][]", tm.TypeFullName, "#B4");
\r
952 tm = Map (typeof (ObjectEnumerable[][][]));
\r
953 Assert.AreEqual ("ArrayOfArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#C1");
\r
954 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
956 Assert.AreEqual ("ArrayOfArrayOfArrayOfObjectEnumerable", tm.TypeName, "#C3");
\r
958 Assert.AreEqual ("ObjectEnumerable[][][]", tm.TypeName, "#C3");
\r
960 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectEnumerable[][][]", tm.TypeFullName, "#C4");
\r
964 [Category ("NotWorking")]
\r
965 [ExpectedException (typeof (InvalidOperationException))]
\r
966 public void TypeMapping_IEnumarable_Object_NoMatchingAddMethod ()
\r
968 Map (typeof (ObjectEnumerableNoMatchingAddMethod));
\r
972 [Category ("NotWorking")]
\r
973 [ExpectedException (typeof (InvalidOperationException))]
\r
974 public void TypeMapping_IEnumarable_Object_NoMatchingAddMethod_Array ()
\r
976 Map (typeof (ObjectEnumerableNoMatchingAddMethod[]));
\r
980 [Category ("NotWorking")]
\r
981 public void TypeMapping_IEnumerable_SimpleClass_PrivateCurrent ()
\r
983 XmlTypeMapping tm = Map (typeof (SimpleClassEnumerablePrivateCurrent));
\r
984 Assert.AreEqual ("ArrayOfAnyType", tm.ElementName, "#1");
\r
985 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
986 Assert.AreEqual ("SimpleClassEnumerablePrivateCurrent", tm.TypeName, "#3");
\r
987 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateCurrent", tm.TypeFullName, "#4");
\r
989 tm = Map (typeof (SimpleClassEnumerablePrivateCurrent[]));
\r
990 Assert.AreEqual ("ArrayOfArrayOfAnyType", tm.ElementName, "#A1");
\r
991 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
993 Assert.AreEqual ("ArrayOfSimpleClassEnumerablePrivateCurrent", tm.TypeName, "#A3");
\r
995 Assert.AreEqual ("SimpleClassEnumerablePrivateCurrent[]", tm.TypeName, "#A3");
\r
997 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateCurrent[]", tm.TypeFullName, "#A4");
\r
999 tm = Map (typeof (SimpleClassEnumerablePrivateCurrent[][]));
\r
1000 Assert.AreEqual ("ArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#B1");
\r
1001 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
1003 Assert.AreEqual ("ArrayOfArrayOfSimpleClassEnumerablePrivateCurrent", tm.TypeName, "#B3");
\r
1005 Assert.AreEqual ("SimpleClassEnumerablePrivateCurrent[][]", tm.TypeName, "#B3");
\r
1007 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateCurrent[][]", tm.TypeFullName, "#B4");
\r
1009 tm = Map (typeof (SimpleClassEnumerablePrivateCurrent[][][]));
\r
1010 Assert.AreEqual ("ArrayOfArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#C1");
\r
1011 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
1013 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClassEnumerablePrivateCurrent", tm.TypeName, "#C3");
\r
1015 Assert.AreEqual ("SimpleClassEnumerablePrivateCurrent[][][]", tm.TypeName, "#C3");
\r
1017 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateCurrent[][][]", tm.TypeFullName, "#C4");
\r
1022 [Category ("NotDotNet")] // results in NullReferenceException in .NET 1.1 (SP1)
\r
1024 [Category ("NotWorking")]
\r
1025 public void TypeMapping_IEnumerable_SimpleClass_PrivateGetEnumerator ()
\r
1027 XmlTypeMapping tm = Map (typeof (SimpleClassEnumerablePrivateGetEnumerator));
\r
1028 Assert.AreEqual ("ArrayOfAnyType", tm.ElementName, "#1");
\r
1029 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
1030 Assert.AreEqual ("SimpleClassEnumerablePrivateGetEnumerator", tm.TypeName, "#3");
\r
1031 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateGetEnumerator", tm.TypeFullName, "#4");
\r
1033 tm = Map (typeof (SimpleClassEnumerablePrivateGetEnumerator[]));
\r
1034 Assert.AreEqual ("ArrayOfArrayOfAnyType", tm.ElementName, "#A1");
\r
1035 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
1037 Assert.AreEqual ("ArrayOfSimpleClassEnumerablePrivateGetEnumerator", tm.TypeName, "#A3");
\r
1039 Assert.AreEqual ("SimpleClassEnumerablePrivateGetEnumerator[]", tm.TypeName, "#A3");
\r
1041 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateGetEnumerator[]", tm.TypeFullName, "#A4");
\r
1043 tm = Map (typeof (SimpleClassEnumerablePrivateGetEnumerator[][]));
\r
1044 Assert.AreEqual ("ArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#B1");
\r
1045 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
1047 Assert.AreEqual ("ArrayOfArrayOfSimpleClassEnumerablePrivateGetEnumerator", tm.TypeName, "#B3");
\r
1049 Assert.AreEqual ("SimpleClassEnumerablePrivateGetEnumerator[][]", tm.TypeName, "#B3");
\r
1051 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateGetEnumerator[][]", tm.TypeFullName, "#B4");
\r
1053 tm = Map (typeof (SimpleClassEnumerablePrivateGetEnumerator[][][]));
\r
1054 Assert.AreEqual ("ArrayOfArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#C1");
\r
1055 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
1057 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClassEnumerablePrivateGetEnumerator", tm.TypeName, "#C3");
\r
1059 Assert.AreEqual ("SimpleClassEnumerablePrivateGetEnumerator[][][]", tm.TypeName, "#C3");
\r
1061 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassEnumerablePrivateGetEnumerator[][][]", tm.TypeFullName, "#C4");
\r
1065 [Category ("NotWorking")]
\r
1066 [ExpectedException (typeof (InvalidOperationException))]
\r
1067 public void TypeMapping_ICollection_Object_NoMatchingAddMethod ()
\r
1069 Map (typeof (ObjectCollectionNoMatchingAddMethod));
\r
1073 [Category ("NotWorking")]
\r
1074 [ExpectedException (typeof (InvalidOperationException))]
\r
1075 public void TypeMapping_ICollection_Object_NoMatchingAddMethod_Array ()
\r
1077 Map (typeof (ObjectCollectionNoMatchingAddMethod[]));
\r
1081 [Category ("NotWorking")]
\r
1082 [ExpectedException (typeof (InvalidOperationException))]
\r
1083 public void TypeMapping_ICollection_SimpleClass_NoMatchingAddMethod ()
\r
1085 Map (typeof (SimpleClassCollectionNoMatchingAddMethod));
\r
1089 [Category ("NotWorking")]
\r
1090 [ExpectedException (typeof (InvalidOperationException))]
\r
1091 public void TypeMapping_ICollection_SimpleClass_NoMatchingAddMethod_Array ()
\r
1093 Map (typeof (SimpleClassCollectionNoMatchingAddMethod[]));
\r
1097 [Category ("NotWorking")]
\r
1098 public void TypeMapping_ICollection_SimpleClass ()
\r
1100 XmlTypeMapping tm = Map (typeof (SimpleClassCollection));
\r
1101 Assert.AreEqual ("ArrayOfSimpleClass", tm.ElementName, "#1");
\r
1102 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
1103 Assert.AreEqual ("SimpleClassCollection", tm.TypeName, "#3");
\r
1104 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassCollection", tm.TypeFullName, "#4");
\r
1106 tm = Map (typeof (SimpleClassCollection[]));
\r
1107 Assert.AreEqual ("ArrayOfArrayOfSimpleClass", tm.ElementName, "#A1");
\r
1108 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
1110 Assert.AreEqual ("ArrayOfSimpleClassCollection", tm.TypeName, "#A3");
\r
1112 Assert.AreEqual ("SimpleClassCollection[]", tm.TypeName, "#A3");
\r
1114 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassCollection[]", tm.TypeFullName, "#A4");
\r
1116 tm = Map (typeof (SimpleClassCollection[][]));
\r
1117 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClass", tm.ElementName, "#B1");
\r
1118 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
1120 Assert.AreEqual ("ArrayOfArrayOfSimpleClassCollection", tm.TypeName, "#B3");
\r
1122 Assert.AreEqual ("SimpleClassCollection[][]", tm.TypeName, "#B3");
\r
1124 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassCollection[][]", tm.TypeFullName, "#B4");
\r
1126 tm = Map (typeof (SimpleClassCollection[][][]));
\r
1127 Assert.AreEqual ("ArrayOfArrayOfArrayOfArrayOfSimpleClass", tm.ElementName, "#C1");
\r
1128 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
1130 Assert.AreEqual ("ArrayOfArrayOfArrayOfSimpleClassCollection", tm.TypeName, "#C3");
\r
1132 Assert.AreEqual ("SimpleClassCollection[][][]", tm.TypeName, "#C3");
\r
1134 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.SimpleClassCollection[][][]", tm.TypeFullName, "#C4");
\r
1138 [Category ("NotWorking")]
\r
1139 public void TypeMapping_ICollection_Object ()
\r
1141 XmlTypeMapping tm = Map (typeof (ObjectCollection));
\r
1142 Assert.AreEqual ("ArrayOfAnyType", tm.ElementName, "#1");
\r
1143 Assert.AreEqual (string.Empty, tm.Namespace, "#2");
\r
1144 Assert.AreEqual ("ObjectCollection", tm.TypeName, "#3");
\r
1145 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectCollection", tm.TypeFullName, "#4");
\r
1147 tm = Map (typeof (ObjectCollection[]));
\r
1148 Assert.AreEqual ("ArrayOfArrayOfAnyType", tm.ElementName, "#A1");
\r
1149 Assert.AreEqual (string.Empty, tm.Namespace, "#A2");
\r
1151 Assert.AreEqual ("ArrayOfObjectCollection", tm.TypeName, "#A3");
\r
1153 Assert.AreEqual ("ObjectCollection[]", tm.TypeName, "#A3");
\r
1155 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectCollection[]", tm.TypeFullName, "#A4");
\r
1157 tm = Map (typeof (ObjectCollection[][]));
\r
1158 Assert.AreEqual ("ArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#B1");
\r
1159 Assert.AreEqual (string.Empty, tm.Namespace, "#B2");
\r
1161 Assert.AreEqual ("ArrayOfArrayOfObjectCollection", tm.TypeName, "#B3");
\r
1163 Assert.AreEqual ("ObjectCollection[][]", tm.TypeName, "#B3");
\r
1165 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectCollection[][]", tm.TypeFullName, "#B4");
\r
1167 tm = Map (typeof (ObjectCollection[][][]));
\r
1168 Assert.AreEqual ("ArrayOfArrayOfArrayOfArrayOfAnyType", tm.ElementName, "#C1");
\r
1169 Assert.AreEqual (string.Empty, tm.Namespace, "#C2");
\r
1171 Assert.AreEqual ("ArrayOfArrayOfArrayOfObjectCollection", tm.TypeName, "#C3");
\r
1173 Assert.AreEqual ("ObjectCollection[][][]", tm.TypeName, "#C3");
\r
1175 Assert.AreEqual ("MonoTests.System.XmlSerialization.XmlReflectionImporterTests.ObjectCollection[][][]", tm.TypeFullName, "#C4");
\r
1179 [Category ("NotWorking")]
\r
1180 [ExpectedException (typeof (InvalidOperationException))]
\r
1181 public void TypeMapping_ICollection_Object_NoIntIndexer ()
\r
1183 Map (typeof (ObjectCollectionNoIntIndexer));
\r
1187 [Category ("NotWorking")]
\r
1188 [ExpectedException (typeof (InvalidOperationException))]
\r
1189 public void TypeMapping_ICollection_Object_NoIntIndexer_Array ()
\r
1191 Map (typeof (ObjectCollectionNoIntIndexer[]));
\r
1195 [Category ("NotWorking")]
\r
1196 [ExpectedException (typeof (InvalidOperationException))]
\r
1197 public void TypeMapping_ICollection_SimpleClass_NoIntIndexer ()
\r
1199 Map (typeof (SimpleClassCollectionNoIntIndexer));
\r
1203 [Category ("NotWorking")]
\r
1204 [ExpectedException (typeof (InvalidOperationException))]
\r
1205 public void TypeMapping_ICollection_SimpleClass_NoIntIndexer_Array ()
\r
1207 Map (typeof (SimpleClassCollectionNoIntIndexer[]));
\r
1211 [Category ("NotWorking")]
\r
1212 public void TestImportMembersMapping()
\r
1214 Type type = typeof(SimpleClass);
\r
1215 XmlAttributes attrs = new XmlAttributes();
\r
1216 XmlAttributeOverrides overrides = new XmlAttributeOverrides();
\r
1217 overrides.Add(typeof(SimpleClass), attrs);
\r
1219 XmlReflectionMember[] members = new XmlReflectionMember[0];
\r
1220 XmlMembersMapping mm;
\r
1223 mm = MembersMap(type, overrides, members, true);
\r
1224 Assert.Fail("Should not be able to fetch an empty XmlMembersMapping");
\r
1230 XmlReflectionMember rm = new XmlReflectionMember();
\r
1231 rm.IsReturnValue = false;
\r
1232 rm.MemberName = "something";
\r
1233 rm.MemberType = typeof(string);
\r
1234 members = new XmlReflectionMember[1];
\r
1237 mm = MembersMap(type, overrides, members, false);
\r
1239 Equals(mm.Count, 1);
\r
1241 XmlMemberMapping smm = mm[0];
\r
1242 Assert.IsFalse (smm.Any, "#1");
\r
1243 Assert.AreEqual ("something", smm.ElementName, "#2");
\r
1244 Assert.AreEqual ("something", smm.MemberName, "#3");
\r
1245 Assert.IsNull (smm.Namespace, "#4");
\r
1246 Assert.AreEqual ("System.String", smm.TypeFullName, "#5");
\r
1247 Assert.AreEqual ("string", smm.TypeName, "#6");
\r
1248 Assert.IsNull (smm.TypeNamespace, "#7");
\r
1251 rm = new XmlReflectionMember();
\r
1252 rm.IsReturnValue = false;
\r
1253 rm.MemberName = "nothing";
\r
1254 rm.MemberType = typeof(string);
\r
1255 members = new XmlReflectionMember[1];
\r
1258 mm = MembersMap(type, overrides, members, false);
\r
1259 Assert.AreEqual (1, mm.Count, "#8");
\r
1263 public void TestIntTypeMappingWithXmlRootAttribute()
\r
1265 const string TheNamespace = "another:urn";
\r
1266 XmlRootAttribute root = new XmlRootAttribute("price");
\r
1267 root.Namespace = TheNamespace;
\r
1269 XmlTypeMapping tm = Map(typeof(int), root);
\r
1270 Assert.AreEqual ("price", tm.ElementName, "#1");
\r
1271 Assert.AreEqual (TheNamespace, tm.Namespace, "#2");
\r
1272 Assert.AreEqual ("Int32", tm.TypeName, "#3");
\r
1273 Assert.AreEqual ("System.Int32", tm.TypeFullName, "#4");
\r
1277 [ExpectedException (typeof (InvalidOperationException))]
\r
1278 public void TestSerializeWrongChoice ()
\r
1280 new XmlSerializer (typeof(WrongChoices));
\r
1283 public class Employee : IXmlSerializable
\r
1285 private string _firstName;
\r
1286 private string _lastName;
\r
1287 private string _address;
\r
1289 public XmlSchema GetSchema ()
\r
1294 public void WriteXml (XmlWriter writer)
\r
1296 writer.WriteStartElement ("employee", "urn:devx-com");
\r
1297 writer.WriteAttributeString ("firstName", _firstName);
\r
1298 writer.WriteAttributeString ("lastName", _lastName);
\r
1299 writer.WriteAttributeString ("address", _address);
\r
1300 writer.WriteEndElement ();
\r
1303 public void ReadXml (XmlReader reader)
\r
1305 XmlNodeType type = reader.MoveToContent ();
\r
1306 if (type == XmlNodeType.Element && reader.LocalName == "employee") {
\r
1307 _firstName = reader["firstName"];
\r
1308 _lastName = reader["lastName"];
\r
1309 _address = reader["address"];
\r
1314 public class NestedStruct
\r
1316 public TimeSpan Period = TimeSpan.MaxValue;
\r
1319 public class ObjectEnumerable : IEnumerable
\r
1321 public void Add (int value)
\r
1325 public void Add (object value)
\r
1329 public IEnumerator GetEnumerator ()
\r
1331 return new ArrayList ().GetEnumerator ();
\r
1335 public class SimpleClassEnumerable : IEnumerable
\r
1337 public void Add (int value)
\r
1341 public void Add (object value)
\r
1345 IEnumerator IEnumerable.GetEnumerator ()
\r
1347 return GetEnumerator ();
\r
1350 public SimpleClassEnumerator GetEnumerator ()
\r
1352 return new SimpleClassEnumerator (new ArrayList ());
\r
1356 public class SimpleClassEnumerablePrivateGetEnumerator : IEnumerable
\r
1358 public void Add (object value)
\r
1362 IEnumerator IEnumerable.GetEnumerator ()
\r
1364 return new ArrayList ().GetEnumerator ();
\r
1368 public class SimpleClassEnumerablePrivateCurrent : IEnumerable
\r
1370 public void Add (object value)
\r
1374 IEnumerator IEnumerable.GetEnumerator ()
\r
1376 return GetEnumerator ();
\r
1379 public NoCurrentEnumerator GetEnumerator ()
\r
1381 return new NoCurrentEnumerator (new ArrayList ());
\r
1385 // GetEnumerator().Current returns object, but there's no corresponding
\r
1386 // Add (System.Object) method
\r
1387 public class ObjectEnumerableNoMatchingAddMethod : IEnumerable
\r
1389 public void Add (int value)
\r
1393 public IEnumerator GetEnumerator ()
\r
1395 return new ArrayList ().GetEnumerator ();
\r
1399 // GetEnumerator().Current returns SimpleClass, but there's no
\r
1400 // corresponding Add (SimpleClass) method
\r
1401 public class SimpleClassCollectionNoMatchingAddMethod : ICollection
\r
1403 public SimpleClass this[int index]
\r
1407 return (SimpleClass) _list[index];
\r
1413 get { return _list.Count; }
\r
1416 public bool IsSynchronized
\r
1418 get { return _list.IsSynchronized; }
\r
1421 public object SyncRoot
\r
1423 get { return _list.SyncRoot; }
\r
1426 public void CopyTo (Array array, int index)
\r
1428 _list.CopyTo (array, index);
\r
1431 IEnumerator IEnumerable.GetEnumerator ()
\r
1433 return GetEnumerator ();
\r
1436 public SimpleClassEnumerator GetEnumerator ()
\r
1438 return new SimpleClassEnumerator (_list);
\r
1441 private ArrayList _list = new ArrayList ();
\r
1444 // GetEnumerator().Current returns object, but there's no corresponding
\r
1445 // Add (System.Object) method
\r
1446 public class ObjectCollectionNoMatchingAddMethod : ICollection
\r
1448 public object this[int index]
\r
1452 return _list[index];
\r
1458 get { return _list.Count; }
\r
1461 public bool IsSynchronized
\r
1463 get { return _list.IsSynchronized; }
\r
1466 public object SyncRoot
\r
1468 get { return _list.SyncRoot; }
\r
1471 public void CopyTo (Array array, int index)
\r
1473 _list.CopyTo (array, index);
\r
1476 IEnumerator IEnumerable.GetEnumerator ()
\r
1478 return GetEnumerator ();
\r
1481 public IEnumerator GetEnumerator ()
\r
1483 return _list.GetEnumerator ();
\r
1486 private ArrayList _list = new ArrayList ();
\r
1489 // Does not have int indexer.
\r
1490 public class SimpleClassCollectionNoIntIndexer : ICollection
\r
1492 public SimpleClass this[string name]
\r
1496 return new SimpleClass ();
\r
1502 get { return _list.Count; }
\r
1505 public bool IsSynchronized
\r
1507 get { return _list.IsSynchronized; }
\r
1510 public object SyncRoot
\r
1512 get { return _list.SyncRoot; }
\r
1515 public void CopyTo (Array array, int index)
\r
1517 _list.CopyTo (array, index);
\r
1520 IEnumerator IEnumerable.GetEnumerator ()
\r
1522 return GetEnumerator ();
\r
1525 public SimpleClassEnumerator GetEnumerator ()
\r
1527 return new SimpleClassEnumerator (_list);
\r
1530 public void Add (SimpleClass value)
\r
1532 _list.Add (value);
\r
1535 private ArrayList _list = new ArrayList ();
\r
1538 // Does not have int indexer.
\r
1539 public class ObjectCollectionNoIntIndexer : ICollection
\r
1541 public object this[string name]
\r
1545 return new SimpleClass ();
\r
1551 get { return _list.Count; }
\r
1554 public bool IsSynchronized
\r
1556 get { return _list.IsSynchronized; }
\r
1559 public object SyncRoot
\r
1561 get { return _list.SyncRoot; }
\r
1564 public void CopyTo (Array array, int index)
\r
1566 _list.CopyTo (array, index);
\r
1569 public IEnumerator GetEnumerator ()
\r
1571 return _list.GetEnumerator ();
\r
1574 public void Add (object value)
\r
1576 _list.Add (value);
\r
1579 private ArrayList _list = new ArrayList ();
\r
1582 public class SimpleClassCollection : ICollection
\r
1584 public SimpleClass this[int index]
\r
1588 return (SimpleClass) _list[index];
\r
1594 get { return _list.Count; }
\r
1597 public bool IsSynchronized
\r
1599 get { return _list.IsSynchronized; }
\r
1602 public object SyncRoot
\r
1604 get { return _list.SyncRoot; }
\r
1607 public void CopyTo (Array array, int index)
\r
1609 _list.CopyTo (array, index);
\r
1612 IEnumerator IEnumerable.GetEnumerator ()
\r
1614 return GetEnumerator ();
\r
1617 public SimpleClassEnumerator GetEnumerator ()
\r
1619 return new SimpleClassEnumerator (_list);
\r
1622 public void Add (SimpleClass value)
\r
1624 _list.Add (value);
\r
1627 private ArrayList _list = new ArrayList ();
\r
1630 public class ObjectCollection : ICollection
\r
1632 public object this[int name]
\r
1636 return new SimpleClass ();
\r
1642 get { return _list.Count; }
\r
1645 public bool IsSynchronized
\r
1647 get { return _list.IsSynchronized; }
\r
1650 public object SyncRoot
\r
1652 get { return _list.SyncRoot; }
\r
1655 public void CopyTo (Array array, int index)
\r
1657 _list.CopyTo (array, index);
\r
1660 public IEnumerator GetEnumerator ()
\r
1662 return _list.GetEnumerator ();
\r
1665 public void Add (object value)
\r
1667 _list.Add (value);
\r
1670 private ArrayList _list = new ArrayList ();
\r
1673 public class SimpleClassEnumerator : IEnumerator
\r
1675 internal SimpleClassEnumerator (ArrayList arguments)
\r
1677 IEnumerable temp = (IEnumerable) (arguments);
\r
1678 _baseEnumerator = temp.GetEnumerator ();
\r
1680 public SimpleClass Current
\r
1682 get { return (SimpleClass) _baseEnumerator.Current; }
\r
1685 object IEnumerator.Current
\r
1687 get { return _baseEnumerator.Current; }
\r
1690 public bool MoveNext ()
\r
1692 return _baseEnumerator.MoveNext ();
\r
1695 bool IEnumerator.MoveNext ()
\r
1697 return _baseEnumerator.MoveNext ();
\r
1700 public void Reset ()
\r
1702 _baseEnumerator.Reset ();
\r
1705 void IEnumerator.Reset ()
\r
1707 _baseEnumerator.Reset ();
\r
1710 private IEnumerator _baseEnumerator;
\r
1713 public class NoCurrentEnumerator : IEnumerator
\r
1715 internal NoCurrentEnumerator (ArrayList arguments)
\r
1717 IEnumerable temp = (IEnumerable) (arguments);
\r
1718 _baseEnumerator = temp.GetEnumerator ();
\r
1721 object IEnumerator.Current
\r
1723 get { return _baseEnumerator.Current; }
\r
1726 public bool MoveNext ()
\r
1728 return _baseEnumerator.MoveNext ();
\r
1731 bool IEnumerator.MoveNext ()
\r
1733 return _baseEnumerator.MoveNext ();
\r
1736 public void Reset ()
\r
1738 _baseEnumerator.Reset ();
\r
1741 void IEnumerator.Reset ()
\r
1743 _baseEnumerator.Reset ();
\r
1746 private IEnumerator _baseEnumerator;
\r