2007-04-25 Atsushi Enomoto <atsushi@ximian.com>
authorAtsushi Eno <atsushieno@gmail.com>
Wed, 25 Apr 2007 18:22:32 +0000 (18:22 -0000)
committerAtsushi Eno <atsushieno@gmail.com>
Wed, 25 Apr 2007 18:22:32 +0000 (18:22 -0000)
* XmlConvert.cs : in 2.0, use F instead of f in dateTime formatting.

* XmlCustomFormatter.cs :
  in 2.0, use F instead of f for dateTime formatting.

* XmlSerializationWriterTests.cs, XmlSerializerTests.cs :
  fixed wrong dateTime formatting tests.

svn path=/trunk/mcs/; revision=76268

mcs/class/System.XML/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/System.Xml.Serialization/XmlCustomFormatter.cs
mcs/class/System.XML/System.Xml/ChangeLog
mcs/class/System.XML/System.Xml/XmlConvert.cs
mcs/class/System.XML/Test/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializationWriterTests.cs
mcs/class/System.XML/Test/System.Xml.Serialization/XmlSerializerTests.cs

index 320ed60f8c278aa3bb37db5caf4a092c2fa19155..97161f1caa6d9945128f831d015b437d967f2d13 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlCustomFormatter.cs :
+         in 2.0, use F instead of f for dateTime formatting.
+
 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XmlSchemas.cs : 1.1-only duplicate check does not seem to be
