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 ) );
}
}
}
}
}
}
|