From 2dddfdd120763384279167e4585f5b1eeacf67f9 Mon Sep 17 00:00:00 2001 From: mu88 <4560672+mu88@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:24:30 +0200 Subject: [PATCH] test: increase coverage --- .github/workflows/CI.yml | 2 +- .../HeaderDictionaryExtensions.cs | 2 +- src/ScreenshotCreator.Api/Log.Prefix.cs | 6 ++ src/ScreenshotCreator.Api/Log.cs | 2 - src/ScreenshotCreator.Api/Program.cs | 1 + .../IPlaywrightHelper.cs | 10 ++ .../IScreenshotCreator.cs | 1 - src/ScreenshotCreator.Logic/ImageProcessor.cs | 6 +- src/ScreenshotCreator.Logic/Log.Prefix.cs | 6 ++ src/ScreenshotCreator.Logic/Log.cs | 2 - .../PlaywrightHelper.cs | 54 ++++++++++ .../ScreenshotCreator.cs | 55 +++------- stryker-config.json | 1 + .../Performance/Logic/ImageProcessorTests.cs | 2 +- .../Api/HeaderDictionaryExtensionsTests.cs | 30 +++++- .../Unit/Logic/ActivityExtensionsTests.cs | 6 +- tests/Tests/Unit/Logic/ImageProcessorTests.cs | 8 +- .../Unit/Logic/ScreenshotCreatorTests.cs | 101 ++++++++++++++++-- .../testData/Screenshot_800ByInvalid.png | Bin 0 -> 65226 bytes .../testData/Screenshot_invalidBy480.png | Bin 0 -> 30213 bytes ...ns.png => Screenshot_invalidByInvalid.png} | Bin 21 files changed, 227 insertions(+), 68 deletions(-) create mode 100644 src/ScreenshotCreator.Api/Log.Prefix.cs create mode 100644 src/ScreenshotCreator.Logic/IPlaywrightHelper.cs create mode 100644 src/ScreenshotCreator.Logic/Log.Prefix.cs create mode 100644 src/ScreenshotCreator.Logic/PlaywrightHelper.cs create mode 100644 tests/Tests/testData/Screenshot_800ByInvalid.png create mode 100644 tests/Tests/testData/Screenshot_invalidBy480.png rename tests/Tests/testData/{Screenshot_invalid_dimensions.png => Screenshot_invalidByInvalid.png} (100%) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a98dd77..d998146 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -25,7 +25,7 @@ jobs: run: 'src/ScreenshotCreator.Api/bin/Debug/net7.0/playwright.ps1 install chromium' shell: pwsh - name: Test and collect coverage - run: dotnet test --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover + run: dotnet test --no-build /p:CollectCoverage=true /p:CoverletOutputFormat=opencover '/p:ExcludeByFile=\"**/Log.Prefix.cs\"' - name: End Sonar scan run: dotnet sonarscanner end /d:sonar.login=${{ secrets.SONAR_TOKEN }} - name: Set up QEMU diff --git a/src/ScreenshotCreator.Api/HeaderDictionaryExtensions.cs b/src/ScreenshotCreator.Api/HeaderDictionaryExtensions.cs index ec080f8..356791f 100644 --- a/src/ScreenshotCreator.Api/HeaderDictionaryExtensions.cs +++ b/src/ScreenshotCreator.Api/HeaderDictionaryExtensions.cs @@ -13,7 +13,7 @@ public static void AddWaveshareInstructions(this IHeaderDictionary headers, headers.Add("waveshare-last-modified-local-time", GetLastModifiedAsLocalTime(screenshotFile, getLastWriteTimeUtc ?? File.GetLastWriteTimeUtc, localTimeZoneId ?? TimeZoneInfo.Local.Id)); headers.Add("waveshare-sleep-between-updates", screenshotOptions.CalculateSleepBetweenUpdates()); - headers.Add("waveshare-update-screen", screenshotOptions.Activity.DisplayShouldBeActive() ? true.ToString() : false.ToString()); + headers.Add("waveshare-update-screen", screenshotOptions.Activity.DisplayShouldBeActive().ToString()); } private static string GetLastModifiedAsLocalTime(string file, Func getLastWriteTimeUtc, string localTimeZoneId) => diff --git a/src/ScreenshotCreator.Api/Log.Prefix.cs b/src/ScreenshotCreator.Api/Log.Prefix.cs new file mode 100644 index 0000000..1416155 --- /dev/null +++ b/src/ScreenshotCreator.Api/Log.Prefix.cs @@ -0,0 +1,6 @@ +namespace ScreenshotCreator.Api; + +public static partial class Log +{ + private const string Prefix = nameof(Api); +} \ No newline at end of file diff --git a/src/ScreenshotCreator.Api/Log.cs b/src/ScreenshotCreator.Api/Log.cs index 840c5b8..2013b91 100644 --- a/src/ScreenshotCreator.Api/Log.cs +++ b/src/ScreenshotCreator.Api/Log.cs @@ -2,8 +2,6 @@ public static partial class Log { - private const string Prefix = nameof(Api); - [LoggerMessage(EventId = 0, EventName = Prefix + nameof(BackgroundServiceTriggered), Level = LogLevel.Information, diff --git a/src/ScreenshotCreator.Api/Program.cs b/src/ScreenshotCreator.Api/Program.cs index bc695a5..5de60bd 100644 --- a/src/ScreenshotCreator.Api/Program.cs +++ b/src/ScreenshotCreator.Api/Program.cs @@ -15,6 +15,7 @@ .ValidateDataAnnotations() .ValidateOnStart(); builder.Services.AddSingleton(); +builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddHostedService(); diff --git a/src/ScreenshotCreator.Logic/IPlaywrightHelper.cs b/src/ScreenshotCreator.Logic/IPlaywrightHelper.cs new file mode 100644 index 0000000..9e8c5bc --- /dev/null +++ b/src/ScreenshotCreator.Logic/IPlaywrightHelper.cs @@ -0,0 +1,10 @@ +using Microsoft.Playwright; + +namespace ScreenshotCreator.Logic; + +public interface IPlaywrightHelper +{ + ValueTask InitializePlaywrightAsync(); + + Task WaitAsync(); +} \ No newline at end of file diff --git a/src/ScreenshotCreator.Logic/IScreenshotCreator.cs b/src/ScreenshotCreator.Logic/IScreenshotCreator.cs index 74770f2..e307256 100644 --- a/src/ScreenshotCreator.Logic/IScreenshotCreator.cs +++ b/src/ScreenshotCreator.Logic/IScreenshotCreator.cs @@ -1,7 +1,6 @@ namespace ScreenshotCreator.Logic; public interface IScreenshotCreator - : IAsyncDisposable { Task CreateScreenshotAsync(uint width, uint height); } \ No newline at end of file diff --git a/src/ScreenshotCreator.Logic/ImageProcessor.cs b/src/ScreenshotCreator.Logic/ImageProcessor.cs index 91b7344..90e0d35 100644 --- a/src/ScreenshotCreator.Logic/ImageProcessor.cs +++ b/src/ScreenshotCreator.Logic/ImageProcessor.cs @@ -1,4 +1,5 @@ using System.Collections; +using System.Diagnostics.CodeAnalysis; using System.Net.Mime; using ImageMagick; using Microsoft.Extensions.Logging; @@ -25,11 +26,14 @@ public async Task ProcessAsync(string screenshotFile, bool bla var bytes = asWaveshareBytes ? ToWaveshareBytes(image) : image.ToByteArray(); - var contentType = asWaveshareBytes ? MediaTypeNames.Application.Octet : image.FormatInfo?.MimeType; + var contentType = asWaveshareBytes ? MediaTypeNames.Application.Octet : GetImageMimeType(image); return new ProcessingResult(bytes, contentType); } + [ExcludeFromCodeCoverage(Justification = "Didn't find a of setting FormatInfo to null")] + private static string GetImageMimeType(MagickImage image) => image.FormatInfo?.MimeType ?? "NoClue"; + private byte[] ToWaveshareBytes(MagickImage image) { if (image.Width != 800 || image.Height != 480) diff --git a/src/ScreenshotCreator.Logic/Log.Prefix.cs b/src/ScreenshotCreator.Logic/Log.Prefix.cs new file mode 100644 index 0000000..fe5c681 --- /dev/null +++ b/src/ScreenshotCreator.Logic/Log.Prefix.cs @@ -0,0 +1,6 @@ +namespace ScreenshotCreator.Logic; + +public static partial class Log +{ + private const string Prefix = nameof(Logic); +} \ No newline at end of file diff --git a/src/ScreenshotCreator.Logic/Log.cs b/src/ScreenshotCreator.Logic/Log.cs index 97b7525..cb78f5d 100644 --- a/src/ScreenshotCreator.Logic/Log.cs +++ b/src/ScreenshotCreator.Logic/Log.cs @@ -4,8 +4,6 @@ namespace ScreenshotCreator.Logic; public static partial class Log { - private const string Prefix = nameof(Logic); - [LoggerMessage(EventId = 0, EventName = Prefix + nameof(PlaywrightInitialized), Level = LogLevel.Information, diff --git a/src/ScreenshotCreator.Logic/PlaywrightHelper.cs b/src/ScreenshotCreator.Logic/PlaywrightHelper.cs new file mode 100644 index 0000000..ef9679d --- /dev/null +++ b/src/ScreenshotCreator.Logic/PlaywrightHelper.cs @@ -0,0 +1,54 @@ +using System.Diagnostics.CodeAnalysis; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; +using Microsoft.Playwright; + +namespace ScreenshotCreator.Logic; + +[ExcludeFromCodeCoverage] +public sealed class PlaywrightHelper : IPlaywrightHelper, IAsyncDisposable +{ + private readonly ILogger _logger; + private readonly ScreenshotOptions _screenshotOptions; + private IPlaywright? _playwright; + private IBrowser? _browser; + private IPage? _page; + private bool _disposed; + + public PlaywrightHelper(IOptions options, ILogger logger) + { + _logger = logger; + _screenshotOptions = options.Value; + } + + public async ValueTask DisposeAsync() + { + if (_disposed) return; + + if (_browser != null) await _browser.DisposeAsync(); + _playwright?.Dispose(); + + _disposed = true; + } + + /// + public async ValueTask InitializePlaywrightAsync() + { + if (_page != null) + { + _logger.ReusingPlaywrightPage(); + return _page; + } + + _playwright = await Playwright.CreateAsync(); + _browser = await _playwright.Chromium.LaunchAsync(); + _page = await _browser.NewPageAsync(new BrowserNewPageOptions { TimezoneId = Environment.GetEnvironmentVariable("TZ") }); + + _logger.PlaywrightInitialized(); + + return _page; + } + + /// + public async Task WaitAsync() => await Task.Delay(TimeSpan.FromSeconds(_screenshotOptions.TimeBetweenHttpCallsInSeconds)); +} \ No newline at end of file diff --git a/src/ScreenshotCreator.Logic/ScreenshotCreator.cs b/src/ScreenshotCreator.Logic/ScreenshotCreator.cs index 64576f8..af02bd8 100644 --- a/src/ScreenshotCreator.Logic/ScreenshotCreator.cs +++ b/src/ScreenshotCreator.Logic/ScreenshotCreator.cs @@ -1,5 +1,4 @@ -using System.Diagnostics.CodeAnalysis; -using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Options; using Microsoft.Playwright; @@ -7,52 +6,35 @@ namespace ScreenshotCreator.Logic; public sealed class ScreenshotCreator : IScreenshotCreator { + private readonly IPlaywrightHelper _playwrightHelper; private readonly ILogger _logger; private readonly ScreenshotOptions _screenshotOptions; - private IPage? _page; - private bool _disposed; - private IPlaywright? _playwright; - private IBrowser? _browser; - public ScreenshotCreator(IOptions options, ILogger logger) + public ScreenshotCreator(IPlaywrightHelper playwrightHelper, IOptions options, ILogger logger) { + _playwrightHelper = playwrightHelper; _logger = logger; _screenshotOptions = options.Value; } public async Task CreateScreenshotAsync(uint width, uint height) { - if (_page == null) - _page = await InitializePlaywrightAsync(); - else - _logger.ReusingPlaywrightPage(); + var page = await _playwrightHelper.InitializePlaywrightAsync(); - await _page.SetViewportSizeAsync((int)width, (int)height); - if (await NeedsLoginAsync(_page)) { await LoginAsync(_page); } + await page.SetViewportSizeAsync((int)width, (int)height); + if (await NeedsLoginAsync(page)) await LoginAsync(page); - await NavigateToUrlAsync(_page); + await NavigateToUrlAsync(page); - await _page.ScreenshotAsync(new PageScreenshotOptions { Path = _screenshotOptions.ScreenshotFileName, Type = ScreenshotType.Png }); + await page.ScreenshotAsync(new PageScreenshotOptions { Path = _screenshotOptions.ScreenshotFileName, Type = ScreenshotType.Png }); _logger.ScreenshotCreated(); } - /// - [ExcludeFromCodeCoverage(Justification = "Default Dispose pattern")] - public async ValueTask DisposeAsync() - { - if (_disposed) return; - - if (_browser != null) await _browser.DisposeAsync(); - _playwright?.Dispose(); - - _disposed = true; - } - private async Task NavigateToUrlAsync(IPage page) { await page.GotoAsync(_screenshotOptions.Url); - await WaitAsync(); + await _playwrightHelper.WaitAsync(); } private async Task LoginAsync(IPage page) @@ -60,11 +42,11 @@ private async Task LoginAsync(IPage page) _logger.LoggingIn(); await page.GotoAsync(GetBaseUrl()); - await WaitAsync(); + await _playwrightHelper.WaitAsync(); await page.GetByPlaceholder("User Name").FillAsync(_screenshotOptions.Username); await page.GetByPlaceholder("Password", new PageGetByPlaceholderOptions { Exact = true }).FillAsync(_screenshotOptions.Password); await page.GetByRole(AriaRole.Button).ClickAsync(); - await WaitAsync(); + await _playwrightHelper.WaitAsync(); } private async Task NeedsLoginAsync(IPage page) @@ -83,18 +65,5 @@ private async Task NeedsLoginAsync(IPage page) return needsLogin; } - private async Task InitializePlaywrightAsync() - { - _playwright = await Playwright.CreateAsync(); - _browser = await _playwright.Chromium.LaunchAsync(); - var page = await _browser.NewPageAsync(new BrowserNewPageOptions { TimezoneId = Environment.GetEnvironmentVariable("TZ") }); - - _logger.PlaywrightInitialized(); - - return page; - } - - private async Task WaitAsync() => await Task.Delay(TimeSpan.FromSeconds(_screenshotOptions.TimeBetweenHttpCallsInSeconds)); - private string GetBaseUrl() => new Uri(_screenshotOptions.Url).GetLeftPart(UriPartial.Authority); } \ No newline at end of file diff --git a/stryker-config.json b/stryker-config.json index aa3a38a..9eb3b8c 100644 --- a/stryker-config.json +++ b/stryker-config.json @@ -10,6 +10,7 @@ "project-info": { "name": "github.com/mu88/ScreenshotCreator" }, + "test-case-filter": "TestCategory=Unit", "ignore-methods": [ "_logger.*" ] diff --git a/tests/Tests/Performance/Logic/ImageProcessorTests.cs b/tests/Tests/Performance/Logic/ImageProcessorTests.cs index e2707c1..1b184d9 100644 --- a/tests/Tests/Performance/Logic/ImageProcessorTests.cs +++ b/tests/Tests/Performance/Logic/ImageProcessorTests.cs @@ -28,5 +28,5 @@ public void ProcessImage_ShouldNotConsumeTooMuchMemory_WhenCreatingBlackWhiteIma public class ImageProcessorBenchmarks { [Benchmark] - public async Task ProcessAsync() => await new ImageProcessor(new Mock>().Object).ProcessAsync("testData/Screenshot.png", true, true); + public static async Task ProcessAsync() => await new ImageProcessor(new Mock>().Object).ProcessAsync("testData/Screenshot.png", true, true); } \ No newline at end of file diff --git a/tests/Tests/Unit/Api/HeaderDictionaryExtensionsTests.cs b/tests/Tests/Unit/Api/HeaderDictionaryExtensionsTests.cs index c9a33ee..46e4d25 100644 --- a/tests/Tests/Unit/Api/HeaderDictionaryExtensionsTests.cs +++ b/tests/Tests/Unit/Api/HeaderDictionaryExtensionsTests.cs @@ -1,6 +1,7 @@ using FluentAssertions; using FluentAssertions.Extensions; using Microsoft.AspNetCore.Http; +using Moq; using ScreenshotCreator.Api; using ScreenshotCreator.Logic; @@ -10,21 +11,40 @@ namespace Tests.Unit.Api; [Category("Unit")] public class HeaderDictionaryExtensionsTests { - [Test] - public void AddWaveshareInstructions() + [TestCase(true, + "", + "", + "15:00", + true, + "1953")] + [TestCase(false, + "16:00", + "13:00", + "15:00", + false, + "15")] + public void AddWaveshareInstructions(bool isNull, + string activeFrom, + string activeTo, + string now, + bool expectedDisplayState, + string expectedSleep) { // Arrange Environment.SetEnvironmentVariable("TZ", null); + var timeProviderMock = new Mock(); + timeProviderMock.Setup(provider => provider.GetUtcNow()).Returns(12.April(1953).Add(TimeOnly.Parse(now).ToTimeSpan())); + var activity = isNull ? null : new Activity(TimeOnly.Parse(activeFrom), TimeOnly.Parse(activeTo), 15u); var getLastWriteTimeUtc = (string file) => 12.April(2023).At(19, 53).AsUtc(); - var screenshotOptions = new ScreenshotOptions { RefreshIntervalInSeconds = 1953 }; + var screenshotOptions = new ScreenshotOptions { RefreshIntervalInSeconds = 1953, Activity = activity }; var testee = new HeaderDictionary(); // Act testee.AddWaveshareInstructions(screenshotOptions, "testData/Screenshot.png", getLastWriteTimeUtc, "Europe/Berlin"); // Assert - testee.Should().Contain(header => header.Key == "waveshare-update-screen" && header.Value.Single() == "True"); - testee.Should().Contain(header => header.Key == "waveshare-sleep-between-updates" && header.Value.Single() == "1953"); + testee.Should().Contain(header => header.Key == "waveshare-update-screen" && header.Value.Single() == expectedDisplayState.ToString()); + testee.Should().Contain(header => header.Key == "waveshare-sleep-between-updates" && header.Value.Single() == expectedSleep); testee.Should().Contain(header => header.Key == "waveshare-last-modified-local-time"); TimeOnly.Parse(testee["waveshare-last-modified-local-time"].Single()!) .Should() diff --git a/tests/Tests/Unit/Logic/ActivityExtensionsTests.cs b/tests/Tests/Unit/Logic/ActivityExtensionsTests.cs index 6a8a228..46ee91e 100644 --- a/tests/Tests/Unit/Logic/ActivityExtensionsTests.cs +++ b/tests/Tests/Unit/Logic/ActivityExtensionsTests.cs @@ -11,12 +11,16 @@ public class ActivityExtensionsTests { [TestCase(true, "", "", "15:00", true)] [TestCase(false, "13:00", "16:00", "15:00", true)] + [TestCase(false, "15:00", "16:00", "15:00", true)] + [TestCase(false, "14:00", "15:00", "15:00", true)] [TestCase(false, "16:00", "13:00", "15:00", false)] + [TestCase(false, "14:00", "14:30", "15:00", false)] public void DisplayShouldBeActive(bool isNull, string activeFrom, string activeTo, string now, bool expectedResult) { // Arrange + Environment.SetEnvironmentVariable("TZ", null); var timeProviderMock = new Mock(); - timeProviderMock.Setup(provider => provider.GetUtcNow()).Returns(12.April(1953).Add(TimeOnly.Parse(now).ToTimeSpan())); + timeProviderMock.Setup(provider => provider.GetUtcNow()).Returns(12.April(2023).Add(TimeOnly.Parse(now).ToTimeSpan())); var testee = isNull ? null : new Activity(TimeOnly.Parse(activeFrom), TimeOnly.Parse(activeTo), 0u); // Act diff --git a/tests/Tests/Unit/Logic/ImageProcessorTests.cs b/tests/Tests/Unit/Logic/ImageProcessorTests.cs index 13abb5e..9ce2dd4 100644 --- a/tests/Tests/Unit/Logic/ImageProcessorTests.cs +++ b/tests/Tests/Unit/Logic/ImageProcessorTests.cs @@ -55,14 +55,16 @@ public async Task ProcessImage_ShouldCreateBlackWhiteImageInWaveshareFormat() result.MediaType.Should().Be(MediaTypeNames.Application.Octet); } - [Test] - public async Task ProcessImage_ShouldReturnEmptyIfImageHasInvalidDimensions() + [TestCase("testData/Screenshot_invalidByInvalid.png")] + [TestCase("testData/Screenshot_invalidBy480.png")] + [TestCase("testData/Screenshot_800ByInvalid.png")] + public async Task ProcessImage_ShouldReturnEmptyIfImageHasInvalidDimensions(string fileName) { // Arrange var testee = new ImageProcessor(new Mock>().Object); // Act - var result = await testee.ProcessAsync("testData/Screenshot_invalid_dimensions.png", true, true); + var result = await testee.ProcessAsync(fileName, true, true); // Assert result.Data.Should().HaveCount(0); diff --git a/tests/Tests/Unit/Logic/ScreenshotCreatorTests.cs b/tests/Tests/Unit/Logic/ScreenshotCreatorTests.cs index 7faf005..6b55888 100644 --- a/tests/Tests/Unit/Logic/ScreenshotCreatorTests.cs +++ b/tests/Tests/Unit/Logic/ScreenshotCreatorTests.cs @@ -1,7 +1,10 @@ using FluentAssertions; using ImageMagick; +using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Options; +using Microsoft.Playwright; +using Moq; using ScreenshotCreator.Logic; namespace Tests.Unit.Logic; @@ -10,21 +13,105 @@ namespace Tests.Unit.Logic; [Category("Unit")] public class ScreenshotCreatorTests { - [Test] - public async Task CreateScreenshotWithoutLogin() + [TestCase("")] + [TestCase("/custom")] + public async Task CreateScreenshotWithoutLoginByConfig(string subresource) { // Arrange - var screenshotOptions = new ScreenshotOptions { Url = "https://www.dynamo-dresden.de", UrlType = UrlType.Any }; - var testee = new ScreenshotCreator.Logic.ScreenshotCreator(Options.Create(screenshotOptions), + var screenshotOptions = new ScreenshotOptions { Url = $"https://www.mysite.com{subresource}", UrlType = UrlType.Any }; + var playwrightHelperMock = new Mock(); + var pageMock = new Mock(); + pageMock + .Setup(page => page.ScreenshotAsync(It.Is(options => options.Path == screenshotOptions.ScreenshotFileName && + options.Type == ScreenshotType.Png))) + .ReturnsAsync(await File.ReadAllBytesAsync("testData/Screenshot.png")); + playwrightHelperMock.Setup(helper => helper.InitializePlaywrightAsync()).ReturnsAsync(pageMock.Object); + var testee = new ScreenshotCreator.Logic.ScreenshotCreator(playwrightHelperMock.Object, + Options.Create(screenshotOptions), NullLogger.Instance); // Act - await testee.CreateScreenshotAsync(800, 600); + await testee.CreateScreenshotAsync(800, 480); // Assert - var screenshot = new MagickImage(await File.ReadAllBytesAsync("Screenshot.png")); + var screenshot = new MagickImage(await File.ReadAllBytesAsync("testData/Screenshot.png")); screenshot.ColorSpace.Should().Be(ColorSpace.sRGB); screenshot.Width.Should().Be(800); - screenshot.Height.Should().Be(600); + screenshot.Height.Should().Be(480); + pageMock.Verify(page => page.SetViewportSizeAsync(800, 480), Times.Once); + pageMock.Verify(page => page.GotoAsync(screenshotOptions.Url, null), Times.Once); + playwrightHelperMock.Verify(helper => helper.InitializePlaywrightAsync(), Times.Once); + playwrightHelperMock.Verify(helper => helper.WaitAsync(), Times.Once); + } + + [TestCase("")] + [TestCase("/custom")] + public async Task CreateScreenshotWithoutLoginByPageContent(string subresource) + { + // Arrange + var screenshotOptions = new ScreenshotOptions { Url = $"https://www.mysite.com{subresource}", UrlType = UrlType.OpenHab }; + var playwrightHelperMock = new Mock(); + var pageMock = new Mock(); + pageMock + .Setup(page => page.ScreenshotAsync(It.Is(options => options.Path == screenshotOptions.ScreenshotFileName && + options.Type == ScreenshotType.Png))) + .ReturnsAsync(await File.ReadAllBytesAsync("testData/Screenshot.png")); + pageMock.Setup(page => page.GetByText("You are not allowed to view this page because of visibility restrictions.", null).CountAsync()).ReturnsAsync(0); + playwrightHelperMock.Setup(helper => helper.InitializePlaywrightAsync()).ReturnsAsync(pageMock.Object); + var testee = new ScreenshotCreator.Logic.ScreenshotCreator(playwrightHelperMock.Object, + Options.Create(screenshotOptions), + NullLogger.Instance); + + // Act + await testee.CreateScreenshotAsync(800, 480); + + // Assert + var screenshot = new MagickImage(await File.ReadAllBytesAsync("testData/Screenshot.png")); + screenshot.ColorSpace.Should().Be(ColorSpace.sRGB); + screenshot.Width.Should().Be(800); + screenshot.Height.Should().Be(480); + pageMock.Verify(page => page.SetViewportSizeAsync(800, 480), Times.Once); + pageMock.Verify(page => page.GotoAsync(screenshotOptions.Url, null), Times.Exactly(2)); + playwrightHelperMock.Verify(helper => helper.InitializePlaywrightAsync(), Times.Once); + playwrightHelperMock.Verify(helper => helper.WaitAsync(), Times.Exactly(2)); + } + + [TestCase("", 3)] + [TestCase("/custom", 2)] + public async Task CreateScreenshotWithLogin(string subresource, int expectedCallsOfGoto) + { + // Arrange + var screenshotOptions = new ScreenshotOptions { Url = $"https://www.mysite.com{subresource}", UrlType = UrlType.OpenHab }; + var playwrightHelperMock = new Mock(); + var pageMock = new Mock(); + pageMock.Setup(page => page.GetByPlaceholder("User Name", null).FillAsync(screenshotOptions.Username, null)); + pageMock.Setup(page => page + .GetByPlaceholder("Password", It.Is(options => options.Exact == true)) + .FillAsync(screenshotOptions.Password, null)); + pageMock.Setup(page => page.GetByRole(AriaRole.Button, null).ClickAsync(null)); + pageMock.Setup(page => page.GetByText("You are not allowed to view this page because of visibility restrictions.", null).CountAsync()).ReturnsAsync(1); + playwrightHelperMock.Setup(helper => helper.InitializePlaywrightAsync()).ReturnsAsync(pageMock.Object); + var testee = new ScreenshotCreator.Logic.ScreenshotCreator(playwrightHelperMock.Object, + Options.Create(screenshotOptions), + new Mock>().Object); + + // Act + await testee.CreateScreenshotAsync(800, 480); + + // Assert + pageMock.Verify(page => page.GetByPlaceholder("User Name", null).FillAsync(screenshotOptions.Username, null), Times.Once); + pageMock.Verify(page => page + .GetByPlaceholder("Password", It.Is(options => options.Exact == true)) + .FillAsync(screenshotOptions.Password, null), + Times.Once); + pageMock.Verify(page => page.GetByRole(AriaRole.Button, null).ClickAsync(null), Times.Once); + pageMock.Verify(page => page.SetViewportSizeAsync(800, 480), Times.Once); + pageMock.Verify(page => page.GotoAsync(screenshotOptions.Url, null), Times.Exactly(expectedCallsOfGoto)); + pageMock.Verify(page => page.ScreenshotAsync(It.Is(options => options.Path == screenshotOptions.ScreenshotFileName && + options.Type == ScreenshotType.Png)), + Times.Once); + pageMock.Verify(page => page.GetByText("You are not allowed to view this page because of visibility restrictions.", null).CountAsync(), Times.Once); + playwrightHelperMock.Verify(helper => helper.InitializePlaywrightAsync(), Times.Once); + playwrightHelperMock.Verify(helper => helper.WaitAsync(), Times.Exactly(4)); } } \ No newline at end of file diff --git a/tests/Tests/testData/Screenshot_800ByInvalid.png b/tests/Tests/testData/Screenshot_800ByInvalid.png new file mode 100644 index 0000000000000000000000000000000000000000..80f394f6b4c8b259585ec01b42362876aaaa1863 GIT binary patch literal 65226 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 Ar~m)} literal 0 HcmV?d00001 diff --git a/tests/Tests/testData/Screenshot_invalidBy480.png b/tests/Tests/testData/Screenshot_invalidBy480.png new file mode 100644 index 0000000000000000000000000000000000000000..42335372277de1c6cf2b22981866a8ca077a5fa4 GIT binary patch literal 30213 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
FW=G-8<|<@_lnt+6cxgU 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 literal 0 HcmV?d00001 diff --git a/tests/Tests/testData/Screenshot_invalid_dimensions.png b/tests/Tests/testData/Screenshot_invalidByInvalid.png similarity index 100% rename from tests/Tests/testData/Screenshot_invalid_dimensions.png rename to tests/Tests/testData/Screenshot_invalidByInvalid.png