Merge pull request #4219 from marek-safar/corert-bump
[mono.git] / mcs / class / System.XML / Test / System.Xml.Serialization / XmlCodeExporterTests.cs
index de125b795892b59a09afd09ca82854116e3aacc6..bb8222543c4b8f1ea994ca0415601e626d862b57 100644 (file)
@@ -4,15 +4,19 @@
 // Author:
 //   Gert Driesen (drieseng@users.sourceforge.net)
 //
+// (C) Gert Driesen (drieseng@users.sourceforge.net)
 // (C) 2006 Novell
 // 
 
+#if !MOBILE && !MONOMAC
+
 using System;
 using System.CodeDom;
 using System.CodeDom.Compiler;
 using System.Collections;
 using System.Globalization;
 using System.IO;
+using System.Reflection;
 using System.Xml;
 using System.Xml.Schema;
 using System.Xml.Serialization;
@@ -42,8 +46,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format(CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -61,15 +64,9 @@ namespace MonoTests.System.XmlSerialization
                                "            this.namesField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class ArrayClass {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    public object names;{0}" +
-#endif
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
 
+
                        codeNamespace = ExportCode (typeof (ArrayClass[]));
                        Assert.IsNotNull (codeNamespace, "#3");
 
@@ -79,8 +76,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -97,13 +93,7 @@ namespace MonoTests.System.XmlSerialization
                                "            this.namesField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "public class ArrayClass {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    public object names;{0}" +
-#endif
-                       "}}{0}", Environment.NewLine), sw.ToString (), "#4");
+                               "}}{0}", Environment.NewLine), sw.ToString (), "#4");
                }
 
                [Test]
@@ -120,8 +110,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -139,13 +128,6 @@ namespace MonoTests.System.XmlSerialization
                                "            this.itemsField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class ArrayContainer {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    public object[] items;{0}" +
-#endif
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
                }
 
@@ -163,8 +145,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -182,13 +163,6 @@ namespace MonoTests.System.XmlSerialization
                                "            this.cdataField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class CDataContainer {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    public System.Xml.XmlCDataSection cdata;{0}" +
-#endif
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
                }
 
@@ -208,8 +182,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -231,24 +204,10 @@ namespace MonoTests.System.XmlSerialization
                                "            this.myChoiceField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class Choices {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlElementAttribute(\"ChoiceZero\", typeof(string))]{0}" +
-                               "    [System.Xml.Serialization.XmlElementAttribute(\"ChoiceTwo\", typeof(string))]{0}" +
-                               "    [System.Xml.Serialization.XmlElementAttribute(\"ChoiceOne\", typeof(string))]{0}" +
-                               "    [System.Xml.Serialization.XmlChoiceIdentifierAttribute(\"ItemType\")]{0}" +
-                               "    public string MyChoice;{0}" +
-#endif
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
                }
 
                [Test]
-#if NET_2_0
-               [Category ("NotDotNet")] // regression in MS.NET 2.0
-#endif
                [Category ("NotWorking")] // TODO: order of DefaultValueAttribute, ...
                public void ExportTypeMapping_Field ()
                {
@@ -263,19 +222,18 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
                                "[System.Xml.Serialization.XmlRootAttribute(\"field\", Namespace=\"\", IsNullable=true)]{0}" +
                                "public partial class Field {{{0}" +
                                "    {0}" +
-                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flags1Field = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flags1Field;{0}" +
                                "    {0}" +
-                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flags2Field = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flags2Field;{0}" +
                                "    {0}" +
-                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flags3Field = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e2);{0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flags3Field;{0}" +
                                "    {0}" +
                                "    private MonoTests.System.Xml.TestClasses.FlagEnum flags4Field;{0}" +
                                "    {0}" +
@@ -283,19 +241,27 @@ namespace MonoTests.System.XmlSerialization
                                "    {0}" +
                                "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers2Field;{0}" +
                                "    {0}" +
-                               "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers3Field = MonoTests.System.Xml.TestClasses.MapModifiers.Public;{0}" +
+                               "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers3Field;{0}" +
                                "    {0}" +
-                               "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers4Field = MonoTests.System.Xml.TestClasses.MapModifiers.Protected;{0}" +
+                               "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers4Field;{0}" +
                                "    {0}" +
-                               "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers5Field = MonoTests.System.Xml.TestClasses.MapModifiers.Public;{0}" +
+                               "    private MonoTests.System.Xml.TestClasses.MapModifiers modifiers5Field;{0}" +
                                "    {0}" +
                                "    private string[] namesField;{0}" +
                                "    {0}" +
                                "    private string streetField;{0}" +
                                "    {0}" +
+                               "    public Field() {{{0}" +
+                               "        this.flags1Field = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
+                               "        this.flags2Field = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
+                               "        this.flags3Field = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e2);{0}" +
+                               "        this.modifiers3Field = MonoTests.System.Xml.TestClasses.MapModifiers.Public;{0}" +
+                               "        this.modifiers4Field = MonoTests.System.Xml.TestClasses.MapModifiers.Protected;{0}" +
+                               "        this.modifiers5Field = MonoTests.System.Xml.TestClasses.MapModifiers.Public;{0}" +
+                               "    }}{0}" +
+                               "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag1\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.FlagEnum.e1)]{0}" +
                                "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags1 {{{0}" +
                                "        get {{{0}" +
                                "            return this.flags1Field;{0}" +
@@ -307,7 +273,6 @@ namespace MonoTests.System.XmlSerialization
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag2\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.FlagEnum.e1)]{0}" +
                                "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags2 {{{0}" +
                                "        get {{{0}" +
                                "            return this.flags2Field;{0}" +
