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")]
TestAssumeMessage()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 
47