public void ExecuteTakeScreenshot_WhenAbilityIsWebBrowser_ShouldCallObserver( int callCount, int sampleSize, int[] expectedCalls, IActor actor, string expectedName, IObserver <ScreenshotInfo> observer) { // arrange var sut = new TakeSampleScreenshotsStrategy(sampleSize); var screenshot = new Screenshot("abcdefgskdjf"); var webDriver = new Mock <IWebDriver>(); webDriver.As <ITakesScreenshot>().Setup(t => t.GetScreenshot()).Returns(screenshot); var webBrowser = WebBrowser.With(webDriver.Object); // act for (var i = 1; i <= callCount; i++) { sut.ExecuteTakeScreenshot(webBrowser, actor, () => new object(), () => expectedName + i.ToString(), observer); } // assert if (expectedCalls.Length == 0) { Mock.Get(observer).Verify(o => o.OnNext(It.IsAny <ScreenshotInfo>()), Times.Never()); } else { foreach (var i in expectedCalls) { var expected = new ScreenshotInfo(screenshot, expectedName + i.ToString()); Mock.Get(observer).Verify(CallOnNext(expected), Times.Once()); } } }
public void ExecuteTakeScreenshot_WhenAbilityIsNotWebBrowser_AndExecuteThrows_ShouldCallObserver( TakeSampleScreenshotsStrategy sut, IActor actor, string expectedName, IObserver <ScreenshotInfo> observer) { // arrange var screenshot = new Screenshot("abcdefgskdjf"); var webDriver = new Mock <IWebDriver>(); webDriver.As <ITakesScreenshot>().Setup(t => t.GetScreenshot()).Returns(screenshot); var webBrowser = WebBrowser.With(webDriver.Object); Mock.Get(actor).Setup(a => a.AsksFor(It.IsAny <IQuestion <WebBrowser> >())) .Returns <IQuestion <WebBrowser> >(q => q.AnsweredBy(actor)); #pragma warning disable CS0618 // Type or member is obsolete Mock.Get(actor).Setup(a => a.AsksFor(It.IsAny <IQuestion <WebBrowser, WebBrowser> >())) .Returns <IQuestion <WebBrowser, WebBrowser> >(q => q.AnsweredBy(actor, webBrowser)); #pragma warning restore CS0618 // Type or member is obsolete // act Assert.Throws <Exception>(() => sut.ExecuteTakeScreenshot(new object(), actor, Throws, () => expectedName, observer)); // assert var expected = new ScreenshotInfo(screenshot, expectedName); Mock.Get(observer).Verify(CallOnNext(expected), Times.Once()); object Throws() => throw new Exception(); }
public void ExecuteTakeScreenshot_WhenAbilityIsWebBrowser_AndExecuteThrows_ShouldCallObserver( TakeSampleScreenshotsStrategy sut, IActor actor, string expectedName, IObserver <ScreenshotInfo> observer) { // arrange var screenshot = new Screenshot("abcdefgskdjf"); var webDriver = new Mock <IWebDriver>(); webDriver.As <ITakesScreenshot>().Setup(t => t.GetScreenshot()).Returns(screenshot); var webBrowser = WebBrowser.With(webDriver.Object); // act Assert.Throws <Exception>(() => sut.ExecuteTakeScreenshot(webBrowser, actor, Throws, () => expectedName, observer)); // assert var expected = new ScreenshotInfo(screenshot, expectedName); Mock.Get(observer).Verify(CallOnNext(expected), Times.Once()); object Throws() { throw new Exception(); } }
public void ExecuteTakeScreenshot_ShouldReturnCorrectValue( TakeSampleScreenshotsStrategy sut, IObserver <ScreenshotInfo> screenshotObserver, IActor actor, object expected, Func <string> nextScreenshotName) { // Act var actual = sut.ExecuteTakeScreenshot( Unit.Default, actor, () => expected, nextScreenshotName, screenshotObserver); // Assert Assert.Equal(expected, actual); }