2005-11-16 Sebastien Pouliot <sebastien@ximian.com>
authorSebastien Pouliot <sebastien@ximian.com>
Wed, 16 Nov 2005 14:27:38 +0000 (14:27 -0000)
committerSebastien Pouliot <sebastien@ximian.com>
Wed, 16 Nov 2005 14:27:38 +0000 (14:27 -0000)
* ElapsedEventArgsCas.cs: New. CAS unit tests.
* TimerCas.cs: New. CAS unit tests.
* TimersDescriptionAttributeCas.cs: New. CAS unit tests.

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

mcs/class/System/Test/System.Timers/ChangeLog
mcs/class/System/Test/System.Timers/ElapsedEventArgsCas.cs [new file with mode: 0644]
mcs/class/System/Test/System.Timers/TimerCas.cs [new file with mode: 0644]
mcs/class/System/Test/System.Timers/TimersDescriptionAttributeCas.cs [new file with mode: 0644]

index b236938e382cd9a16f1a4c788862d5ec76717bce..de34fe126b623afbc607f29f88f799f07bca4ecc 100644 (file)
@@ -1,3 +1,9 @@
+2005-11-16  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * ElapsedEventArgsCas.cs: New. CAS unit tests.
+       * TimerCas.cs: New. CAS unit tests.
+       * TimersDescriptionAttributeCas.cs: New. CAS unit tests.
+
 2005-05-28  Kornél Pál <kornelpal@hotmail.com>
 
        * TimerTest.cs: New test file for System.Timers.Timer.
