Exemple #1
0
        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());
                }
            }
        }
Exemple #2
0
        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();
            }
        }
Exemple #4
0
        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);
        }