From 5844496bf127b6ff5a173cee85b0605cde8535f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0vihl=C3=ADk?= Date: Sat, 16 Nov 2024 15:35:07 +0100 Subject: [PATCH] net9 --- .github/workflows/integrate.yml | 2 +- .github/workflows/pull_request.yml | 2 +- .github/workflows/release.yml | 2 +- .../WopiHost.Abstractions.csproj | 6 ++-- src/WopiHost.Cobalt/CobaltHostLockingStore.cs | 2 +- src/WopiHost.Cobalt/WopiHost.Cobalt.csproj | 2 +- src/WopiHost.Core/FileExtensions.cs | 2 +- src/WopiHost.Core/WopiHost.Core.csproj | 6 ++-- .../WopiHost.Discovery.csproj | 3 +- .../WopiHost.FileSystemProvider.csproj | 14 +++++----- .../WopiSecurityHandler.cs | 6 ++-- src/WopiHost.Url/WopiHost.Url.csproj | 2 +- src/WopiHost.Web/WopiHost.Web.csproj | 4 +-- src/WopiHost/WopiHost.csproj | 28 +++++++++---------- .../WopiHost.Core.Tests.csproj | 16 +++++------ .../WopiDiscovererTests.cs | 26 ++++++++--------- .../WopiHost.Discovery.Tests.csproj | 16 +++++------ .../WopiHost.FileSystemProvider.Tests.csproj | 16 +++++------ .../WopiHost.Url.Tests.csproj | 16 +++++------ .../WopiUrlGeneratorTests.cs | 6 ++-- 20 files changed, 89 insertions(+), 88 deletions(-) diff --git a/.github/workflows/integrate.yml b/.github/workflows/integrate.yml index 871f959..f15a5a8 100644 --- a/.github/workflows/integrate.yml +++ b/.github/workflows/integrate.yml @@ -14,7 +14,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: '8.0.x' + dotnet-version: '9.0.x' - name: Restore dependencies run: dotnet restore -s ${MYGET_FEED} -s https://api.nuget.org/v3/index.json env: diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6014382..99b8a80 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -26,7 +26,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: '8.0.x' + dotnet-version: '9.0.x' - name: Restore dependencies run: dotnet restore -s ${MYGET_FEED} -s https://api.nuget.org/v3/index.json env: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 744c515..606eef5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: '8.0.x' + dotnet-version: '9.0.x' - name: Extract version from tag id: get_version uses: battila7/get-version-action@v2 diff --git a/src/WopiHost.Abstractions/WopiHost.Abstractions.csproj b/src/WopiHost.Abstractions/WopiHost.Abstractions.csproj index 5d26204..42ed6aa 100644 --- a/src/WopiHost.Abstractions/WopiHost.Abstractions.csproj +++ b/src/WopiHost.Abstractions/WopiHost.Abstractions.csproj @@ -3,7 +3,7 @@ WopiHost.Abstractions Class Library Petr Svihlik - net8.0 + net9.0 WopiHost.Abstractions WopiHost.Abstractions LICENSE.txt @@ -37,9 +37,9 @@ - + - + diff --git a/src/WopiHost.Cobalt/CobaltHostLockingStore.cs b/src/WopiHost.Cobalt/CobaltHostLockingStore.cs index b57cdd0..60fe214 100644 --- a/src/WopiHost.Cobalt/CobaltHostLockingStore.cs +++ b/src/WopiHost.Cobalt/CobaltHostLockingStore.cs @@ -175,7 +175,7 @@ public override GetCoauthoringStatusRequest.OutputType HandleGetCoauthoringStatu return result; } - public override Dictionary QueryEditorsTable() => new(); + public override Dictionary QueryEditorsTable() => []; public override JoinEditingSessionRequest.OutputType HandleJoinEditingSession(JoinEditingSessionRequest.InputType input) { diff --git a/src/WopiHost.Cobalt/WopiHost.Cobalt.csproj b/src/WopiHost.Cobalt/WopiHost.Cobalt.csproj index 15f515c..4563e6e 100644 --- a/src/WopiHost.Cobalt/WopiHost.Cobalt.csproj +++ b/src/WopiHost.Cobalt/WopiHost.Cobalt.csproj @@ -3,7 +3,7 @@ WopiHost.Cobalt Class Library Petr Svihlik - net8.0 + net9.0 WopiHost.Cobalt WopiHost.Cobalt LICENSE.txt diff --git a/src/WopiHost.Core/FileExtensions.cs b/src/WopiHost.Core/FileExtensions.cs index 28e5cd2..176c4eb 100644 --- a/src/WopiHost.Core/FileExtensions.cs +++ b/src/WopiHost.Core/FileExtensions.cs @@ -32,7 +32,7 @@ public static CheckFileInfo GetCheckFileInfo(this IWopiFile file, ClaimsPrincipa checkFileInfo.UserId = principal.FindFirst(ClaimTypes.NameIdentifier)?.Value.ToSafeIdentity(); checkFileInfo.UserFriendlyName = principal.FindFirst(ClaimTypes.Name)?.Value; - var permissions = (WopiUserPermissions)Enum.Parse(typeof(WopiUserPermissions), principal.FindFirst(WopiClaimTypes.USER_PERMISSIONS).Value); + var permissions = Enum.Parse(principal.FindFirst(WopiClaimTypes.USER_PERMISSIONS).Value); checkFileInfo.ReadOnly = permissions.HasFlag(WopiUserPermissions.ReadOnly); checkFileInfo.RestrictedWebViewOnly = permissions.HasFlag(WopiUserPermissions.RestrictedWebViewOnly); diff --git a/src/WopiHost.Core/WopiHost.Core.csproj b/src/WopiHost.Core/WopiHost.Core.csproj index 3ba0b0c..78c113b 100644 --- a/src/WopiHost.Core/WopiHost.Core.csproj +++ b/src/WopiHost.Core/WopiHost.Core.csproj @@ -3,7 +3,7 @@ WopiHost.Core Class Library Petr Svihlik - net8.0 + net9.0 WopiHost.Core WopiHost.Core LICENSE.txt @@ -42,7 +42,7 @@ - - + + diff --git a/src/WopiHost.Discovery/WopiHost.Discovery.csproj b/src/WopiHost.Discovery/WopiHost.Discovery.csproj index 26ac96e..756fbae 100644 --- a/src/WopiHost.Discovery/WopiHost.Discovery.csproj +++ b/src/WopiHost.Discovery/WopiHost.Discovery.csproj @@ -3,7 +3,7 @@ WopiHost.Discovery Class Library Petr Svihlik - net8.0 + net9.0 WopiHost.Discovery WopiHost.Discovery LICENSE.txt @@ -41,5 +41,6 @@ + diff --git a/src/WopiHost.FileSystemProvider/WopiHost.FileSystemProvider.csproj b/src/WopiHost.FileSystemProvider/WopiHost.FileSystemProvider.csproj index ac15785..be8011b 100644 --- a/src/WopiHost.FileSystemProvider/WopiHost.FileSystemProvider.csproj +++ b/src/WopiHost.FileSystemProvider/WopiHost.FileSystemProvider.csproj @@ -3,7 +3,7 @@ WopiHost.FileSystemProvider Class Library Petr Svihlik - net8.0 + net9.0 WopiHost.FileSystemProvider WopiHost.FileSystemProvider LICENSE.txt @@ -33,17 +33,17 @@ - + - - - + + + - - + + diff --git a/src/WopiHost.FileSystemProvider/WopiSecurityHandler.cs b/src/WopiHost.FileSystemProvider/WopiSecurityHandler.cs index e7fc837..b618c06 100644 --- a/src/WopiHost.FileSystemProvider/WopiSecurityHandler.cs +++ b/src/WopiHost.FileSystemProvider/WopiSecurityHandler.cs @@ -41,15 +41,15 @@ private SymmetricSecurityKey Key { "Anonymous", new ClaimsPrincipal( - new ClaimsIdentity(new List - { + new ClaimsIdentity( + [ new(ClaimTypes.NameIdentifier, "12345"), new(ClaimTypes.Name, "Anonymous"), new(ClaimTypes.Email, "anonymous@domain.tld"), //TDOO: this needs to be done per file new(WopiClaimTypes.USER_PERMISSIONS, (WopiUserPermissions.UserCanWrite | WopiUserPermissions.UserCanRename | WopiUserPermissions.UserCanAttend | WopiUserPermissions.UserCanPresent).ToString()) - }) + ]) ) } }; diff --git a/src/WopiHost.Url/WopiHost.Url.csproj b/src/WopiHost.Url/WopiHost.Url.csproj index 1264e49..f598133 100644 --- a/src/WopiHost.Url/WopiHost.Url.csproj +++ b/src/WopiHost.Url/WopiHost.Url.csproj @@ -3,7 +3,7 @@ WopiHost.Url Class Library Petr Svihlik - net8.0 + net9.0 WopiHost.Url WopiHost.Url LICENSE.txt diff --git a/src/WopiHost.Web/WopiHost.Web.csproj b/src/WopiHost.Web/WopiHost.Web.csproj index 7df9991..5e4cc18 100644 --- a/src/WopiHost.Web/WopiHost.Web.csproj +++ b/src/WopiHost.Web/WopiHost.Web.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 true true WopiHost.Web @@ -13,7 +13,7 @@ - + diff --git a/src/WopiHost/WopiHost.csproj b/src/WopiHost/WopiHost.csproj index 1b033d1..179171d 100644 --- a/src/WopiHost/WopiHost.csproj +++ b/src/WopiHost/WopiHost.csproj @@ -1,7 +1,7 @@  - net8.0 + net9.0 WopiHost Exe true @@ -23,19 +23,19 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + diff --git a/test/WopiHost.Core.Tests/WopiHost.Core.Tests.csproj b/test/WopiHost.Core.Tests/WopiHost.Core.Tests.csproj index 8e60abb..bc65b29 100644 --- a/test/WopiHost.Core.Tests/WopiHost.Core.Tests.csproj +++ b/test/WopiHost.Core.Tests/WopiHost.Core.Tests.csproj @@ -1,27 +1,27 @@  - net8.0 + net9.0 - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers diff --git a/test/WopiHost.Discovery.Tests/WopiDiscovererTests.cs b/test/WopiHost.Discovery.Tests/WopiDiscovererTests.cs index 6a48fc9..c812e52 100644 --- a/test/WopiHost.Discovery.Tests/WopiDiscovererTests.cs +++ b/test/WopiHost.Discovery.Tests/WopiDiscovererTests.cs @@ -22,7 +22,7 @@ public WopiDiscovererTests() [InlineData(NetZoneEnum.InternalHttp, "xlsx", WopiActionEnum.MobileView, "http://owaserver/x/_layouts/xlviewerinternal.aspx?", XmlOo2019)] [InlineData(NetZoneEnum.ExternalHttps, "xlsx", WopiActionEnum.MobileView, "https://excel.officeapps.live.com/x/_layouts/xlviewerinternal.aspx?", XmlOo2019)] [InlineData(NetZoneEnum.InternalHttp, "ods", WopiActionEnum.Edit, "http://owaserver/x/_layouts/xlviewerinternal.aspx?edit=1&", XmlOwa2013)] - public async void NetZoneTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string expectedValue, string fileName) + public async Task NetZoneTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string expectedValue, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -35,7 +35,7 @@ public async void NetZoneTests(NetZoneEnum netZone, string extension, WopiAction } [Fact] - public async void InvalidNetZone() + public async Task InvalidNetZone() { // Arrange InitDiscoverer(XmlInvalid, NetZoneEnum.InternalHttp); @@ -50,7 +50,7 @@ public async void InvalidNetZone() [Theory] [InlineData(NetZoneEnum.InternalHttp, "xlsx", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "docx", XmlOos2016)] - public async void SupportedExtension(NetZoneEnum netZone, string extension, string fileName) + public async Task SupportedExtension(NetZoneEnum netZone, string extension, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -65,7 +65,7 @@ public async void SupportedExtension(NetZoneEnum netZone, string extension, stri [Theory] [InlineData(NetZoneEnum.InternalHttp, "html", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "txt", XmlOos2016)] - public async void NonSupportedExtension(NetZoneEnum netZone, string extension, string fileName) + public async Task NonSupportedExtension(NetZoneEnum netZone, string extension, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -80,7 +80,7 @@ public async void NonSupportedExtension(NetZoneEnum netZone, string extension, s [Theory] [InlineData(NetZoneEnum.InternalHttp, "html", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "txt", XmlOos2016)] - public async void NonSupportedExtensionWithAction(NetZoneEnum netZone, string extension, string fileName) + public async Task NonSupportedExtensionWithAction(NetZoneEnum netZone, string extension, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -95,7 +95,7 @@ public async void NonSupportedExtensionWithAction(NetZoneEnum netZone, string ex [Theory] [InlineData(NetZoneEnum.InternalHttp, "pptx", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "docx", XmlOos2016)] - public async void SupportedExtensionWithAction(NetZoneEnum netZone, string extension, string fileName) + public async Task SupportedExtensionWithAction(NetZoneEnum netZone, string extension, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -110,7 +110,7 @@ public async void SupportedExtensionWithAction(NetZoneEnum netZone, string exten [Theory] [InlineData(NetZoneEnum.InternalHttp, "html", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "txt", XmlOos2016)] - public async void NonSupportedExtensionCobalt(NetZoneEnum netZone, string extension, string fileName) + public async Task NonSupportedExtensionCobalt(NetZoneEnum netZone, string extension, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -125,7 +125,7 @@ public async void NonSupportedExtensionCobalt(NetZoneEnum netZone, string extens [Theory] [InlineData(NetZoneEnum.InternalHttp, "docx", XmlOwa2013, true)] [InlineData(NetZoneEnum.InternalHttp, "docx", XmlOos2016, false)] - public async void SupportedExtensionCobalt(NetZoneEnum netZone, string extension, string fileName, bool expected) + public async Task SupportedExtensionCobalt(NetZoneEnum netZone, string extension, string fileName, bool expected) { // Arrange InitDiscoverer(fileName, netZone); @@ -142,7 +142,7 @@ public async void SupportedExtensionCobalt(NetZoneEnum netZone, string extension [InlineData(NetZoneEnum.InternalHttp, "docx", WopiActionEnum.Edit, "http://owaserver/we/wordeditorframe.aspx?", XmlOwa2013)] [InlineData(NetZoneEnum.InternalHttp, "html", WopiActionEnum.Edit, null, XmlOwa2013)] [InlineData(NetZoneEnum.InternalHttp, "txt", WopiActionEnum.Edit, null, XmlOwa2013)] - public async void UrlTemplateTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string? expectedValue, string fileName) + public async Task UrlTemplateTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string? expectedValue, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -159,7 +159,7 @@ public async void UrlTemplateTests(NetZoneEnum netZone, string extension, WopiAc [InlineData(NetZoneEnum.InternalHttp, "docx", "Word", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "html", null, XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "txt", null, XmlOos2016)] - public async void AppNameTests(NetZoneEnum netZone, string extension, string? expectedValue, string fileName) + public async Task AppNameTests(NetZoneEnum netZone, string extension, string? expectedValue, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -176,7 +176,7 @@ public async void AppNameTests(NetZoneEnum netZone, string extension, string? ex [InlineData(NetZoneEnum.InternalHttp, "docx", "http://owaserver/wv/resources/1033/FavIcon_Word.ico", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "html", null, XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "txt", null, XmlOos2016)] - public async void FavIconTests(NetZoneEnum netZone, string extension, string? expectedValue, string fileName) + public async Task FavIconTests(NetZoneEnum netZone, string extension, string? expectedValue, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -194,7 +194,7 @@ public async void FavIconTests(NetZoneEnum netZone, string extension, string? ex [InlineData(NetZoneEnum.InternalHttp, "docx", WopiActionEnum.Edit, "cobalt", XmlOwa2013)] [InlineData(NetZoneEnum.InternalHttp, "docx", WopiActionEnum.Edit, "update", XmlOos2016)] [InlineData(NetZoneEnum.InternalHttp, "one", WopiActionEnum.View, "containers", XmlOwa2013)] - public async void ActionRequirementsTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string expectedValue, string fileName) + public async Task ActionRequirementsTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string expectedValue, string fileName) { // Arrange InitDiscoverer(fileName, netZone); @@ -211,7 +211,7 @@ public async void ActionRequirementsTests(NetZoneEnum netZone, string extension, [InlineData(NetZoneEnum.InternalHttp, "one", WopiActionEnum.Edit, "locks", XmlOwa2013)] [InlineData(NetZoneEnum.InternalHttp, "xlsx", WopiActionEnum.Edit, "locks", XmlOwa2013)] [InlineData(NetZoneEnum.InternalHttp, "xlsx", WopiActionEnum.Edit, "cobalt", XmlOos2016)] - public async void ActionRequirementsNegativeTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string expectedValue, string fileName) + public async Task ActionRequirementsNegativeTests(NetZoneEnum netZone, string extension, WopiActionEnum action, string expectedValue, string fileName) { // Arrange InitDiscoverer(fileName, netZone); diff --git a/test/WopiHost.Discovery.Tests/WopiHost.Discovery.Tests.csproj b/test/WopiHost.Discovery.Tests/WopiHost.Discovery.Tests.csproj index 9fcfa99..090d38f 100644 --- a/test/WopiHost.Discovery.Tests/WopiHost.Discovery.Tests.csproj +++ b/test/WopiHost.Discovery.Tests/WopiHost.Discovery.Tests.csproj @@ -6,7 +6,7 @@ - net8.0 + net9.0 @@ -14,22 +14,22 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers diff --git a/test/WopiHost.FileSystemProvider.Tests/WopiHost.FileSystemProvider.Tests.csproj b/test/WopiHost.FileSystemProvider.Tests/WopiHost.FileSystemProvider.Tests.csproj index 6efa1c4..4a55487 100644 --- a/test/WopiHost.FileSystemProvider.Tests/WopiHost.FileSystemProvider.Tests.csproj +++ b/test/WopiHost.FileSystemProvider.Tests/WopiHost.FileSystemProvider.Tests.csproj @@ -1,27 +1,27 @@  - net8.0 + net9.0 - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers diff --git a/test/WopiHost.Url.Tests/WopiHost.Url.Tests.csproj b/test/WopiHost.Url.Tests/WopiHost.Url.Tests.csproj index 0c1a098..e0c577a 100644 --- a/test/WopiHost.Url.Tests/WopiHost.Url.Tests.csproj +++ b/test/WopiHost.Url.Tests/WopiHost.Url.Tests.csproj @@ -1,27 +1,27 @@  - net8.0 + net9.0 - + all runtime; build; native; contentfiles; analyzers; buildtransitive - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + all runtime; build; native; contentfiles; analyzers - + all runtime; build; native; contentfiles; analyzers diff --git a/test/WopiHost.Url.Tests/WopiUrlGeneratorTests.cs b/test/WopiHost.Url.Tests/WopiUrlGeneratorTests.cs index 651653d..531de7a 100644 --- a/test/WopiHost.Url.Tests/WopiUrlGeneratorTests.cs +++ b/test/WopiHost.Url.Tests/WopiUrlGeneratorTests.cs @@ -19,7 +19,7 @@ public WopiUrlGeneratorTests() [Theory] [InlineData("xlsx", "http://wopihost:5000/wopi/files/test.xlsx", WopiActionEnum.Edit, "http://owaserver/x/_layouts/xlviewerinternal.aspx?edit=1&WOPISrc=http%3A%2F%2Fwopihost%3A5000%2Fwopi%2Ffiles%2Ftest.xlsx")] [InlineData("docx", "http://wopihost:5000/wopi/files/test.docx", WopiActionEnum.View, "http://owaserver/wv/wordviewerframe.aspx?&WOPISrc=http%3A%2F%2Fwopihost%3A5000%2Fwopi%2Ffiles%2Ftest.docx")] - public async void UrlWithoutAdditionalSettings(string extension, string wopiFileUrl, WopiActionEnum action, string expectedValue) + public async Task UrlWithoutAdditionalSettings(string extension, string wopiFileUrl, WopiActionEnum action, string expectedValue) { // Arrange var urlGenerator = new WopiUrlBuilder(_discoverer); @@ -34,7 +34,7 @@ public async void UrlWithoutAdditionalSettings(string extension, string wopiFile [Theory] [InlineData("xlsx", "http://wopihost:5000/wopi/files/test.xlsx", WopiActionEnum.Edit, "http://owaserver/x/_layouts/xlviewerinternal.aspx?edit=1&ui=en-US&WOPISrc=http%3A%2F%2Fwopihost%3A5000%2Fwopi%2Ffiles%2Ftest.xlsx")] [InlineData("docx", "http://wopihost:5000/wopi/files/test.docx", WopiActionEnum.View, "http://owaserver/wv/wordviewerframe.aspx?ui=en-US&WOPISrc=http%3A%2F%2Fwopihost%3A5000%2Fwopi%2Ffiles%2Ftest.docx")] - public async void UrlWithAdditionalSettings(string extension, string wopiFileUrl, WopiActionEnum action, string expectedValue) + public async Task UrlWithAdditionalSettings(string extension, string wopiFileUrl, WopiActionEnum action, string expectedValue) { // Arrange var settings = new WopiUrlSettings { UiLlcc = new CultureInfo("en-US") }; @@ -49,7 +49,7 @@ public async void UrlWithAdditionalSettings(string extension, string wopiFileUrl [Theory] [InlineData("html", "http://wopihost:5000/wopi/files/test.xlsx", WopiActionEnum.Edit, null)] - public async void NonExistentTemplate(string extension, string wopiFileUrl, WopiActionEnum action, string? expectedValue) + public async Task NonExistentTemplate(string extension, string wopiFileUrl, WopiActionEnum action, string? expectedValue) { // Arrange var urlGenerator = new WopiUrlBuilder(_discoverer);