Merge pull request #1936 from esdrubal/DotNetRelativeOrAbsolute
[mono.git] / mcs / class / corlib / Test / System.Diagnostics.Contracts / ContractAssumeTest.cs
1
2 #define CONTRACTS_FULL
3 #define DEBUG
4
5 using System;
6 using System.Collections.Generic;
7 using System.Linq;
8 using System.Text;
9 using NUnit.Framework;
10 using System.Diagnostics.Contracts;
11 using MonoTests.System.Diagnostics.Contracts.Helpers;
12
13 namespace MonoTests.System.Diagnostics.Contracts {
14
15         [TestFixture]
16         public class ContractAssumeTest : TestContractBase {
17
18                 /// <summary>
19                 /// At runtime Contract.Assume() acts just like a Contract.Assert(), except the exact message in the assert
20                 /// or exception is slightly different.
21                 /// </summary>
22                 [Test]
23                 //[Ignore ("This causes NUnit crash on .NET 4.0")]
24                 public void TestAssumeMessage ()
25                 {
26                         try {
27                                 Contract.Assume (false);
28                                 Assert.Fail ("TestAssumeMessage() exception not thrown #1");
29                         } catch (Exception ex) {
30                                 Assert.AreEqual ("Assumption failed.", ex.Message);
31                         }
32
33                         try {
34                                 Contract.Assume (false, "Message");
35                                 Assert.Fail ("TestAssumeMessage() exception not thrown #1");
36                         } catch (Exception ex) {
37                                 Assert.AreEqual ("Assumption failed.  Message", ex.Message);
38                         }
39                 }
40
41                 // Identical to Contract.Assert, so no more testing required.
42
43         }
44
45 }
46