Imported Upstream version 3.6.0

Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
This commit is contained in:
Jo Shields
2014-08-13 10:39:27 +01:00
commit a575963da9
50588 changed files with 8155799 additions and 0 deletions

View File

@@ -0,0 +1,18 @@
#if NET_4_0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
namespace MonoTests.System.Diagnostics.Contracts.Helpers {
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
class RunAgainstReferenceAttribute : CategoryAttribute
{
}
}
#endif

View File

@@ -0,0 +1,48 @@
#if NET_4_0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using NUnit.Framework;
using System.Diagnostics.Contracts;
using System.Diagnostics;
using System.Reflection;
using System.Diagnostics.Contracts.Internal;
namespace MonoTests.System.Diagnostics.Contracts.Helpers {
public class TestContractBase {
protected TestContractBase() {
// Get the type of System.Diagnostics.Contracts.ContractException
// Have to do this differently depending on how the test is being run.
this.ContractExceptionType = Type.GetType("System.Diagnostics.Contracts.ContractException");
if (this.ContractExceptionType == null) {
// Special code for when Contracts namespace is not in CorLib
var mGetContractExceptionType = typeof (Contract).GetMethod ("GetContractExceptionType", BindingFlags.NonPublic | BindingFlags.Static);
this.ContractExceptionType = (Type) mGetContractExceptionType.Invoke (null, null);
}
}
[SetUp]
public void Setup() {
// Remove all event handlers from Contract.ContractFailed
var eventField = typeof(Contract).GetField("ContractFailed", BindingFlags.Static | BindingFlags.NonPublic);
if (eventField == null) {
// But in MS.NET it's done this way.
eventField = typeof(ContractHelper).GetField("contractFailedEvent", BindingFlags.Static | BindingFlags.NonPublic);
}
eventField.SetValue(null, null);
}
[TearDown]
public void TearDown() {
}
protected Type ContractExceptionType { get; private set; }
}
}
#endif