// ****************************************************************
// Copyright 2007, Charlie Poole
// This is free software licensed under the NUnit license. You may
// obtain a copy of the license at http://nunit.org/?p=license&r=2.4
// ****************************************************************
using System;
namespace NUnit.Framework
{
///
/// NOTE: The use of asserters for extending NUnit has
/// now been replaced by the use of constraints. This
/// class is marked obsolete.
///
/// AbstractAsserter is the base class for all asserters.
/// Asserters encapsulate a condition test and generation
/// of an AssertionException with a tailored message. They
/// are used by the Assert class as helper objects.
///
/// User-defined asserters may be passed to the
/// Assert.DoAssert method in order to implement
/// extended asserts.
///
[Obsolete("Use Constraints rather than Asserters for new work")]
public abstract class AbstractAsserter : IAsserter
{
///
/// The user-defined message for this asserter.
///
protected readonly string userMessage;
///
/// Arguments to use in formatting the user-defined message.
///
protected readonly object[] args;
///
/// Our failure message object, initialized as needed
///
private AssertionFailureMessage failureMessage;
///
/// Constructs an AbstractAsserter
///
/// The message issued upon failure
/// Arguments to be used in formatting the message
public AbstractAsserter( string message, params object[] args )
{
this.userMessage = message;
this.args = args;
}
///
/// AssertionFailureMessage object used internally
///
protected AssertionFailureMessage FailureMessage
{
get
{
if ( failureMessage == null )
failureMessage = new AssertionFailureMessage( userMessage, args );
return failureMessage;
}
}
#region IAsserter Interface
///
/// Test method to be implemented by derived types.
/// Default always succeeds.
///
/// True if the test succeeds
public abstract bool Test();
///
/// Message related to a failure. If no failure has
/// occured, the result is unspecified.
///
public virtual string Message
{
get
{
return FailureMessage.ToString();
}
}
#endregion
}
}