public void HandlerDisplaysResultsOnFailure() { var stringTesterMock = new Mock <IConnectionStringTester>(); stringTesterMock.Setup(t => t.Test(It.IsAny <string>())) .ReturnsAsync(() => new TestResponse(false, "failure!")); var stringCleanerMock = new Mock <IConnectionStringCleaner>(); var mainControlMock = new Mock <IMainTestControl>(); var linkedToMainTestControlMock = new Mock <ILinkedToMainTestControl>(); linkedToMainTestControlMock.Setup(l => l.MainTestControl).Returns(mainControlMock.Object); var handler = new TestFiredHandler(stringTesterMock.Object, stringCleanerMock.Object); handler.Handle(Event.TestFired, linkedToMainTestControlMock.Object); // Wait until the test is over while (handler.TestPending) { } mainControlMock.Verify(c => c.SetStatus(TestStatus.Failed), Times.Once); mainControlMock.Verify(c => c.DisplayMessage(It.IsAny <string>(), false), Times.Once); }
public void HandlerCancelsTheTestProperly() { var stringCleanerMock = new Mock <IConnectionStringCleaner>(); var mainControlMock = new Mock <IMainTestControl>(); var linkedToMainTestControlMock = new Mock <ILinkedToMainTestControl>(); linkedToMainTestControlMock.Setup(l => l.MainTestControl).Returns(mainControlMock.Object); var handler = new TestFiredHandler(new DelayedConnectionStringTester(), stringCleanerMock.Object); handler.Handle(Event.TestFired, linkedToMainTestControlMock.Object); handler.Handle(Event.TestCancelled, linkedToMainTestControlMock.Object); // Wait until the test is over while (handler.TestPending) { } mainControlMock.Verify(c => c.SetStatus(TestStatus.Succeeded), Times.Never); mainControlMock.Verify(c => c.DisplayMessage(It.IsAny <string>(), true), Times.Never); mainControlMock.Verify(c => c.SetStatus(TestStatus.Cancelled), Times.Once); mainControlMock.Verify(c => c.DisplayMessage(It.IsAny <string>(), false), Times.Once); }
public void HandlerThrowsExceptionOnTestingWhenNotIdle() { var exceptionThrown = false; var stringTesterMock = new Mock <IConnectionStringTester>(); stringTesterMock.Setup(t => t.Test(It.IsAny <string>())) .ReturnsAsync(() => new TestResponse(true, "success!")); var stringCleanerMock = new Mock <IConnectionStringCleaner>(); var mainControlMock = new Mock <IMainTestControl>(); var linkedToMainTestControlMock = new Mock <ILinkedToMainTestControl>(); linkedToMainTestControlMock.Setup(l => l.MainTestControl).Returns(mainControlMock.Object); var handler = new TestFiredHandler(stringTesterMock.Object, stringCleanerMock.Object); handler.Handle(Event.TestFired, linkedToMainTestControlMock.Object); try { handler.Handle(Event.TestFired, linkedToMainTestControlMock.Object); } catch (TestAlreadyRunningException) { exceptionThrown = true; } exceptionThrown.ShouldBeTrue(); }