@@ -319,7 +284,6 @@ namespace MonoTests.System.XmlSerialization
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag3\", Form=System.Xml.Schema.XmlSchemaForm.Qualified)]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute((MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e2))]{0}" +
                                "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags3 {{{0}" +
                                "        get {{{0}" +
                                "            return this.flags3Field;{0}" +
@@ -364,7 +328,6 @@ namespace MonoTests.System.XmlSerialization
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers3\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.MapModifiers.Public)]{0}" +
                                "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers3 {{{0}" +
                                "        get {{{0}" +
                                "            return this.modifiers3Field;{0}" +
@@ -376,7 +339,6 @@ namespace MonoTests.System.XmlSerialization
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers4\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.MapModifiers.Protected)]{0}" +
                                "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers4 {{{0}" +
                                "        get {{{0}" +
                                "            return this.modifiers4Field;{0}" +
@@ -388,7 +350,6 @@ namespace MonoTests.System.XmlSerialization
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers5\", Form=System.Xml.Schema.XmlSchemaForm.Qualified)]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.MapModifiers.Public)]{0}" +
                                "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers5 {{{0}" +
                                "        get {{{0}" +
                                "            return this.modifiers5Field;{0}" +
@@ -419,68 +380,12 @@ namespace MonoTests.System.XmlSerialization
                                "            this.streetField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(\"field\", Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class Field {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag1\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.FlagEnum.e1)]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags1 = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag2\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.FlagEnum.e1)]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags2 = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag3\", Form=System.Xml.Schema.XmlSchemaForm.Qualified)]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute((MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e2))]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags3 = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e2);{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"flag4\")]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags4;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers\")]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers2\")]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers2;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers3\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.MapModifiers.Public)]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers3 = MonoTests.System.Xml.TestClasses.MapModifiers.Public;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers4\")]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.MapModifiers.Protected)]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers4 = MonoTests.System.Xml.TestClasses.MapModifiers.Protected;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"modifiers5\", Form=System.Xml.Schema.XmlSchemaForm.Qualified)]{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.MapModifiers.Public)]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.MapModifiers Modifiers5 = MonoTests.System.Xml.TestClasses.MapModifiers.Public;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"names\")]{0}" +
-                               "    public string[] Names;{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"street\")]{0}" +
-                               "    public string Street;{0}" +
-#endif
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
                                "[System.FlagsAttribute()]{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"{1}\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
-#endif
                                "public enum FlagEnum {{{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
@@ -498,10 +403,8 @@ namespace MonoTests.System.XmlSerialization
                                "{0}" +
                                "/// <remarks/>{0}" +
                                "[System.FlagsAttribute()]{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
-#endif
                                "public enum MapModifiers {{{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
@@ -528,10 +431,8 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
-#endif
                                "[System.Xml.Serialization.XmlTypeAttribute(IncludeInSchema=false)]{0}" +
                                "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=false)]{0}" +
                                "public enum ItemChoiceType {{{0}" +
@@ -556,10 +457,8 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
-#endif
                                "[System.Xml.Serialization.XmlTypeAttribute(IncludeInSchema=false)]{0}" +
                                "public enum ItemChoiceType {{{0}" +
                                "    {0}" +
@@ -589,8 +488,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -611,7 +509,7 @@ namespace MonoTests.System.XmlSerialization
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -628,27 +526,10 @@ namespace MonoTests.System.XmlSerialization
                                "            this.somethingField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class ClassArrayContainer {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.SimpleClass[] items;{0}" +
