From: Griffin C. <gc...@us...> - 2005-04-25 03:35:19
|
Update of /cvsroot/dotnetmock/dotnetmock/DotNetMock In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9318/DotNetMock Modified Files: DotNetMock.csproj Added Files: ExpectationStringQueue.cs Log Message: - Added ExpectationStringQueue Class Index: DotNetMock.csproj =================================================================== RCS file: /cvsroot/dotnetmock/dotnetmock/DotNetMock/DotNetMock.csproj,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** DotNetMock.csproj 25 Apr 2005 03:26:31 -0000 1.39 --- DotNetMock.csproj 25 Apr 2005 03:35:10 -0000 1.40 *************** *** 140,143 **** --- 140,148 ---- /> <File + RelPath = "ExpectationStringQueue.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "ExpectationType.cs" SubType = "Code" *************** *** 365,378 **** /> <File - RelPath = "Expectations\ExpectAndReturnExpectation.cs" - SubType = "Code" - BuildAction = "Compile" - /> - <File - RelPath = "Expectations\ExpectationsUtils.cs" - SubType = "Code" - BuildAction = "Compile" - /> - <File RelPath = "TestFramework\AbstractStubMaker.cs" SubType = "Code" --- 370,373 ---- --- NEW FILE: ExpectationStringQueue.cs --- using System.Collections; namespace DotNetMock { /// <summary> /// Expectation String Queue implementation. Extends <c>AbstractStaticExpectaion</c> /// </summary> /// <author>Evhen Khasenevich</author> public class ExpectationStringQueue : AbstractStaticExpectation { private Queue _actualStringQueue = new Queue( ); private Queue _expectedStringQueue = new Queue( ); /// <summary> /// Default Constructor for ExpectationQueueString. Set the name for this Expectation /// </summary> /// <param name="name">Name of this Expectation</param> public ExpectationStringQueue( string name ) : base( name ) { ClearActual( ); } /// <summary> /// Enqueue/Dequeue Actual strings. /// </summary> public string Actual { get { if ( this._actualStringQueue.Count == 0 ) { return null; } return ( string )this._actualStringQueue.Dequeue( ); } set { this._actualStringQueue.Enqueue( value ); if ( ShouldCheckImmediate ) { Verify( ); } } } /// <summary> /// Enqueue/Dequeue Expected strings. /// </summary> public string Expected { get { if ( this._expectedStringQueue.Count == 0 ) { return null; } if ( this._expectedStringQueue.Count == 1 ) { this.HasExpectations = false; } return ( string )this._expectedStringQueue.Dequeue( ); } set { this._expectedStringQueue.Enqueue( value ); this.HasExpectations = true; } } /// <summary> /// Clears Actual strings. /// </summary> public override void ClearActual( ) { this._actualStringQueue.Clear( ); } /// <summary> /// Clears Expected strings. /// </summary> public override void ClearExpected( ) { this._expectedStringQueue.Clear( ); HasExpectations = false; } /// <summary> /// Verifies object /// </summary> public override void Verify( ) { if ( this.HasExpectations ) { if ( this.ShouldCheckImmediate ) { Assertion.AssertEquals( "String values in the queues are not equal for object " + this.name, this.Expected, this.Actual ); } else { string expected; while ( ( expected = this.Expected ) != null ) { if ( this._actualStringQueue.Count > 0 ) { Assertion.AssertEquals( "String values in the queues are not equal for object " + this.name, expected, this.Actual ); } else { Assertion.Fail( string.Format( "{0} values left in the expected queue for object {1}: '{2}', ...", this._expectedStringQueue.Count + 1, this.name, expected ) ); } } if ( this._actualStringQueue.Count > 0 ) { Assertion.Fail( string.Format( "{0} values left in the actual queue for object {1}: '{2}', ...", this._actualStringQueue.Count, this.name, this.Actual ) ); } } } } } } |