[test] Test SRE of a class with two methods with the same name.
[mono.git] / mcs / class / corlib / System.Runtime.Remoting.Metadata.W3cXsd2001 / SoapTime.cs
index d08ce5683e110abe4185113a5f6ba51a060b2dde..60d96e31006801c94438dbea49d4c643bae22b63 100644 (file)
 //
 // Authors:
 //      Martin Willemoes Hansen (mwh@sysrq.dk)
+//      Lluis Sanchez Gual (lluis@ximian.com)
 //
 // (C) 2003 Martin Willemoes Hansen
 //
 
+//
+// Copyright (C) 2004 Novell, Inc (http://www.novell.com)
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+// 
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+// 
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System;
+using System.Globalization;
+
 namespace System.Runtime.Remoting.Metadata.W3cXsd2001 
 {
        [Serializable]
-        public sealed class SoapTime : ISoapXsd
+       [System.Runtime.InteropServices.ComVisible (true)]
+       public sealed class SoapTime : ISoapXsd
        {
-               [MonoTODO]
-               public SoapTime()
+               static readonly string[] _datetimeFormats = new string[]
+               {
+                       "HH:mm:ss",
+                       "HH:mm:ss.f",
+                       "HH:mm:ss.ff",
+                       "HH:mm:ss.fff",
+                       "HH:mm:ss.ffff",
+                       "HH:mm:ss.fffff",
+                       "HH:mm:ss.ffffff",
+                       "HH:mm:ss.fffffff",
+                       "HH:mm:sszzz",
+                       "HH:mm:ss.fzzz",
+                       "HH:mm:ss.ffzzz",
+                       "HH:mm:ss.fffzzz",
+                       "HH:mm:ss.ffffzzz",
+                       "HH:mm:ss.fffffzzz",
+                       "HH:mm:ss.ffffffzzz",
+                       "HH:mm:ss.fffffffzzz",
+                       "HH:mm:ssZ",
+                       "HH:mm:ss.fZ",
+                       "HH:mm:ss.ffZ",
+                       "HH:mm:ss.fffZ",
+                       "HH:mm:ss.ffffZ",
+                       "HH:mm:ss.fffffZ",
+                       "HH:mm:ss.ffffffZ",
+                       "HH:mm:ss.fffffffZ"
+               };
+               
+               DateTime _value;
+               
+               public SoapTime ()
                {
                }
 
-               public DateTime Value {
-                       [MonoTODO]
-                       get { throw new NotImplementedException(); } 
+               public SoapTime (DateTime value)
+               {
+                       _value = value;
+               }
 
-                       [MonoTODO]
-                       set { throw new NotImplementedException(); }
+               public DateTime Value {
+                       get { return _value; } 
+                       set { _value = value; }
                }
+               
                public static string XsdType {
-                       [MonoTODO]
-                       get { throw new NotImplementedException(); }
+                       get { return "time"; }
                }
 
-               [MonoTODO]
                public string GetXsdType()
                {
-                       throw new NotImplementedException();
+                       return XsdType;
                }
                
-               [MonoTODO]
                public static SoapTime Parse (string value)
                {
-                       throw new NotImplementedException();
+                       return new SoapTime (DateTime.ParseExact (value, _datetimeFormats, null, DateTimeStyles.None));
                }
 
-               [MonoTODO]
                public override string ToString()
                {
-                       throw new NotImplementedException();
+                       return _value.ToString("HH:mm:ss.fffffffzzz", CultureInfo.InvariantCulture);
                }
-
-               [MonoTODO]
-               ~SoapTime()
-               {
-               }
-               
        }
 }