diff --git a/Source/InterceptorStrategies.cs b/Source/InterceptorStrategies.cs index 6521b31cc..b4eeda6b9 100644 --- a/Source/InterceptorStrategies.cs +++ b/Source/InterceptorStrategies.cs @@ -143,21 +143,21 @@ public InterceptionAction HandleIntercept(ICallContext invocation, InterceptorCo var method = invocation.Method; // Only if there is no corresponding setup for `ToString()` - if (IsObjectMethod(method, "ToString") && !ctx.OrderedCalls.Select(c => IsObjectMethod(c.Method, "ToString")).Any()) + if (IsObjectMethod(method, "ToString") && !ctx.OrderedCalls.Any(c => IsObjectMethod(c.Method, "ToString"))) { invocation.ReturnValue = ctx.Mock.ToString() + ".Object"; return InterceptionAction.Stop; } // Only if there is no corresponding setup for `GetHashCode()` - if (IsObjectMethod(method, "GetHashCode") && !ctx.OrderedCalls.Select(c => IsObjectMethod(c.Method, "GetHashCode")).Any()) + if (IsObjectMethod(method, "GetHashCode") && !ctx.OrderedCalls.Any(c => IsObjectMethod(c.Method, "GetHashCode"))) { invocation.ReturnValue = ctx.Mock.GetHashCode(); return InterceptionAction.Stop; } // Only if there is no corresponding setup for `Equals()` - if (IsObjectMethod(method, "Equals") && !ctx.OrderedCalls.Select(c => IsObjectMethod(c.Method, "Equals")).Any()) + if (IsObjectMethod(method, "Equals") && !ctx.OrderedCalls.Any(c => IsObjectMethod(c.Method, "Equals"))) { invocation.ReturnValue = ReferenceEquals(invocation.Arguments.First(), ctx.Mock.Object); return InterceptionAction.Stop; diff --git a/UnitTests/Regressions/IssueReportsFixture.cs b/UnitTests/Regressions/IssueReportsFixture.cs index 05a2e2b99..9682029b4 100644 --- a/UnitTests/Regressions/IssueReportsFixture.cs +++ b/UnitTests/Regressions/IssueReportsFixture.cs @@ -285,16 +285,19 @@ public class Issue273 [Fact] public void SystemObjectMethodsShouldWorkInStrictMocks() { - var mockObject = new Mock(MockBehavior.Strict).Object; + var mock = new Mock(MockBehavior.Strict); - Assert.IsType(typeof(int), mockObject.GetHashCode()); - Assert.IsType(typeof(string), mockObject.ToString()); - Assert.False(mockObject.Equals("ImNotTheObject")); - Assert.True(mockObject.Equals(mockObject)); + mock.Setup(x => x.Test()).Returns(true); + + Assert.IsType(typeof(int), mock.Object.GetHashCode()); + Assert.IsType(typeof(string), mock.Object.ToString()); + Assert.False(mock.Object.Equals("ImNotTheObject")); + Assert.True(mock.Object.Equals(mock.Object)); } public interface IMyInterface { + bool Test(); } }