// **************************************************************** // 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 } }