Assume
Provides static methods to express the assumptions
that must be met for a test to give a meaningful
result. If an assumption is not met, the test
should produce an inconclusive result.
using NUnit.Framework.Constraints;
using NUnit.Framework.Internal;
using System;
using System.ComponentModel;
namespace NUnit.Framework
{
public class Assume
{
[EditorBrowsable(EditorBrowsableState.Never)]
public new static bool Equals(object a, object b)
{
throw new AssertionException("Assert.Equals should not be used for Assertions");
}
public new static void ReferenceEquals(object a, object b)
{
throw new AssertionException("Assert.ReferenceEquals should not be used for Assertions");
}
public static void That<TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr)
{
That(del, expr.Resolve(), null, null);
}
public static void That<TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, string message)
{
That(del, expr.Resolve(), message, null);
}
public static void That<TActual>(ActualValueDelegate<TActual> del, IResolveConstraint expr, string message, params object[] args)
{
IConstraint constraint = expr.Resolve();
ConstraintResult constraintResult = constraint.ApplyTo(del);
if (!constraintResult.IsSuccess) {
MessageWriter messageWriter = new TextMessageWriter(message, args);
constraintResult.WriteMessageTo(messageWriter);
throw new InconclusiveException(messageWriter.ToString());
}
}
public static void That(bool condition, string message, params object[] args)
{
That(condition, Is.True, message, args);
}
public static void That(bool condition, string message)
{
That(condition, Is.True, message, null);
}
public static void That(bool condition)
{
That(condition, Is.True, null, null);
}
public static void That(Func<bool> condition, string message, params object[] args)
{
That(condition(), Is.True, message, args);
}
public static void That(Func<bool> condition, string message)
{
That(condition(), Is.True, message, null);
}
public static void That(Func<bool> condition)
{
That(condition(), Is.True, null, null);
}
public static void That(TestDelegate code, IResolveConstraint constraint)
{
That((object)code, constraint);
}
public static void That<TActual>(TActual actual, IResolveConstraint expression)
{
That(actual, expression, null, null);
}
public static void That<TActual>(TActual actual, IResolveConstraint expression, string message)
{
That(actual, expression, message, null);
}
public static void That<TActual>(TActual actual, IResolveConstraint expression, string message, params object[] args)
{
IConstraint constraint = expression.Resolve();
ConstraintResult constraintResult = constraint.ApplyTo(actual);
if (!constraintResult.IsSuccess) {
MessageWriter messageWriter = new TextMessageWriter(message, args);
constraintResult.WriteMessageTo(messageWriter);
throw new InconclusiveException(messageWriter.ToString());
}
}
public static void That<TActual>(ref TActual actual, IResolveConstraint expression)
{
That(ref actual, expression, null, null);
}
public static void That<TActual>(ref TActual actual, IResolveConstraint expression, string message)
{
That(ref actual, expression, message, null);
}
public static void That<TActual>(ref TActual actual, IResolveConstraint expression, string message, params object[] args)
{
IConstraint constraint = expression.Resolve();
ConstraintResult constraintResult = constraint.ApplyTo(ref actual);
if (!constraintResult.IsSuccess) {
MessageWriter messageWriter = new TextMessageWriter(message, args);
constraintResult.WriteMessageTo(messageWriter);
throw new InconclusiveException(messageWriter.ToString());
}
}
}
}