index 2d4026dbc3ff918d3943e4fb63dc2e2bf7d4c3de..f645ea9d4f05898833b69ecf431e66cf25422a5f 100644 (file)
@@ -66,7 +66,11 @@ namespace System.Xml.Serialization {
 
                internal static string FromDateTime (DateTime value)
                {
+#if NET_2_0
+                       return XmlConvert.ToString (value, "yyyy-MM-ddTHH:mm:ss.FFFFFFF");
+#else
                        return XmlConvert.ToString (value, "yyyy-MM-ddTHH:mm:ss.fffffffzzz");
+#endif
                }
 
                internal static string FromTime (DateTime value)
@@ -225,9 +229,15 @@ namespace System.Xml.Serialization {
                                case "boolean": return XmlConvert.ToString ((bool)value);
                                case "unsignedByte": return XmlConvert.ToString ((byte)value);
                                case "char": return XmlConvert.ToString ((int)(char)value);
+#if NET_2_0
+                               case "dateTime": return XmlConvert.ToString ((DateTime)value, XmlDateTimeSerializationMode.Unspecified);
+                               case "date": return ((DateTime)value).ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
+                               case "time": return ((DateTime)value).ToString("HH:mm:ss.FFFFFFF", CultureInfo.InvariantCulture);
+#else
                                case "dateTime": return XmlConvert.ToString ((DateTime)value);
                                case "date": return ((DateTime)value).ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
                                case "time": return ((DateTime)value).ToString("HH:mm:ss.fffffffzzz", CultureInfo.InvariantCulture);
+#endif
                                case "decimal": return XmlConvert.ToString ((decimal)value);
                                case "double": return XmlConvert.ToString ((double)value);
                                case "short": return XmlConvert.ToString ((Int16)value);
@@ -258,7 +268,11 @@ namespace System.Xml.Serialization {
                                case "char": return (char)XmlConvert.ToInt32 (value);
                                case "dateTime": return XmlConvert.ToDateTime (value);
                                case "date": return DateTime.ParseExact (value, "yyyy-MM-dd", null);
+#if NET_2_0
+                               case "time": return DateTime.ParseExact (value, "HH:mm:ss.FFFFFFF", null);
+#else
                                case "time": return DateTime.ParseExact (value, "HH:mm:ss.fffffffzzz", null);
+#endif
                                case "decimal": return XmlConvert.ToDecimal (value);
                                case "double": return XmlConvert.ToDouble (value);
                                case "short": return XmlConvert.ToInt16 (value);
@@ -347,9 +361,15 @@ namespace System.Xml.Serialization {
                                case "boolean": return "XmlConvert.ToBoolean (" + value + ")";
                                case "unsignedByte": return "byte.Parse (" + value + ", CultureInfo.InvariantCulture)";
                                case "char": return "(char)Int32.Parse (" + value + ", CultureInfo.InvariantCulture)";
+#if NET_2_0
+                               case "dateTime": return "XmlConvert.ToDateTime (" + value + ", XmlDateTimeSerializationMode.Unspecified)";
+                               case "date": return "DateTime.ParseExact (" + value + ", \"yyyy-MM-dd\", CultureInfo.InvariantCulture)";
+                               case "time": return "DateTime.ParseExact (" + value + ", \"HH:mm:ss.FFFFFFF\", CultureInfo.InvariantCulture)";
+#else
                                case "dateTime": return "XmlConvert.ToDateTime (" + value + ")";
                                case "date": return "DateTime.ParseExact (" + value + ", \"yyyy-MM-dd\", CultureInfo.InvariantCulture)";
                                case "time": return "DateTime.ParseExact (" + value + ", \"HH:mm:ss.fffffffzzz\", CultureInfo.InvariantCulture)";
+#endif
                                case "decimal": return "Decimal.Parse (" + value + ", CultureInfo.InvariantCulture)";
                                case "double": return "XmlConvert.ToDouble (" + value + ")";
                                case "short": return "Int16.Parse (" + value + ", CultureInfo.InvariantCulture)";
index 69de9d434c6f204cfc74896b4b05ade8fc3201e8..43d60bcb6d89b4a5e6fa904109d4103495cc2682 100644 (file)
@@ -1,3 +1,7 @@
+2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlConvert.cs : in 2.0, use F instead of f in dateTime formatting.
+
 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XmlReader.cs : fixed wrong depth comparison in ReadToNextSibling().
index 62afe4f792e3615c7f0ba954ea411dff2ab0bd5f..ebbd8f43f13e684f7016124e0fb2954851d46e41 100644 (file)
@@ -288,12 +288,12 @@ namespace System.Xml {
                        switch (mode) {
                        case XmlDateTimeSerializationMode.Local:
                        case XmlDateTimeSerializationMode.RoundtripKind:
-                       default:
-                               return ToDateTime (value, "yyyy-MM-ddTHH:mm:ss.fffffffzzz");
+                               return ToDateTime (value, "yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz");
                        case XmlDateTimeSerializationMode.Utc:
-                               return ToDateTime (value, "yyyy-MM-ddTHH:mm:ss.fffffffZ").ToUniversalTime ();
+                               return ToDateTime (value, "yyyy-MM-ddTHH:mm:ss.FFFFFFFZ").ToUniversalTime ();
                        case XmlDateTimeSerializationMode.Unspecified:
-                               return ToDateTime (value, "yyyy-MM-ddTHH:mm:ss.fffffff");
+                       default:
+                               return ToDateTime (value, "yyyy-MM-ddTHH:mm:ss.FFFFFFF");
                        }
                }
 #endif
@@ -499,17 +499,17 @@ namespace System.Xml {
                        case XmlDateTimeSerializationMode.RoundtripKind:
                        default:
                                return value.ToString (
-                                       "yyyy-MM-ddTHH:mm:ss.fffffffzzz",
+                                       "yyyy-MM-ddTHH:mm:ss.FFFFFFFzzz",
                                        CultureInfo.InvariantCulture);
                                break;
                        case XmlDateTimeSerializationMode.Utc:
                                return value.ToUniversalTime ().ToString (
-                                       "yyyy-MM-ddTHH:mm:ss.fffffffZ",
+                                       "yyyy-MM-ddTHH:mm:ss.FFFFFFFZ",
                                        CultureInfo.InvariantCulture);
                                break;
                        case XmlDateTimeSerializationMode.Unspecified:
                                return value.ToString (
-                                       "yyyy-MM-ddTHH:mm:ss.fffffff",
+                                       "yyyy-MM-ddTHH:mm:ss.FFFFFFF",
                                        CultureInfo.InvariantCulture);
                                break;
                        }
index 514e42fc5a959b1c944c8b20d68ec4dc7ba1cec7..893bbf65e569cca3043d5c00fa77f4d0383fee93 100644 (file)
@@ -1,3 +1,8 @@
+2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlSerializationWriterTests.cs, XmlSerializerTests.cs :
+         fixed wrong dateTime formatting tests.
+
 2007-04-24  Atsushi Enomoto  <atsushi@ximian.com>
 
        * XmlSerializerTests.cs : another case on #80759 from gert.
index 91780e6d6a86c068718111aee3b596adaab94aac..23aab49a858bbfc7971deff8e4c18d0c80df17a2 100644 (file)
@@ -128,7 +128,11 @@ namespace MonoTests.System.XmlSerialization
                public void TestFromDateTime()
                {
                        DateTime d = new DateTime();
+#if NET_2_0
+                       Assert.AreEqual ("0001-01-01T00:00:00", FromDateTime (d));
+#else
                        Assert.AreEqual ("0001-01-01T00:00:00.0000000", FromDateTime (d).Substring (0, 27));
+#endif
                }
 
                [Test] // bug #77500
@@ -768,10 +772,17 @@ namespace MonoTests.System.XmlSerialization
                        xsw.Reset ();
 
                        xsw.ExecuteWriteTypedPrimitive ("x", ANamespace, dateTime, false);
+                       // FIXME: This is a bad test case. The following switch
+                       // should be applied to the entire test.
+#if NET_2_0
+                       Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
+                               "<x xmlns='{0}'>1973-08-13T00:00:00</x>", ANamespace),
+                               xsw.Content, "#1");
+#else
                        Assert.AreEqual (string.Format (CultureInfo.InvariantCulture,
                                "<x xmlns='{0}'>{1}</x>", ANamespace, FromDateTime (dateTime)),
                                xsw.Content, "#1");
-
+#endif
                        xsw.Reset ();
 
                        xsw.ExecuteWriteTypedPrimitive ("x", string.Empty, dateTime, false);
@@ -813,6 +824,8 @@ namespace MonoTests.System.XmlSerialization
                                FromDateTime (dateTime)), xsw.Content, "#7");
                }
 
+               // FIXME: This is a bad test case.
+               // See TestWriteTypedPrimitive_DateTime.
                [Test]
                public void TestWriteTypedPrimitive_DateTime_XsiType ()
                {
index 74f2eac7eccc40a530bcfbc63aa7716eabf923be..81aae04f6c20c4f43771fd1d3e3df79f0d222504 100644 (file)
@@ -991,7 +991,11 @@ namespace MonoTests.System.XmlSerialization
                        TimeZone tz = TimeZone.CurrentTimeZone;
                        TimeSpan off = tz.GetUtcOffset (d);
                        string sp = string.Format ("{0}{1:00}:{2:00}", off.Ticks >= 0 ? "+" : "", off.Hours, off.Minutes);
+#if NET_2_0
+                       Assert.AreEqual (Infoset ("<dateTime>0001-01-01T00:00:00</dateTime>"), WriterText);
+#else
                        Assert.AreEqual (Infoset ("<dateTime>0001-01-01T00:00:00.0000000" + sp + "</dateTime>"), WriterText);
+#endif
                }
 
                /*