2014-08-13 10:39:27 +01:00
|
|
|
|
|
|
|
#define CONTRACTS_FULL
|
|
|
|
#define DEBUG
|
|
|
|
|
|
|
|
using System;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using System.Linq;
|
|
|
|
using System.Text;
|
|
|
|
using NUnit.Framework;
|
|
|
|
using System.Diagnostics.Contracts;
|
|
|
|
using MonoTests.System.Diagnostics.Contracts.Helpers;
|
|
|
|
|
|
|
|
namespace MonoTests.System.Diagnostics.Contracts {
|
|
|
|
|
|
|
|
[TestFixture]
|
|
|
|
public class ContractAssumeTest : TestContractBase {
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// At runtime Contract.Assume() acts just like a Contract.Assert(), except the exact message in the assert
|
|
|
|
/// or exception is slightly different.
|
|
|
|
/// </summary>
|
|
|
|
[Test]
|
2015-04-07 09:35:12 +01:00
|
|
|
//[Ignore ("This causes NUnit crash on .NET 4.0")]
|
2014-08-13 10:39:27 +01:00
|
|
|
public void TestAssumeMessage ()
|
|
|
|
{
|
|
|
|
try {
|
|
|
|
Contract.Assume (false);
|
|
|
|
Assert.Fail ("TestAssumeMessage() exception not thrown #1");
|
|
|
|
} catch (Exception ex) {
|
2015-04-07 09:35:12 +01:00
|
|
|
Assert.AreEqual ("Assumption failed.", ex.Message);
|
2014-08-13 10:39:27 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
Contract.Assume (false, "Message");
|
|
|
|
Assert.Fail ("TestAssumeMessage() exception not thrown #1");
|
|
|
|
} catch (Exception ex) {
|
2015-04-07 09:35:12 +01:00
|
|
|
Assert.AreEqual ("Assumption failed. Message", ex.Message);
|
2014-08-13 10:39:27 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Identical to Contract.Assert, so no more testing required.
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|