BindingFlags.Public needed here as Exception.HResult is now public in .NET 4.5. This...
[mono.git] / mcs / class / System.Xaml / Test / System.Xaml / XamlXmlReaderTest.cs
1 //
2 // Copyright (C) 2010 Novell Inc. http://novell.com
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
11 // 
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
14 // 
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 //
23 using System;
24 using System.Collections;
25 using System.Collections.Generic;
26 using System.ComponentModel;
27 using System.Globalization;
28 using System.IO;
29 using System.Linq;
30 using System.Reflection;
31 using System.Windows.Markup;
32 using System.Xaml;
33 using System.Xaml.Schema;
34 using System.Xml;
35 using NUnit.Framework;
36
37 using CategoryAttribute = NUnit.Framework.CategoryAttribute;
38
39 namespace MonoTests.System.Xaml
40 {
41         [TestFixture]
42         public class XamlXmlReaderTest : XamlReaderTestBase
43         {
44                 // read test
45
46                 XamlReader GetReader (string filename)
47                 {
48                         return new XamlXmlReader (XmlReader.Create (Path.Combine ("Test/XmlFiles", filename), new XmlReaderSettings () { CloseInput =true }));
49                 }
50
51                 void ReadTest (string filename)
52                 {
53                         var r = GetReader (filename);
54                         while (!r.IsEof)
55                                 r.Read ();
56                 }
57
58                 [Test]
59                 public void SchemaContext ()
60                 {
61                         Assert.AreNotEqual (XamlLanguage.Type.SchemaContext, new XamlXmlReader (XmlReader.Create (new StringReader ("<root/>"))).SchemaContext, "#1");
62                 }
63
64                 [Test]
65                 public void Read_Int32 ()
66                 {
67                         ReadTest ("Int32.xml");
68                 }
69
70                 [Test]
71                 public void Read_DateTime ()
72                 {
73                         ReadTest ("DateTime.xml");
74                 }
75
76                 [Test]
77                 public void Read_TimeSpan ()
78                 {
79                         ReadTest ("TimeSpan.xml");
80                 }
81
82                 [Test]
83                 public void Read_ArrayInt32 ()
84                 {
85                         ReadTest ("Array_Int32.xml");
86                 }
87
88                 [Test]
89                 public void Read_DictionaryInt32String ()
90                 {
91                         ReadTest ("Dictionary_Int32_String.xml");
92                 }
93
94                 [Test]
95                 public void Read_DictionaryStringType ()
96                 {
97                         ReadTest ("Dictionary_String_Type.xml");
98                 }
99
100                 [Test]
101                 public void Read_SilverlightApp1 ()
102                 {
103                         ReadTest ("SilverlightApp1.xaml");
104                 }
105
106                 [Test]
107                 public void Read_Guid ()
108                 {
109                         ReadTest ("Guid.xml");
110                 }
111
112                 [Test]
113                 public void Read_GuidFactoryMethod ()
114                 {
115                         ReadTest ("GuidFactoryMethod.xml");
116                 }
117
118                 [Test]
119                 public void ReadInt32Details ()
120                 {
121                         var r = GetReader ("Int32.xml");
122
123                         Assert.IsTrue (r.Read (), "ns#1");
124                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2");
125                         Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "ns#3");
126
127                         Assert.IsTrue (r.Read (), "so#1");
128                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2");
129                         Assert.AreEqual (XamlLanguage.Int32, r.Type, "so#3");
130
131                         ReadBase (r);
132
133                         Assert.IsTrue (r.Read (), "sinit#1");
134                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sinit#2");
135                         Assert.AreEqual (XamlLanguage.Initialization, r.Member, "sinit#3");
136
137                         Assert.IsTrue (r.Read (), "vinit#1");
138                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vinit#2");
139                         Assert.AreEqual ("5", r.Value, "vinit#3"); // string
140
141                         Assert.IsTrue (r.Read (), "einit#1");
142                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "einit#2");
143
144                         Assert.IsTrue (r.Read (), "eo#1");
145                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2");
146
147                         Assert.IsFalse (r.Read (), "end");
148                 }
149
150                 [Test]
151                 public void ReadDateTimeDetails ()
152                 {
153                         var r = GetReader ("DateTime.xml");
154
155                         Assert.IsTrue (r.Read (), "ns#1");
156                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2");
157                         Assert.AreEqual ("clr-namespace:System;assembly=mscorlib", r.Namespace.Namespace, "ns#3");
158
159                         Assert.IsTrue (r.Read (), "so#1");
160                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2");
161                         Assert.AreEqual (r.SchemaContext.GetXamlType (typeof (DateTime)), r.Type, "so#3");
162
163                         ReadBase (r);
164
165                         Assert.IsTrue (r.Read (), "sinit#1");
166                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sinit#2");
167                         Assert.AreEqual (XamlLanguage.Initialization, r.Member, "sinit#3");
168
169                         Assert.IsTrue (r.Read (), "vinit#1");
170                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vinit#2");
171                         Assert.AreEqual ("2010-04-14", r.Value, "vinit#3"); // string
172
173                         Assert.IsTrue (r.Read (), "einit#1");
174                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "einit#2");
175
176                         Assert.IsTrue (r.Read (), "eo#1");
177                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2");
178                         Assert.IsFalse (r.Read (), "end");
179                 }
180
181                 [Test]
182                 public void ReadGuidFactoryMethodDetails ()
183                 {
184                         var r = GetReader ("GuidFactoryMethod.xml");
185
186                         Assert.IsTrue (r.Read (), "ns#1");
187                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns#2");
188                         Assert.AreEqual ("clr-namespace:System;assembly=mscorlib", r.Namespace.Namespace, "ns#3");
189                         Assert.AreEqual (String.Empty, r.Namespace.Prefix, "ns#4");
190
191                         Assert.IsTrue (r.Read (), "ns2#1");
192                         Assert.AreEqual (XamlNodeType.NamespaceDeclaration, r.NodeType, "ns2#2");
193                         Assert.AreEqual (XamlLanguage.Xaml2006Namespace, r.Namespace.Namespace, "ns2#3");
194                         Assert.AreEqual ("x", r.Namespace.Prefix, "ns2#4");
195
196                         Assert.IsTrue (r.Read (), "so#1");
197                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "so#2");
198                         var xt = r.SchemaContext.GetXamlType (typeof (Guid));
199                         Assert.AreEqual (xt, r.Type, "so#3");
200
201                         ReadBase (r);
202
203                         Assert.IsTrue (r.Read (), "sfactory#1");
204                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sfactory#2");
205                         Assert.AreEqual (XamlLanguage.FactoryMethod, r.Member, "sfactory#3");
206
207                         Assert.IsTrue (r.Read (), "vfactory#1");
208                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "vfactory#2");
209                         Assert.AreEqual ("Parse", r.Value, "vfactory#3"); // string
210
211                         Assert.IsTrue (r.Read (), "efactory#1");
212                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "efactory#2");
213
214                         Assert.IsTrue (r.Read (), "sarg#1");
215                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sarg#2");
216                         Assert.AreEqual (XamlLanguage.Arguments, r.Member, "sarg#3");
217
218                         Assert.IsTrue (r.Read (), "sarg1#1");
219                         Assert.AreEqual (XamlNodeType.StartObject, r.NodeType, "sarg1#2");
220                         Assert.AreEqual (XamlLanguage.String, r.Type, "sarg1#3");
221
222                         Assert.IsTrue (r.Read (), "sInit#1");
223                         Assert.AreEqual (XamlNodeType.StartMember, r.NodeType, "sInit#2");
224                         Assert.AreEqual (XamlLanguage.Initialization, r.Member, "sInit#3");
225
226                         Assert.IsTrue (r.Read (), "varg1#1");
227                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "varg1#2");
228                         Assert.AreEqual ("9c3345ec-8922-4662-8e8d-a4e41f47cf09", r.Value, "varg1#3");
229
230                         Assert.IsTrue (r.Read (), "eInit#1");
231                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "eInit#2");
232
233                         Assert.IsTrue (r.Read (), "earg1#1");
234                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "earg1#2");
235
236                         Assert.IsTrue (r.Read (), "earg#1");
237                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "earg#2");
238
239
240                         Assert.IsTrue (r.Read (), "eo#1");
241                         Assert.AreEqual (XamlNodeType.EndObject, r.NodeType, "eo#2");
242
243                         Assert.IsFalse (r.Read (), "end");
244                 }
245
246                 [Test]
247                 public void ReadEventStore ()
248                 {
249                         var r = GetReader ("EventStore2.xml");
250
251                         var xt = r.SchemaContext.GetXamlType (typeof (EventStore));
252                         var xm = xt.GetMember ("Event1");
253                         Assert.IsNotNull (xt, "premise#1");
254                         Assert.IsNotNull (xm, "premise#2");
255                         Assert.IsTrue (xm.IsEvent, "premise#3");
256                         while (true) {
257                                 r.Read ();
258                                 if (r.Member != null && r.Member.IsEvent)
259                                         break;
260                                 if (r.IsEof)
261                                         Assert.Fail ("Items did not appear");
262                         }
263
264                         Assert.AreEqual (xm, r.Member, "#x1");
265                         Assert.AreEqual ("Event1", r.Member.Name, "#x2");
266
267                         Assert.IsTrue (r.Read (), "#x11");
268                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "#x12");
269                         Assert.AreEqual ("Method1", r.Value, "#x13");
270
271                         Assert.IsTrue (r.Read (), "#x21");
272                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#x22");
273
274                         xm = xt.GetMember ("Event2");
275                         Assert.IsTrue (r.Read (), "#x31");
276                         Assert.AreEqual (xm, r.Member, "#x32");
277                         Assert.AreEqual ("Event2", r.Member.Name, "#x33");
278
279                         Assert.IsTrue (r.Read (), "#x41");
280                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "#x42");
281                         Assert.AreEqual ("Method2", r.Value, "#x43");
282
283                         Assert.IsTrue (r.Read (), "#x51");
284                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#x52");
285
286                         Assert.IsTrue (r.Read (), "#x61");
287                         Assert.AreEqual ("Event1", r.Member.Name, "#x62");
288
289                         Assert.IsTrue (r.Read (), "#x71");
290                         Assert.AreEqual (XamlNodeType.Value, r.NodeType, "#x72");
291                         Assert.AreEqual ("Method3", r.Value, "#x73"); // nonexistent, but no need to raise an error.
292
293                         Assert.IsTrue (r.Read (), "#x81");
294                         Assert.AreEqual (XamlNodeType.EndMember, r.NodeType, "#x82");
295
296                         while (!r.IsEof)
297                                 r.Read ();
298
299                         r.Close ();
300                 }
301
302                 // common XamlReader tests.
303
304                 [Test]
305                 public void Read_String ()
306                 {
307                         var r = GetReader ("String.xml");
308                         Read_String (r);
309                 }
310
311                 [Test]
312                 public void WriteNullMemberAsObject ()
313                 {
314                         var r = GetReader ("TestClass4.xml");
315                         WriteNullMemberAsObject (r, null);
316                 }
317                 
318                 [Test]
319                 public void StaticMember ()
320                 {
321                         var r = GetReader ("TestClass5.xml");
322                         StaticMember (r);
323                 }
324
325                 [Test]
326                 public void Skip ()
327                 {
328                         var r = GetReader ("String.xml");
329                         Skip (r);
330                 }
331                 
332                 [Test]
333                 public void Skip2 ()
334                 {
335                         var r = GetReader ("String.xml");
336                         Skip2 (r);
337                 }
338
339                 [Test]
340                 public void Read_XmlDocument ()
341                 {
342                         var doc = new XmlDocument ();
343                         doc.LoadXml ("<root xmlns='urn:foo'><elem attr='val' /></root>");
344                         // note that corresponding XamlXmlWriter is untested yet.
345                         var r = GetReader ("XmlDocument.xml");
346                         Read_XmlDocument (r);
347                 }
348
349                 [Test]
350                 public void Read_NonPrimitive ()
351                 {
352                         var r = GetReader ("NonPrimitive.xml");
353                         Read_NonPrimitive (r);
354                 }
355                 
356                 [Test]
357                 public void Read_TypeExtension ()
358                 {
359                         var r = GetReader ("Type.xml");
360                         Read_TypeOrTypeExtension (r, null, XamlLanguage.Type.GetMember ("Type"));
361                 }
362                 
363                 [Test]
364                 public void Read_Type2 ()
365                 {
366                         var r = GetReader ("Type2.xml");
367                         Read_TypeOrTypeExtension2 (r, null, XamlLanguage.Type.GetMember ("Type"));
368                 }
369                 
370                 [Test]
371                 public void Read_Reference ()
372                 {
373                         var r = GetReader ("Reference.xml");
374                         Read_Reference (r);
375                 }
376                 
377                 [Test]
378                 public void Read_Null ()
379                 {
380                         var r = GetReader ("NullExtension.xml");
381                         Read_NullOrNullExtension (r, null);
382                 }
383                 
384                 [Test]
385                 public void Read_StaticExtension ()
386                 {
387                         var r = GetReader ("StaticExtension.xml");
388                         Read_StaticExtension (r, XamlLanguage.Static.GetMember ("Member"));
389                 }
390                 
391                 [Test]
392                 public void Read_ListInt32 ()
393                 {
394                         var r = GetReader ("List_Int32.xml");
395                         Read_ListInt32 (r, null, new int [] {5, -3, int.MaxValue, 0}.ToList ());
396                 }
397                 
398                 [Test]
399                 public void Read_ListInt32_2 ()
400                 {
401                         var r = GetReader ("List_Int32_2.xml");
402                         Read_ListInt32 (r, null, new int [0].ToList ());
403                 }
404                 
405                 [Test]
406                 public void Read_ListType ()
407                 {
408                         var r = GetReader ("List_Type.xml");
409                         Read_ListType (r, false);
410                 }
411
412                 [Test]
413                 public void Read_ListArray ()
414                 {
415                         var r = GetReader ("List_Array.xml");
416                         Read_ListArray (r);
417                 }
418
419                 [Test]
420                 public void Read_ArrayList ()
421                 {
422                         var r = GetReader ("ArrayList.xml");
423                         Read_ArrayList (r);
424                 }
425                 
426                 [Test]
427                 public void Read_Array ()
428                 {
429                         var r = GetReader ("ArrayExtension.xml");
430                         Read_ArrayOrArrayExtensionOrMyArrayExtension (r, null, typeof (ArrayExtension));
431                 }
432                 
433                 [Test]
434                 public void Read_MyArrayExtension ()
435                 {
436                         var r = GetReader ("MyArrayExtension.xml");
437                         Read_ArrayOrArrayExtensionOrMyArrayExtension (r, null, typeof (MyArrayExtension));
438                 }
439
440                 [Test]
441                 public void Read_ArrayExtension2 ()
442                 {
443                         var r = GetReader ("ArrayExtension2.xml");
444                         Read_ArrayExtension2 (r);
445                 }
446
447                 [Test]
448                 public void Read_CustomMarkupExtension ()
449                 {
450                         var r = GetReader ("MyExtension.xml");
451                         Read_CustomMarkupExtension (r);
452                 }
453                 
454                 [Test]
455                 public void Read_CustomMarkupExtension2 ()
456                 {
457                         var r = GetReader ("MyExtension2.xml");
458                         Read_CustomMarkupExtension2 (r);
459                 }
460                 
461                 [Test]
462                 public void Read_CustomMarkupExtension3 ()
463                 {
464                         var r = GetReader ("MyExtension3.xml");
465                         Read_CustomMarkupExtension3 (r);
466                 }
467                 
468                 [Test]
469                 public void Read_CustomMarkupExtension4 ()
470                 {
471                         var r = GetReader ("MyExtension4.xml");
472                         Read_CustomMarkupExtension4 (r);
473                 }
474                 
475                 [Test]
476                 public void Read_CustomMarkupExtension6 ()
477                 {
478                         var r = GetReader ("MyExtension6.xml");
479                         Read_CustomMarkupExtension6 (r);
480                 }
481
482                 [Test]
483                 public void Read_ArgumentAttributed ()
484                 {
485                         var obj = new ArgumentAttributed ("foo", "bar");
486                         var r = GetReader ("ArgumentAttributed.xml");
487                         Read_ArgumentAttributed (r, obj);
488                 }
489
490                 [Test]
491                 public void Read_Dictionary ()
492                 {
493                         var obj = new Dictionary<string,object> ();
494                         obj ["Foo"] = 5.0;
495                         obj ["Bar"] = -6.5;
496                         var r = GetReader ("Dictionary_String_Double.xml");
497                         Read_Dictionary (r);
498                 }
499                 
500                 [Test]
501                 public void Read_Dictionary2 ()
502                 {
503                         var obj = new Dictionary<string,Type> ();
504                         obj ["Foo"] = typeof (int);
505                         obj ["Bar"] = typeof (Dictionary<Type,XamlType>);
506                         var r = GetReader ("Dictionary_String_Type_2.xml");
507                         Read_Dictionary2 (r, XamlLanguage.Type.GetMember ("Type"));
508                 }
509                 
510                 [Test]
511                 public void PositionalParameters2 ()
512                 {
513                         var r = GetReader ("PositionalParametersWrapper.xml");
514                         PositionalParameters2 (r);
515                 }
516
517                 [Test]
518                 public void ComplexPositionalParameters ()
519                 {
520                         var r = GetReader ("ComplexPositionalParameterWrapper.xml");
521                         ComplexPositionalParameters (r);
522                 }
523                 
524                 [Test]
525                 public void Read_ListWrapper ()
526                 {
527                         var r = GetReader ("ListWrapper.xml");
528                         Read_ListWrapper (r);
529                 }
530                 
531                 [Test]
532                 public void Read_ListWrapper2 () // read-write list member.
533                 {
534                         var r = GetReader ("ListWrapper2.xml");
535                         Read_ListWrapper2 (r);
536                 }
537
538                 [Test]
539                 public void Read_ContentIncluded ()
540                 {
541                         var r = GetReader ("ContentIncluded.xml");
542                         Read_ContentIncluded (r);
543                 }
544
545                 [Test]
546                 public void Read_PropertyDefinition ()
547                 {
548                         var r = GetReader ("PropertyDefinition.xml");
549                         Read_PropertyDefinition (r);
550                 }
551
552                 [Test]
553                 public void Read_StaticExtensionWrapper ()
554                 {
555                         var r = GetReader ("StaticExtensionWrapper.xml");
556                         Read_StaticExtensionWrapper (r);
557                 }
558
559                 [Test]
560                 public void Read_TypeExtensionWrapper ()
561                 {
562                         var r = GetReader ("TypeExtensionWrapper.xml");
563                         Read_TypeExtensionWrapper (r);
564                 }
565
566                 [Test]
567                 public void Read_NamedItems ()
568                 {
569                         var r = GetReader ("NamedItems.xml");
570                         Read_NamedItems (r, false);
571                 }
572
573                 [Test]
574                 public void Read_NamedItems2 ()
575                 {
576                         var r = GetReader ("NamedItems2.xml");
577                         Read_NamedItems2 (r, false);
578                 }
579
580                 [Test]
581                 public void Read_XmlSerializableWrapper ()
582                 {
583                         var r = GetReader ("XmlSerializableWrapper.xml");
584                         Read_XmlSerializableWrapper (r, false);
585                 }
586
587                 [Test]
588                 public void Read_XmlSerializable ()
589                 {
590                         var r = GetReader ("XmlSerializable.xml");
591                         Read_XmlSerializable (r);
592                 }
593
594                 [Test]
595                 public void Read_ListXmlSerializable ()
596                 {
597                         var r = GetReader ("List_XmlSerializable.xml");
598                         Read_ListXmlSerializable (r);
599                 }
600
601                 [Test]
602                 public void Read_AttachedProperty ()
603                 {
604                         var r = GetReader ("AttachedProperty.xml");
605                         Read_AttachedProperty (r);
606                 }
607
608                 [Test]
609                 public void Read_AbstractWrapper ()
610                 {
611                         var r = GetReader ("AbstractContainer.xml");
612                         while (!r.IsEof)
613                                 r.Read ();
614                 }
615
616                 [Test]
617                 public void Read_ReadOnlyPropertyContainer ()
618                 {
619                         var r = GetReader ("ReadOnlyPropertyContainer.xml");
620                         while (!r.IsEof)
621                                 r.Read ();
622                 }
623
624                 [Test]
625                 public void Read_TypeConverterOnListMember ()
626                 {
627                         var r = GetReader ("TypeConverterOnListMember.xml");
628                         Read_TypeConverterOnListMember (r);
629                 }
630
631                 [Test]
632                 public void Read_EnumContainer ()
633                 {
634                         var r = GetReader ("EnumContainer.xml");
635                         Read_EnumContainer (r);
636                 }
637
638                 [Test]
639                 public void Read_CollectionContentProperty ()
640                 {
641                         var r = GetReader ("CollectionContentProperty.xml");
642                         Read_CollectionContentProperty (r, false);
643                 }
644
645                 [Test]
646                 public void Read_CollectionContentProperty2 ()
647                 {
648                         // bug #681835
649                         var r = GetReader ("CollectionContentProperty2.xml");
650                         Read_CollectionContentProperty (r, true);
651                 }
652
653                 [Test]
654                 public void Read_CollectionContentPropertyX ()
655                 {
656                         var r = GetReader ("CollectionContentPropertyX.xml");
657                         Read_CollectionContentPropertyX (r, false);
658                 }
659
660                 [Test]
661                 public void Read_CollectionContentPropertyX2 ()
662                 {
663                         var r = GetReader ("CollectionContentPropertyX2.xml");
664                         Read_CollectionContentPropertyX (r, true);
665                 }
666
667                 [Test]
668                 public void Read_AmbientPropertyContainer ()
669                 {
670                         var r = GetReader ("AmbientPropertyContainer.xml");
671                         Read_AmbientPropertyContainer (r, false);
672                 }
673
674                 [Test]
675                 public void Read_AmbientPropertyContainer2 ()
676                 {
677                         var r = GetReader ("AmbientPropertyContainer2.xml");
678                         Read_AmbientPropertyContainer (r, true);
679                 }
680
681                 [Test]
682                 public void Read_NullableContainer ()
683                 {
684                         var r = GetReader ("NullableContainer.xml");
685                         Read_NullableContainer (r);
686                 }
687
688                 // It is not really a common test; it just makes use of base helper methods.
689                 [Test]
690                 public void Read_DirectListContainer ()
691                 {
692                         var r = GetReader ("DirectListContainer.xml");
693                         Read_DirectListContainer (r);
694                 }
695
696                 // It is not really a common test; it just makes use of base helper methods.
697                 [Test]
698                 public void Read_DirectDictionaryContainer ()
699                 {
700                         var r = GetReader ("DirectDictionaryContainer.xml");
701                         Read_DirectDictionaryContainer (r);
702                 }
703
704                 // It is not really a common test; it just makes use of base helper methods.
705                 [Test]
706                 public void Read_DirectDictionaryContainer2 ()
707                 {
708                         var r = GetReader ("DirectDictionaryContainer2.xml");
709                         Read_DirectDictionaryContainer2 (r);
710                 }
711                 
712                 [Test]
713                 public void Read_ContentPropertyContainer ()
714                 {
715                         var r = GetReader ("ContentPropertyContainer.xml");
716                         Read_ContentPropertyContainer (r);
717                 }
718
719                 #region non-common tests
720                 [Test]
721                 public void Bug680385 ()
722                 {
723                         XamlServices.Load ("Test/XmlFiles/CurrentVersion.xaml");
724                 }
725                 #endregion
726         }
727 }