Skip to content

Commit

Permalink
Moq Reset should clear all existing calls in the intereceptor
Browse files Browse the repository at this point in the history
  • Loading branch information
anilexpedia committed Aug 3, 2016
1 parent ffcaf6e commit 3127979
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 0 deletions.
5 changes: 5 additions & 0 deletions Source/Interceptor.cs
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,11 @@ public void AddCall(IProxyCall call, SetupKind kind)
InterceptionContext.AddOrderedCall(call);
}

internal void ClearCalls()
{
calls.Clear();
}

private IEnumerable<IInterceptStrategy> InterceptionStrategies()
{
yield return new HandleDestructor();
Expand Down
1 change: 1 addition & 0 deletions Source/MockExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ public static void Reset(this Mock mock)
{
mock.Interceptor.InterceptionContext.ClearOrderedCalls();
mock.Interceptor.InterceptionContext.ClearEventHandlers();
mock.Interceptor.ClearCalls();
mock.ResetCalls();
}
}
Expand Down
50 changes: 50 additions & 0 deletions UnitTests/ExtensionsFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,56 @@ public void SetupDoesNotApplyAfterMockWasReset()
var result = mock.Object.Execute("ping");
Assert.Null(result);
}

[Fact]

public void Loose()
{
var myMock = new Mock<IEnumerable<int>>(MockBehavior.Loose);
myMock
.Setup(a => a.ToString())
.Returns("Hello");
myMock.Reset();
Assert.NotEqual("Hello", myMock.Object.ToString());
myMock.VerifyAll();
}

[Fact]

public void Strict()
{
var myMock = new Mock<IEnumerable<int>>(MockBehavior.Strict);
myMock
.Setup(a => a.ToString())
.Returns("Hello");
myMock.Reset();
Assert.NotEqual("Hello", myMock.Object.ToString());
myMock.VerifyAll();
}

[Fact]

public void LooseNoCall()
{
var myMock = new Mock<IEnumerable<int>>(MockBehavior.Loose);
myMock
.Setup(a => a.ToString())
.Returns("Hello");
myMock.Reset();
myMock.VerifyAll();
}

[Fact]

public void StrictNoCall()
{
var myMock = new Mock<IEnumerable<int>>(MockBehavior.Strict);
myMock
.Setup(a => a.ToString())
.Returns("Hello");
myMock.Reset();
myMock.VerifyAll();
}
#endregion
}

Expand Down

0 comments on commit 3127979

Please sign in to comment.