1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
#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 ContractMarkerMethodsTest : TestContractBase {
/// <summary>
/// Contract.EndContractBlock() has no effects.
/// </summary>
[Test, RunAgainstReference]
public void TestEndContractBlock ()
{
Contract.EndContractBlock ();
}
/// <summary>
/// Contract.OldValue() has no effect, and always returns the default value for the type.
/// </summary>
[Test, RunAgainstReference]
public void TestOldValue ()
{
int i = Contract.OldValue<int> (8);
object o = Contract.OldValue<object> (new object ());
Assert.AreEqual (0, i, "TestOldValue() int value wrong");
Assert.IsNull (o, "TestOldValue() object value wrong");
}
/// <summary>
/// Contract.Result() has no effect, and always returns the default value for the type.
/// </summary>
[Test, RunAgainstReference]
public void TestResult ()
{
int i = Contract.Result<int> ();
object o = Contract.Result<object> ();
Assert.AreEqual (0, i, "TestResult() int value wrong");
Assert.IsNull (o, "TestResult() object value wrong");
}
/// <summary>
/// Contract.ValueAtReturn() has no effect, and always returns the default value for the type.
/// </summary>
[Test, RunAgainstReference]
public void TestValueAtReturn ()
{
int iOut, i;
object oOut, o;
i = Contract.ValueAtReturn (out iOut);
o = Contract.ValueAtReturn (out oOut);
Assert.AreEqual (0, i, "TestValueAtReturn() int return value wrong");
Assert.IsNull (o, "TestValueAtReturn() object return value wrong");
Assert.AreEqual (0, iOut, "TestValueAtReturn() int out value wrong");
Assert.IsNull (oOut, "TestValueAtReturn() object out value wrong");
}
}
}
|