diff options
author | Vladimir Krasnov <krasnov@mono-cvs.ximian.com> | 2005-11-24 16:42:27 +0300 |
---|---|---|
committer | Vladimir Krasnov <krasnov@mono-cvs.ximian.com> | 2005-11-24 16:42:27 +0300 |
commit | cf50bd21d7f9940e6820aca0aa03e11c4e788676 (patch) | |
tree | fdf5b94bffffb150efa512ae82f29aaaa946597a /mcs/class | |
parent | 5976aa71a796368230d45c2e2f339990cf099773 (diff) |
* XmlTypeMapping.cs: fixed GetXmlName method, added difference of value serialization of flags and non-flags enums
* XmlSerializerTestClasses.cs: added two enum types, without 0-value
* XmlSerializerTests.cs: added tests for serialization enum's default value
svn path=/trunk/mcs/; revision=53451
Diffstat (limited to 'mcs/class')
5 files changed, 29 insertions, 1 deletions
diff --git a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog index 596eab259cc..b3181313e36 100644 --- a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog +++ b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog @@ -1,3 +1,8 @@ +2005-11-24 Vladimir Krasnov <vladimirk@mainsoft.com> + + * XmlTypeMapping.cs: fixed GetXmlName method, added difference + of value serialization of flags and non-flags enums + 2005-11-23 Konstantin Triger <kostat@mainsoft.com> * XmlSchemaExporter.cs: do not import empty namespaces. diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs index 6b374f070d8..c772e60ff86 100644 --- a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs +++ b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs @@ -667,7 +667,7 @@ namespace System.Xml.Serialization // Enum default value will not be written
// unless it is one of the enum legal values
- if (enumName.Equals("0"))
+ if (enumName == "0" && IsFlags)
return String.Empty;
else
return Convert.ToInt64(enumValue).ToString(CultureInfo.InvariantCulture);
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog index 4ad1a3172e1..34485630352 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog @@ -1,3 +1,10 @@ +2005-11-24 Vladimir Krasnov <vladimirk@mainsoft.com> + + * XmlSerializerTestClasses.cs: added two enum types, without + 0-value + * XmlSerializerTests.cs: added tests for serialization enum's + default value + 2005-09-26 Lluis Sanchez Gual <lluis@novell.com> * XmlSerializerTests.cs, DeserializeTests.cs, diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs index 10278e3b052..050d3af4867 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTestClasses.cs @@ -18,6 +18,10 @@ using System.Xml; namespace MonoTests.System.Xml.TestClasses
{
public enum SimpleEnumeration { FIRST, SECOND };
+
+ [Flags]
+ public enum EnumDefaultValue { e1 = 1, e2 = 2, e3 = 3 }
+ public enum EnumDefaultValueNF { e1 = 1, e2 = 2, e3 = 3 }
public class SimpleClass
{
diff --git a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs index 795ae328c68..f1938e0f4fb 100644 --- a/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs +++ b/mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs @@ -210,6 +210,18 @@ namespace MonoTests.System.XmlSerialization }
[Test]
+ public void TestSerializeEnumDefaultValue() {
+ Serialize(new EnumDefaultValue());
+ AssertEquals(Infoset("<EnumDefaultValue />"), WriterText);
+
+ Serialize(new EnumDefaultValueNF());
+ AssertEquals(Infoset("<EnumDefaultValueNF>0</EnumDefaultValueNF>"), WriterText);
+
+ Serialize(new SimpleEnumeration());
+ AssertEquals(Infoset("<SimpleEnumeration>FIRST</SimpleEnumeration>"), WriterText);
+ }
+
+ [Test]
public void TestSerializeQualifiedName()
{
Serialize(new XmlQualifiedName("me", "home.urn"));
|