public PasswordChangeStatus ChangePasswordTest(string newPassword) { // Arrange MockPanoptoDBDataContext mockedPanoptoDBDataContext = new MockPanoptoDBDataContext(); DemoClass classUnderTest = new DemoClass(); // or new ExampleClass(mockedPanoptoDBDataContext); // Act, method under test PasswordChangeStatus result = classUnderTest.ChangePassword(mockedPanoptoDBDataContext, newPassword); // Assert // Expect SetPassword to be called 1 time only when result was a success int calledTimesExpected = (result == PasswordChangeStatus.Success) ? 1 : 0; Assert.That(mockedPanoptoDBDataContext.SubmitChanges_WasCalled, Is.EqualTo(calledTimesExpected), "SetPassword method was called {0} times!", mockedPanoptoDBDataContext.SubmitChanges_WasCalled); // Test case will assert based on ExpectedResult return(result); }
public PasswordChangeStatus ChangePasswordTest_WithMoq(string newPassword) { // Arrange Mock <IPanoptoDBDataContext> mockedPanoptoDBDataContext = new Mock <IPanoptoDBDataContext>(); // Setup order matters when multiple matches possible mockedPanoptoDBDataContext.Setup(db => db.PasswordHistoryMatches(It.IsAny <string>(), It.IsAny <int>())).Returns(false); mockedPanoptoDBDataContext.Setup(db => db.PasswordHistoryMatches(HistoryPassword, It.IsAny <int>())).Returns(true); mockedPanoptoDBDataContext.Setup(db => db.SetPassword(It.IsAny <string>())); mockedPanoptoDBDataContext.Setup(db => db.SubmitChanges()); DemoClass classUnderTest = new DemoClass(); // or new ExampleClass(mockedPanoptoDBDataContext); // Act, method under test PasswordChangeStatus result = classUnderTest.ChangePassword(mockedPanoptoDBDataContext.Object, newPassword); // Assert // Expect SetPassword to be called 1 time only when result was a success int calledTimesExpected = (result == PasswordChangeStatus.Success) ? 1 : 0; mockedPanoptoDBDataContext.Verify(db => db.SubmitChanges(), Times.Exactly(calledTimesExpected)); // Test case will assert based on ExpectedResult return(result); }