-                               "}}{0}" +
-                               "{0}" +
-                               "/// <remarks/>{0}" +
-                               "public class SimpleClass {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    public string something;{0}" +
-#endif
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
                }
 
                [Test]
-#if NET_2_0
-               [Category ("NotDotNet")] // regression in MS.NET 2.0
-#endif
                [Category ("NotWorking")] // bug #78214
                public void ExportTypeMapping_Root ()
                {
@@ -663,49 +544,132 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
+                               "[System.SerializableAttribute()]{0}" +
+                               "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
+                               "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
                                "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"urn:aNS\")]{0}" +
                                "[System.Xml.Serialization.XmlRootAttribute(\"root\", Namespace=\"urn:aNS\", IsNullable=false)]{0}" +
-                               "public class Root {{{0}" +
+                               "public partial class Root {{{0}" +
+                               "    {0}" +
+                               "    private MonoTests.System.Xml.TestClasses.OptionalValueTypeContainer optionalValueField;{0}" +
+                               "    {0}" +
+                               "    private MonoTests.System.Xml.TestClasses.TestDefault defaultField;{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.OptionalValueTypeContainer OptionalValue;{0}" +
+                               "    public MonoTests.System.Xml.TestClasses.OptionalValueTypeContainer OptionalValue {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.optionalValueField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.optionalValueField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.TestDefault Default;{0}" +
+                               "    public MonoTests.System.Xml.TestClasses.TestDefault Default {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.defaultField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.defaultField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
+                               "[System.SerializableAttribute()]{0}" +
+                               "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
+                               "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
                                "[System.Xml.Serialization.XmlTypeAttribute(TypeName=\"optionalValueType\", Namespace=\"some:urn\")]{0}" +
-                               "public class OptionalValueTypeContainer {{{0}" +
+                               "public partial class OptionalValueTypeContainer {{{0}" +
+                               "    {0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum attributesField;{0}" +
+                               "    {0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flagsField;{0}" +
+                               "    {0}" +
+                               "    private bool flagsFieldSpecified;{0}" +
+                               "    {0}" +
+                               "    private bool isEmptyField;{0}" +
+                               "    {0}" +
+                               "    private bool isEmptyFieldSpecified;{0}" +
+                               "    {0}" +
+                               "    private bool isNullField;{0}" +
+                               "    {0}" +
+                               "    public OptionalValueTypeContainer() {{{0}" +
+                               "        this.attributesField = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e4);{0}" +
+                               "        this.flagsField = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute((MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e4))]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Attributes = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e4);{0}" +
+                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Attributes {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.attributesField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.attributesField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(MonoTests.System.Xml.TestClasses.FlagEnum.e1)]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags = MonoTests.System.Xml.TestClasses.FlagEnum.e1;{0}" +
+                               "    public MonoTests.System.Xml.TestClasses.FlagEnum Flags {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.flagsField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.flagsField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlIgnoreAttribute()]{0}" +
-                               "    public bool FlagsSpecified;{0}" +
+                               "    public bool FlagsSpecified {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.flagsFieldSpecified;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.flagsFieldSpecified = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(false)]{0}" +
-                               "    public bool IsEmpty = false;{0}" +
+                               "    public bool IsEmpty {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.isEmptyField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.isEmptyField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
                                "    [System.Xml.Serialization.XmlIgnoreAttribute()]{0}" +
-                               "    public bool IsEmptySpecified;{0}" +
+                               "    public bool IsEmptySpecified {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.isEmptyFieldSpecified;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.isEmptyFieldSpecified = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(false)]{0}" +
-                               "    public bool IsNull = false;{0}" +
+                               "    public bool IsNull {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.isNullField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.isNullField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
-                               "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"some:urn\")]{0}" +
                                "[System.FlagsAttribute()]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
+                               "[System.SerializableAttribute()]{0}" +
+                               "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"some:urn\")]{0}" +
                                "public enum FlagEnum {{{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
@@ -722,40 +686,109 @@ namespace MonoTests.System.XmlSerialization
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"{1}\")]{0}" +
+                               "[System.SerializableAttribute()]{0}" +
+                               "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
+                               "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
                                "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"urn:myNS\")]{0}" +
-                               "public class TestDefault {{{0}" +
+                               "public partial class TestDefault {{{0}" +
+                               "    {0}" +
+                               "    private string strField;{0}" +
+                               "    {0}" +
+                               "    private string strDefaultField;{0}" +
+                               "    {0}" +
+                               "    private bool boolTField;{0}" +
+                               "    {0}" +
+                               "    private bool boolFField;{0}" +
+                               "    {0}" +
+                               "    private decimal decimalvalField;{0}" +
+                               "    {0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum flagField;{0}" +
+                               "    {0}" +
+                               "    private MonoTests.System.Xml.TestClasses.FlagEnum_Encoded flagencodedField;{0}" +
+                               "    {0}" +
+                               "    public TestDefault() {{{0}" +
+                               "        this.strDefaultField = \"Default Value\";{0}" +
+                               "        this.flagField = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e4);{0}" +
+                               "        this.flagencodedField = (MonoTests.System.Xml.TestClasses.FlagEnum_Encoded.e1 | MonoTests.System.Xml.TestClasses.FlagEnum_Encoded.e4);{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    public string str;{0}" +
+                               "    public string str {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.strField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.strField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(\"Default Value\")]{0}" +
-                               "    public string strDefault = \"Default Value\";{0}" +
+                               "    public string strDefault {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.strDefaultField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.strDefaultField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(true)]{0}" +
-                               "    public bool boolT = true;{0}" +
+                               "    public bool boolT {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.boolTField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.boolTField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(false)]{0}" +
-                               "    public bool boolF = false;{0}" +
+                               "    public bool boolF {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.boolFField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.boolFField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute(typeof(System.Decimal), \"10\")]{0}" +
-                               "    public System.Decimal decimalval = ((System.Decimal)(10m));{0}" +
+                               "    public decimal decimalval {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.decimalvalField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.decimalvalField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute((MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e4))]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum flag = (MonoTests.System.Xml.TestClasses.FlagEnum.e1 | MonoTests.System.Xml.TestClasses.FlagEnum.e4);{0}" +
+                               "    public MonoTests.System.Xml.TestClasses.FlagEnum flag {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.flagField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.flagField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
-                               "    [System.ComponentModel.DefaultValueAttribute((MonoTests.System.Xml.TestClasses.FlagEnum_Encoded.e1 | MonoTests.System.Xml.TestClasses.FlagEnum_Encoded.e4))]{0}" +
-                               "    public MonoTests.System.Xml.TestClasses.FlagEnum_Encoded flagencoded = (MonoTests.System.Xml.TestClasses.FlagEnum_Encoded.e1 | MonoTests.System.Xml.TestClasses.FlagEnum_Encoded.e4);{0}" +
+                               "    public MonoTests.System.Xml.TestClasses.FlagEnum_Encoded flagencoded {{{0}" +
+                               "        get {{{0}" +
+                               "            return this.flagencodedField;{0}" +
+                               "        }}{0}" +
+                               "        set {{{0}" +
+                               "            this.flagencodedField = value;{0}" +
+                               "        }}{0}" +
+                               "    }}{0}" +
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
-                               "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"urn:myNS\")]{0}" +
                                "[System.FlagsAttribute()]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
+                               "[System.SerializableAttribute()]{0}" +
+                               "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"urn:myNS\")]{0}" +
                                "public enum FlagEnum {{{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
@@ -772,8 +805,10 @@ namespace MonoTests.System.XmlSerialization
                                "}}{0}" +
                                "{0}" +
                                "/// <remarks/>{0}" +
-                               "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"urn:myNS\")]{0}" +
                                "[System.FlagsAttribute()]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
+                               "[System.SerializableAttribute()]{0}" +
+                               "[System.Xml.Serialization.XmlTypeAttribute(Namespace=\"urn:myNS\")]{0}" +
                                "public enum FlagEnum_Encoded {{{0}" +
                                "    {0}" +
                                "    /// <remarks/>{0}" +
@@ -801,8 +836,7 @@ namespace MonoTests.System.XmlSerialization
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
                                "[System.Diagnostics.DebuggerStepThroughAttribute()]{0}" +
                                "[System.ComponentModel.DesignerCategoryAttribute(\"code\")]{0}" +
@@ -821,14 +855,6 @@ namespace MonoTests.System.XmlSerialization
                                "            this.somethingField = value;{0}" +
                                "        }}{0}" +
                                "    }}{0}" +
-#else
-                               "[System.Xml.Serialization.XmlRootAttribute(\"simple\", Namespace=\"\", IsNullable=true)]{0}" +
-                               "public class SimpleClassWithXmlAttributes {{{0}" +
-                               "    {0}" +
-                               "    /// <remarks/>{0}" +
-                               "    [System.Xml.Serialization.XmlAttributeAttribute(\"member\")]{0}" +
-                               "    public string something;{0}" +
-#endif
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
                }
 
