public void TestCompareTo () { Enum e1 = new TestingEnum (); Enum e2 = new TestingEnum (); Enum e3 = new TestingEnum2 (); Assert.AreEqual (0, e1.CompareTo (e1), "#A1"); Assert.AreEqual (0, e1.CompareTo (e2), "#A2"); TestingEnum x = TestingEnum.This; TestingEnum y = TestingEnum.Is; Assert.AreEqual (0, x.CompareTo (x), "#B1"); Assert.AreEqual (-1, x.CompareTo (y), "#B2"); Assert.AreEqual (1, y.CompareTo (x), "#B3"); try { e1.CompareTo (e3); Assert.Fail ("#C1"); } catch (ArgumentException ex) { // Object must be the same type as the enum. // The type passed in was MonoTests.System.EnumTest+TestingEnum2; // the enum type was MonoTests.System.EnumTest+TestingEnum Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2"); Assert.IsNull (ex.InnerException, "#A3"); Assert.IsNotNull (ex.Message, "#A4"); Assert.IsTrue (ex.Message.IndexOf (typeof (TestingEnum).FullName) != -1, "#A5"); Assert.IsTrue (ex.Message.IndexOf (typeof (TestingEnum2).FullName) != -1, "#A6"); Assert.IsNull (ex.ParamName, "#A7"); } try { ((Enum) e1).CompareTo ((Enum) e3); Assert.Fail ("#D1"); } catch (ArgumentException ex) { // Object must be the same type as the enum. // The type passed in was MonoTests.System.EnumTest+TestingEnum2; // the enum type was MonoTests.System.EnumTest+TestingEnum Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#D2"); Assert.IsNull (ex.InnerException, "#D3"); Assert.IsNotNull (ex.Message, "#D4"); Assert.IsTrue (ex.Message.IndexOf (typeof (TestingEnum).FullName) != -1, "#D5"); Assert.IsTrue (ex.Message.IndexOf (typeof (TestingEnum2).FullName) != -1, "#D6"); Assert.IsNull (ex.ParamName, "#D7"); } }
public void TestCompareTo() { Enum e1 = new TestingEnum(); Enum e2 = new TestingEnum(); Enum e3 = new TestingEnum2(); AssertEquals("An enum should equal itself", 0, e1.CompareTo(e1)); AssertEquals("An enum should equal a copy", 0, e1.CompareTo(e2)); TestingEnum x = TestingEnum.This; TestingEnum y = TestingEnum.Is; AssertEquals("should equal", 0, x.CompareTo(x)); AssertEquals("less than", -1, x.CompareTo(y)); AssertEquals("greater than", 1, y.CompareTo(x)); { bool errorThrown = false; try { e1.CompareTo(e3); } catch (ArgumentException) { errorThrown = true; } Assert("1) Compare type mismatch not caught.", errorThrown); } { bool errorThrown = false; try { ((Enum)e1).CompareTo((Enum)e3); } catch (ArgumentException) { errorThrown = true; } Assert("2) Compare type mismatch not caught.", errorThrown); } }