1 // **************************************************************** 2 // Copyright 2007, Charlie Poole 3 // This is free software licensed under the NUnit license. You may 4 // obtain a copy of the license at http://nunit.org/?p=license&r=2.4 5 // **************************************************************** 6 7 using System; 8 9 namespace NUnit.Framework 10 { 11 /// <summary> 12 /// NOTE: The use of asserters for extending NUnit has 13 /// now been replaced by the use of constraints. This 14 /// class is marked obsolete. 15 /// 16 /// AbstractAsserter is the base class for all asserters. 17 /// Asserters encapsulate a condition test and generation 18 /// of an AssertionException with a tailored message. They 19 /// are used by the Assert class as helper objects. 20 /// 21 /// User-defined asserters may be passed to the 22 /// Assert.DoAssert method in order to implement 23 /// extended asserts. 24 /// </summary> 25 [Obsolete("Use Constraints rather than Asserters for new work")] 26 public abstract class AbstractAsserter : IAsserter 27 { 28 /// <summary> 29 /// The user-defined message for this asserter. 30 /// </summary> 31 protected readonly string userMessage; 32 33 /// <summary> 34 /// Arguments to use in formatting the user-defined message. 35 /// </summary> 36 protected readonly object[] args; 37 38 /// <summary> 39 /// Our failure message object, initialized as needed 40 /// </summary> 41 private AssertionFailureMessage failureMessage; 42 43 /// <summary> 44 /// Constructs an AbstractAsserter 45 /// </summary> 46 /// <param name="message">The message issued upon failure</param> 47 /// <param name="args">Arguments to be used in formatting the message</param> AbstractAsserter( string message, params object[] args )48 public AbstractAsserter( string message, params object[] args ) 49 { 50 this.userMessage = message; 51 this.args = args; 52 } 53 54 /// <summary> 55 /// AssertionFailureMessage object used internally 56 /// </summary> 57 protected AssertionFailureMessage FailureMessage 58 { 59 get 60 { 61 if ( failureMessage == null ) 62 failureMessage = new AssertionFailureMessage( userMessage, args ); 63 return failureMessage; 64 } 65 } 66 67 #region IAsserter Interface 68 /// <summary> 69 /// Test method to be implemented by derived types. 70 /// Default always succeeds. 71 /// </summary> 72 /// <returns>True if the test succeeds</returns> Test()73 public abstract bool Test(); 74 75 /// <summary> 76 /// Message related to a failure. If no failure has 77 /// occured, the result is unspecified. 78 /// </summary> 79 public virtual string Message 80 { 81 get 82 { 83 return FailureMessage.ToString(); 84 } 85 } 86 #endregion 87 } 88 } 89