// **************************************************************** // 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; using NUnit.Framework.Constraints; namespace NUnit.Framework.SyntaxHelpers { /// /// Summary description for HasNoPrefixB. /// public class Has { /// /// Nested class that allows us to restrict the number /// of key words that may appear after Has.No. /// public class HasNoPrefixBuilder { /// /// Return a ConstraintBuilder conditioned to apply /// the following constraint to a property. /// /// The property name /// A ConstraintBuilder public ConstraintBuilder Property(string name) { return new ConstraintBuilder().Not.Property(name); } /// /// Return a Constraint that succeeds if the expected object is /// not contained in a collection. /// /// The expected object /// A Constraint public Constraint Member(object expected) { return new NotConstraint( new CollectionContainsConstraint(expected) ) ; } } #region Prefix Operators /// /// Has.No returns a ConstraintBuilder that negates /// the constraint that follows it. /// public static HasNoPrefixBuilder No { get { return new HasNoPrefixBuilder(); } } /// /// Has.AllItems returns a ConstraintBuilder, which will apply /// the following constraint to all members of a collection, /// succeeding if all of them succeed. /// public static ConstraintBuilder All { get { return new ConstraintBuilder().All; } } /// /// Has.Some returns a ConstraintBuilder, which will apply /// the following constraint to all members of a collection, /// succeeding if any of them succeed. It is a synonym /// for Has.Item. /// public static ConstraintBuilder Some { get { return new ConstraintBuilder().Some; } } /// /// Has.None returns a ConstraintBuilder, which will apply /// the following constraint to all members of a collection, /// succeeding only if none of them succeed. /// public static ConstraintBuilder None { get { return new ConstraintBuilder().None; } } /// /// Returns a new ConstraintBuilder, which will apply the /// following constraint to a named property of the object /// being tested. /// /// The name of the property public static ConstraintBuilder Property( string name ) { return new ConstraintBuilder().Property(name); } #endregion #region Property Constraints /// /// Returns a new PropertyConstraint checking for the /// existence of a particular property value. /// /// The name of the property to look for /// The expected value of the property public static Constraint Property( string name, object expected ) { return new PropertyConstraint( name, new EqualConstraint( expected ) ); } /// /// Returns a new PropertyConstraint for the Length property /// /// /// public static Constraint Length( int length ) { return Property( "Length", length ); } /// /// Returns a new PropertyConstraint or the Count property /// /// /// public static Constraint Count( int count ) { return Property( "Count", count ); } #endregion #region Member Constraint /// /// Returns a new CollectionContainsConstraint checking for the /// presence of a particular object in the collection. /// /// The expected object public static Constraint Member( object expected ) { return new CollectionContainsConstraint( expected ); } #endregion } }