diff --git a/mcs/class/System/Test/System.Timers/ElapsedEventArgsCas.cs b/mcs/class/System/Test/System.Timers/ElapsedEventArgsCas.cs
new file mode 100644 (file)
index 0000000..8612b69
--- /dev/null
@@ -0,0 +1,90 @@
+//
+// ElapsedEventArgsCas.cs - CAS unit tests for System.Timers.ElapsedEventArgs
+//
+// Author:
+//     Sebastien Pouliot  <sebastien@ximian.com>
+//
+// Copyright (C) 2005 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 NUnit.Framework;
+
+using System;
+using System.Reflection;
+using System.Security;
+using System.Security.Permissions;
+using System.Timers;
+using ST = System.Threading;
+
+namespace MonoCasTests.System.Timers {
+
+       [TestFixture]
+       [Category ("CAS")]
+       public class ElapsedEventArgsCas {
+
+               Timer t;
+               ElapsedEventArgs eea;
+
+               private void SetElapsedEventArgs (object sender, ElapsedEventArgs e)
+               {
+                       eea = e;
+               }
+
+               [TestFixtureSetUp]
+               public void FixtureSetUp ()
+               {
+                       // fulltrust
+                       t = new Timer (1);
+                       t.Elapsed += new ElapsedEventHandler (SetElapsedEventArgs);
+                       t.Enabled = true;
+                       ST.Thread.Sleep (100);
+               }
+
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Deny_Unrestricted ()
+               {
+                       Assert.IsNotNull (eea, "ElapsedEventArgs");
+                       DateTime dt = eea.SignalTime;
+                       DateTime now = DateTime.Now;
+                       Assert.IsTrue (dt > now.AddSeconds (-2), ">");
+                       Assert.IsTrue (dt < now.AddSeconds (2), "<");
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       MethodInfo mi = typeof (ElapsedEventArgs).GetProperty ("SignalTime").GetGetMethod ();
+                       Assert.IsNotNull (mi, "SignalTime");
+                       Assert.IsNotNull (mi.Invoke (eea, null), "invoke");
+               }
+       }
+}
+
diff --git a/mcs/class/System/Test/System.Timers/TimerCas.cs b/mcs/class/System/Test/System.Timers/TimerCas.cs
new file mode 100644 (file)
index 0000000..fd3bb32
--- /dev/null
@@ -0,0 +1,129 @@
+//
+// TimerCas.cs - CAS unit tests for System.Timers.Timer
+//
+// Author:
+//     Sebastien Pouliot  <sebastien@ximian.com>
+//
+// Copyright (C) 2005 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 NUnit.Framework;
+
+using System;
+using System.ComponentModel;
+using System.Reflection;
+using System.Security;
+using System.Security.Permissions;
+using System.Timers;
+
+namespace MonoCasTests.System.Timers {
+
+       class TestSyncInvoke: ISynchronizeInvoke {
+
+               public IAsyncResult BeginInvoke (Delegate method, object[] args)
+               {
+                       return null;
+               }
+
+               public object EndInvoke (IAsyncResult result)
+               {
+                       return null;
+               }
+
+               public object Invoke (Delegate method, object[] args)
+               {
+                       return EndInvoke (BeginInvoke (method, args));
+               }
+
+               public bool InvokeRequired {
+                       get { return true; }
+               }
+       }
+
+       [TestFixture]
+       [NUnit.Framework.Category ("CAS")]
+       public class TimerCas {
+
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
+
+               private void Callback (object sender, ElapsedEventArgs e)
+               {
+               }
+
+               private void CommonTests (Timer t)
+               {
+                       Assert.IsTrue (t.AutoReset, "AutoReset");
+                       t.AutoReset = false;
+                       Assert.IsFalse (t.Enabled, "Enabled");
+                       t.Enabled = true;
+                       Assert.IsNull (t.Site, "Site");
+                       t.Site = null;
+                       Assert.IsNull (t.SynchronizingObject, "SynchronizingObject");
+                       t.SynchronizingObject = new TestSyncInvoke ();
+
+                       t.Elapsed += new ElapsedEventHandler (Callback);
+                       t.Elapsed -= new ElapsedEventHandler (Callback);
+
+                       t.BeginInit ();
+                       t.EndInit ();
+                       t.Start ();
+                       t.Stop ();
+                       t.Close ();
+
+                       (t as IDisposable).Dispose ();
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Constructor_Deny_Unrestricted ()
+               {
+                       Timer t = new Timer ();
+                       Assert.AreEqual (100.0, t.Interval, "Interval");
+                       t.Interval = 200.0;
+                       CommonTests (t);
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void ConstructorDouble_Deny_Unrestricted ()
+               {
+                       Timer t = new Timer (200.0);
+                       Assert.AreEqual (200.0, t.Interval, "Interval");
+                       t.Interval = 100.0;
+                       CommonTests (t);
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       ConstructorInfo ci = typeof (Timer).GetConstructor (new Type [0]);
+                       Assert.IsNotNull (ci, "default .ctor");
+                       Assert.IsNotNull (ci.Invoke (null), "invoke");
+               }
+       }
+}
diff --git a/mcs/class/System/Test/System.Timers/TimersDescriptionAttributeCas.cs b/mcs/class/System/Test/System.Timers/TimersDescriptionAttributeCas.cs
new file mode 100644 (file)
index 0000000..896e911
--- /dev/null
@@ -0,0 +1,69 @@
+//
+// TimersDescriptionAttributeCas.cs 
+//     - CAS unit tests for System.Timers.TimersDescriptionAttributeCas
+//
+// Author:
+//     Sebastien Pouliot  <sebastien@ximian.com>
+//
+// Copyright (C) 2005 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 NUnit.Framework;
+
+using System;
+using System.Reflection;
+using System.Security;
+using System.Security.Permissions;
+using System.Timers;
+
+namespace MonoCasTests.System.Timers {
+
+       [TestFixture]
+       [Category ("CAS")]
+       public class TimersDescriptionAttributeCas {
+
+               [SetUp]
+               public void SetUp ()
+               {
+                       if (!SecurityManager.SecurityEnabled)
+                               Assert.Ignore ("SecurityManager.SecurityEnabled is OFF");
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void Constructor_Deny_Unrestricted ()
+               {
+                       TimersDescriptionAttribute tda = new TimersDescriptionAttribute ("Mono");
+                       Assert.IsNull (tda.Description, "Description");
+               }
+
+               [Test]
+               [PermissionSet (SecurityAction.Deny, Unrestricted = true)]
+               public void LinkDemand_Deny_Unrestricted ()
+               {
+                       Type[] types = new Type[1] { typeof (string) };
+                       ConstructorInfo ci = typeof (TimersDescriptionAttribute).GetConstructor (types);
+                       Assert.IsNotNull (ci, ".ctor(string)");
+                       Assert.IsNotNull (ci.Invoke (new object[1] { "Mono" }), "invoke");
+               }
+       }
+}