@@ -883,10 +909,8 @@ namespace MonoTests.System.XmlSerialization
                                "{0}{0}" +
                                "/// <remarks/>{0}" +
                                "[System.FlagsAttribute()]{0}" +
-#if NET_2_0
-                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"System.Xml\", \"2.0.50727.42\")]{0}" +
+                               "[System.CodeDom.Compiler.GeneratedCodeAttribute(\"nunit-lite-console\", \"0.0.0.0\")]{0}" +
                                "[System.SerializableAttribute()]{0}" +
-#endif
                                "[System.Xml.Serialization.XmlRootAttribute(Namespace=\"\", IsNullable=false)]{0}" +
                                "public enum ZeroFlagEnum {{{0}" +
                                "    {0}" +
@@ -904,6 +928,73 @@ namespace MonoTests.System.XmlSerialization
                                "}}{0}", Environment.NewLine), sw.ToString (), "#2");
                }
 
+               [Test]
+               public void DuplicateIdentifiers ()
+               {
+                       XmlSchema xs = XmlSchema.Read (File.OpenText ("Test/XmlFiles/xsd/82078.xsd"), null);
+
+                       XmlSchemas xss = new XmlSchemas ();
+                       xss.Add (xs);
+                       XmlSchemaImporter imp = new XmlSchemaImporter (xss);
+                       CodeNamespace cns = new CodeNamespace ();
+                       XmlCodeExporter exp = new XmlCodeExporter (cns);
+                       XmlQualifiedName qname = new XmlQualifiedName (
+                               "Operation", "http://tempuri.org/");
+                       exp.ExportTypeMapping (imp.ImportTypeMapping (qname));
+                       CodeCompileUnit ccu = new CodeCompileUnit ();
+                       ccu.Namespaces.Add (cns);
+
+                       CodeDomProvider provider = new CSharpCodeProvider ();
+                       ICodeCompiler compiler = provider.CreateCompiler ();
+
+                       CompilerParameters options = new CompilerParameters ();
+                       options.ReferencedAssemblies.Add ("System.dll");
+                       options.ReferencedAssemblies.Add ("System.Xml.dll");
+                       options.GenerateInMemory = true;
+
+                       CompilerResults result = compiler.CompileAssemblyFromDom (options, ccu);
+                       Assert.AreEqual (0, result.Errors.Count, "#1");
+                       Assert.IsNotNull (result.CompiledAssembly, "#2");
+               }
+
+               [Test]
+               public void ExportSimpleContentExtensionEnum ()
+               {
+                       string xsd = @"
+<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema' xmlns:b='urn:bar' targetNamespace='urn:bar'>
+  <xs:element name='Foo' type='b:DayOfWeek' />
+  <xs:complexType name='DayOfWeek'>
+    <xs:simpleContent>
+      <xs:extension base='b:WeekDay' />
+    </xs:simpleContent>
+  </xs:complexType>
+  <xs:simpleType name='WeekDay'>
+    <xs:restriction base='xs:string'>
+      <xs:enumeration value='Sunday'/>
+      <xs:enumeration value='Monday'/>
+      <xs:enumeration value='Tuesday'/>
+      <xs:enumeration value='Wednesday'/>
+      <xs:enumeration value='Thursday'/>
+      <xs:enumeration value='Friday'/>
+      <xs:enumeration value='Saturday'/>
+    </xs:restriction>
+  </xs:simpleType>
+</xs:schema>";
+                       XmlSchema xs = XmlSchema.Read (new StringReader (xsd), null);
+                       XmlSchemas xss = new XmlSchemas ();
+                       xss.Add (xs);
+                       XmlSchemaImporter imp = new XmlSchemaImporter (xss);
+                       XmlTypeMapping m = imp.ImportTypeMapping (new XmlQualifiedName ("Foo", "urn:bar"));
+                       CodeNamespace cns = new CodeNamespace ();
+                       XmlCodeExporter exp = new XmlCodeExporter (cns);
+                       exp.ExportTypeMapping (m);
+                       CodeTypeDeclaration enumType = null;
+                       foreach (CodeTypeDeclaration ctd in cns.Types)
+                               if (ctd.Name == "WeekDay")
+                                       enumType = ctd;
+                       Assert.IsNotNull (enumType);
+               }
+
                CodeNamespace ExportCode (Type type)
                {
                        XmlReflectionImporter imp = new XmlReflectionImporter ();
@@ -922,3 +1013,5 @@ namespace MonoTests.System.XmlSerialization
                }
        }
 }
+
+#endif