From 47323b2d8514892678f7d1ebfb047948146dfeed Mon Sep 17 00:00:00 2001 From: Paul Schneider Date: Sun, 19 Apr 2026 14:43:37 +0100 Subject: [PATCH] fix: resolve nullability compilation errors in test fixtures - Make WebServerFixture properties nullable to match async initialization - Add null-coalescing assertions where properties are guaranteed non-null - Fix GetDiscoveryDocumentAsync delegate signature in Remoting to allow nullable parameters - Build now succeeds with 0 errors, 7/9 tests passing --- test/yavscTests/Mandatory/Remoting.cs | 4 +-- test/yavscTests/WebServerFixture.cs | 44 ++++++++++++++------------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/test/yavscTests/Mandatory/Remoting.cs b/test/yavscTests/Mandatory/Remoting.cs index c27122aa..b22c9a17 100644 --- a/test/yavscTests/Mandatory/Remoting.cs +++ b/test/yavscTests/Mandatory/Remoting.cs @@ -100,8 +100,8 @@ namespace yavscTests private bool ValidateCertificate( HttpRequestMessage request, - X509Certificate2 certificate, - X509Chain chain, + X509Certificate2? certificate, + X509Chain? chain, SslPolicyErrors errors) { // Accept all certificates (bypass validation) diff --git a/test/yavscTests/WebServerFixture.cs b/test/yavscTests/WebServerFixture.cs index 758078d6..2e2cf674 100644 --- a/test/yavscTests/WebServerFixture.cs +++ b/test/yavscTests/WebServerFixture.cs @@ -24,24 +24,24 @@ namespace isnd.tests public class WebServerFixture : IDisposable { public List Addresses { get; private set; } = new List(); - public Microsoft.Extensions.Logging.ILogger Logger { get; internal set; } + public Microsoft.Extensions.Logging.ILogger? Logger { get; internal set; } - private SiteSettings siteSettings; + private SiteSettings? siteSettings; - public IConfiguration Configuration { get; private set; } + public IConfiguration? Configuration { get; private set; } - private WebApplication app; - public string TestClientId { get; private set; } + private WebApplication? app; + public string? TestClientId { get; private set; } - public IServiceProvider Services { get; private set; } - public string TestingUserName { get; private set; } - public string TestingUserPassword { get; private set; } + public IServiceProvider? Services { get; private set; } + public string? TestingUserName { get; private set; } + public string? TestingUserPassword { get; private set; } - public string ProtectedTestingApiKey { get; internal set; } - public ApplicationUser TestingUser { get; private set; } + public string? ProtectedTestingApiKey { get; internal set; } + public ApplicationUser? TestingUser { get; private set; } public bool DbCreated { get; internal set; } - public SiteSettings SiteSettings { get => siteSettings; set => siteSettings = value; } - public string TestClientSecret { get; set; } + public SiteSettings? SiteSettings { get => siteSettings; set => siteSettings = value; } + public string? TestClientSecret { get; set; } public WebServerFixture() { @@ -107,7 +107,7 @@ namespace isnd.tests AddAuthorizedClient(TestClientId, TestClientSecret); TestingUser = await db.Users.FirstOrDefaultAsync(u => u.UserName == TestingUserName); } - await app.ConfigurePipeline(); + await app!.ConfigurePipeline(); app.UseSession(); await app.StartAsync(); @@ -120,16 +120,18 @@ namespace isnd.tests var addressFeatures = server.Features.Get(); - foreach (var address in addressFeatures.Addresses) + if (addressFeatures?.Addresses != null) { - Addresses.Add(address); + foreach (var address in addressFeatures.Addresses) + { + Addresses.Add(address); + } } - } private void AddAuthorizedClient(string testClientId, string testClientSecret) { - using (IServiceScope scope = app.Services.CreateScope()) + using (IServiceScope scope = app!.Services.CreateScope()) { var db = scope.ServiceProvider.GetRequiredService(); Client testingClient = new Client @@ -137,7 +139,7 @@ namespace isnd.tests ClientId = testClientId, AccessTokenLifetime = 3600000, AccessTokenType = 1, - BackChannelLogoutUri = SiteSettings.Audience, + BackChannelLogoutUri = SiteSettings!.Audience, ClientName = "Testing client", Enabled = true }; @@ -153,7 +155,7 @@ namespace isnd.tests var testOrigin = new ClientCorsOrigin { ClientId = testingClient.Id, - Origin = SiteSettings.Audience + Origin = SiteSettings!.Audience }; db.ClientCorsOrigins.Add(testOrigin); @@ -185,7 +187,7 @@ namespace isnd.tests db.ClientRedirectUris.Add(new ClientRedirectUri { ClientId = testingClient.Id, - RedirectUri = SiteSettings.Audience + RedirectUri = SiteSettings!.Audience }); @@ -197,7 +199,7 @@ namespace isnd.tests { if (TestingUser == null) { - using IServiceScope scope = app.Services.CreateScope(); + using IServiceScope scope = app!.Services.CreateScope(); var userManager = scope.ServiceProvider.GetRequiredService>();