Test DateTimeOffset.Parse with format yyyy-dd-MMzzz. Covers #22558.
[mono.git] / mcs / class / corlib / Test / System / MulticastDelegate.cs
index 06027f4ba065d9e5edb906d8109776b9aa424c45..21df8695667057fbfc7318277b0052e91dd54156 100644 (file)
@@ -5,32 +5,17 @@
 // (C) Daniel Stodden\r
 // \r
 \r
-// these are the standard namespaces you will need.  You may need to add more\r
-// depending on your tests.\r
 using NUnit.Framework;\r
 using System;\r
 \r
-// all test namespaces start with "MonoTests."  Append the Namespace that\r
-// contains the class you are testing, e.g. MonoTests.System.Collections\r
 namespace MonoTests.System\r
 {\r
 \r
-// the class name should end with "Test" and start with the name of the class\r
-// you are testing, e.g. CollectionBaseTest\r
-public class MulticastDelegateTest : TestCase {\r
+[TestFixture]\r
+public class MulticastDelegateTest {\r
        \r
        public MulticastDelegateTest() {}\r
 \r
-       // this method is run before each Test* method is called. You can put\r
-       // variable initialization, etc. here that is common to each test.\r
-       // Just leave the method empty if you don't need to use it.\r
-       protected override void SetUp() {}\r
-\r
-       // this method is run after each Test* method is called. You can put\r
-       // clean-up code, etc. here.  Whatever needs to be done after each test.\r
-       // Just leave the method empty if you don't need to use it.\r
-       protected override void TearDown() {}\r
-\r
        private delegate char MyDelegate( ref string s );\r
 \r
        private char MethodA( ref string s ) \r
@@ -57,25 +42,32 @@ public class MulticastDelegateTest : TestCase {
                return 'd';\r
        }\r
 \r
+       [Test]\r
        public void TestEquals()\r
        {\r
                MyDelegate dela = new MyDelegate( MethodA );\r
                MyDelegate delb = new MyDelegate( MethodB );\r
                MyDelegate delc = new MyDelegate( MethodC );\r
 \r
-               AssertEquals( "#A01", false, dela == delb );\r
+               Assert.AreEqual(false, dela == delb , "#A01");\r
                \r
                MyDelegate del1, del2;\r
 \r
                del1 = dela + delb;\r
                del2 = delb + delc;\r
-               AssertEquals( "#A02", false, del1 == del2 );\r
+               Assert.AreEqual(false, del1 == del2 , "#A02");\r
                \r
                del1 += delc;\r
                del2 = dela + del2;\r
-               AssertEquals( "#A03", true, del1 == del2 );\r
+               Assert.AreEqual(true, del1 == del2 , "#A03");\r
+               \r
+               object o = new object ();\r
+               \r
+               Assert.AreEqual (false, dela.Equals (o), "#A04");\r
+               \r
        }\r
 \r
+       [Test]\r
        public void TestCombineRemove()\r
        {\r
                MyDelegate dela = new MyDelegate( MethodA );\r
@@ -91,20 +83,50 @@ public class MulticastDelegateTest : TestCase {
                del1 = dela + delb + delb + delc + delb + delb + deld;\r
                val = "";\r
                res = del1( ref val );\r
-               AssertEquals( "#A01", "abbcbbd", val );\r
-               AssertEquals( "#A02", 'd', res );\r
+               Assert.AreEqual("abbcbbd", val , "#A01");\r
+               Assert.AreEqual('d', res , "#A02");\r
 \r
                // test remove\r
                del2 = del1 - ( delb + delb );\r
                val = "";\r
                res = del2( ref val );\r
-               AssertEquals( "#A03", "abbcd", val );\r
-               AssertEquals( "#A04", 'd', res );\r
+               Assert.AreEqual("abbcd", val , "#A03");\r
+               Assert.AreEqual('d', res , "#A04");\r
 \r
                // we did not affect del1, did we?\r
                val = "";\r
                res = del1( ref val );\r
-               AssertEquals( "#A05", "abbcbbd", val );\r
+               Assert.AreEqual("abbcbbd", val , "#A05");\r
+       }\r
+\r
+       [Test] //Bug #12536\r
+       public void TestCombineBothDirections ()\r
+       {\r
+               MyDelegate dela = new MyDelegate( MethodA );\r
+               MyDelegate delb = new MyDelegate( MethodB );\r
+               MyDelegate delc = new MyDelegate( MethodC );\r
+               MyDelegate deld = new MyDelegate( MethodD );\r
+\r
+               string val;\r
+               char res;\r
+\r
+               MyDelegate a = dela + delb;\r
+               val = "";\r
+               res = a (ref val);\r
+               Assert.AreEqual ("ab", val, "#1");\r
+               Assert.AreEqual ('b', res, "#2");\r
+\r
+               MyDelegate b = delc + deld;\r
+               val = "";\r
+               res = b (ref val);\r
+               Assert.AreEqual ("cd", val, "#3");\r
+               Assert.AreEqual ('d', res, "#4");\r
+\r
+               MyDelegate c = a + b;\r
+               val = "";\r
+               res = c (ref val);\r
+               Assert.AreEqual ("abcd", val, "#5");\r
+               Assert.AreEqual ('d', res, "#6");\r
        }\r
 }\r
 }\r