public void VerifyEqualsMethodCorrectBehaviourInvokesEquals() { var fixture = new Fixture(); var verifyHelperMock = new Mock <EqualsOverrideAssertionVerifyHelper>(false, false, true) { CallBase = true, }; var verifyHelperQueue = new Queue <EqualsOverrideAssertionVerifyHelper>(new[] { verifyHelperMock.Object, new EqualsOverrideAssertionVerifyHelper(false, false, true), }); fixture.Register(() => verifyHelperQueue.Dequeue()); var equalsOverrideTheory = new EqualsOverrideTheory( fixture.Create <EqualsOverrideAssertionVerifyHelper>(), fixture.Create <EqualsOverrideAssertionVerifyHelper>(), true); var sut = new SutAlias(fixture, equalsOverrideTheory); sut.Verify(verifyHelperMock.Object.GetType().GetMethod( nameof(EqualsOverrideAssertionVerifyHelper.Equals), new[] { typeof(EqualsOverrideAssertionVerifyHelper) })); verifyHelperMock.Verify( h => h.Equals(It.IsAny <EqualsOverrideAssertionVerifyHelper>()), Times.Exactly(3)); }
public void VerifyEqualsMethodWithTheoryWithLeftThatDoesNotMatchReflectedTypeThrows() { var fixture = new Fixture(); fixture.Inject(new EqualsOverrideAssertionVerifyHelper(false, true, false)); var equalsOverrideTheory = new EqualsOverrideTheory( true, fixture.Create <EqualsOverrideAssertionVerifyHelper>(), false); var sut = new SutAlias(fixture, equalsOverrideTheory); var ex = Record.Exception(() => sut.Verify(TestHelperType.GetMethod( nameof(EqualsOverrideAssertionVerifyHelper.Equals), new[] { typeof(EqualsOverrideAssertionVerifyHelper) }))); Assert.IsType <EqualsOverrideException>(ex); Assert.Contains("owner method", ex.Message, StringComparison.Ordinal); }
public void VerifyEqualsMethodWithTheoryWithRightThatCannotBeAssignedDoesNotInvokeEquals() { var fixture = new Fixture(); var verifyHelperMock = new Mock <EqualsOverrideAssertionVerifyHelper>(false, true, false) { CallBase = true, }; var equalsOverrideTheory = new EqualsOverrideTheory( verifyHelperMock.Object, true, false); var sut = new SutAlias(fixture, equalsOverrideTheory); sut.Verify(verifyHelperMock.Object.GetType().GetMethod( nameof(EqualsOverrideAssertionVerifyHelper.Equals), new[] { typeof(EqualsOverrideAssertionVerifyHelper) })); verifyHelperMock.Verify( h => h.Equals(It.IsAny <EqualsOverrideAssertionVerifyHelper>()), Times.Never()); }
public void VerifyEqualsMethodViolatesEqualsSuccessiveContractThrows() { var fixture = new Fixture(); var equalsResultQueue = new Queue <bool>(new[] { true, false, true }); var differentSuccessiveTheory = new EqualsOverrideAssertionVerifyHelper( false, false, () => equalsResultQueue.Dequeue()); var equalsOverrideTheory = new EqualsOverrideTheory( new EqualsOverrideAssertionVerifyHelper(false, false, false), differentSuccessiveTheory, true); var sut = new SutAlias(fixture, equalsOverrideTheory); var ex = Record.Exception(() => sut.Verify(TestHelperType.GetMethod( nameof(EqualsOverrideAssertionVerifyHelper.Equals), new[] { typeof(EqualsOverrideAssertionVerifyHelper) }))); Assert.IsType <EqualsOverrideException>(ex); Assert.Contains("multiple times", ex.Message, StringComparison.Ordinal); }