Frontend gaps fill work. Testing fixes work. Auditing in progress.

This commit is contained in:
StellaOps Bot
2025-12-30 01:22:58 +02:00
parent 1dc4bcbf10
commit 7a5210e2aa
928 changed files with 183942 additions and 3941 deletions

View File

@@ -50,7 +50,7 @@ public sealed class CachePerformanceBenchmarkTests : IAsyncLifetime
SetupDatabaseMock();
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
var options = Options.Create(new ConcelierCacheOptions
{
@@ -75,10 +75,10 @@ public sealed class CachePerformanceBenchmarkTests : IAsyncLifetime
options,
NullLogger<ValkeyAdvisoryCacheService>.Instance);
await Task.CompletedTask;
await ValueTask.CompletedTask;
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await _connectionFactory.DisposeAsync();
}
@@ -726,3 +726,6 @@ public sealed class CachePerformanceBenchmarkTests : IAsyncLifetime
#endregion
}

View File

@@ -13,7 +13,7 @@
<ItemGroup>
<PackageReference Include="FluentAssertions" />
<PackageReference Include="Moq" />
<PackageReference Include="xunit" />
<PackageReference Include="xunit.v3" />
<PackageReference Include="xunit.runner.visualstudio" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
</ItemGroup>
@@ -23,3 +23,4 @@
</None>
</ItemGroup>
</Project>

View File

@@ -246,14 +246,17 @@ public sealed class CertCcConnectorFetchTests : IAsyncLifetime
return File.ReadAllText(Path.Combine(baseDirectory, filename));
}
public Task InitializeAsync()
public ValueTask InitializeAsync()
{
_handler.Clear();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await DisposeServiceProviderAsync();
}
}

View File

@@ -398,9 +398,9 @@ public sealed class CertCcConnectorSnapshotTests : IAsyncLifetime
return File.Exists(fallback);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_harness is not null)
{
@@ -408,3 +408,6 @@ public sealed class CertCcConnectorSnapshotTests : IAsyncLifetime
}
}
}

View File

@@ -267,9 +267,9 @@ public sealed class CertCcConnectorTests : IAsyncLifetime
pendingMappingsValue!.AsDocumentArray.Should().BeEmpty();
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await _fixture.TruncateAllTablesAsync();
}
@@ -472,3 +472,6 @@ public sealed class CertCcConnectorTests : IAsyncLifetime
return File.ReadAllText(fallback);
}
}

View File

@@ -333,9 +333,9 @@ public sealed class CertInConnectorTests : IAsyncLifetime
private static string NormalizeLineEndings(string value)
=> value.Replace("\r\n", "\n", StringComparison.Ordinal);
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_serviceProvider is IAsyncDisposable asyncDisposable)
{
@@ -347,3 +347,6 @@ public sealed class CertInConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -146,12 +146,12 @@ public sealed class SourceFetchServiceGuardTests : IAsyncLifetime
Assert.Equal(0, count);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync()
public ValueTask DisposeAsync()
{
_runner.Dispose();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
private static HttpResponseMessage CreateSuccessResponse(string payload)
@@ -256,3 +256,6 @@ public sealed class SourceFetchServiceGuardTests : IAsyncLifetime
public RawLinkset Map(AdvisoryRawDocument document) => new();
}
}

View File

@@ -206,11 +206,14 @@ public sealed class SourceStateSeedProcessorTests : IAsyncLifetime
_timeProvider,
NullLogger<SourceStateSeedProcessor>.Instance);
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await _client.DropDatabaseAsync(_database.DatabaseNamespace.DatabaseName);
_runner.Dispose();
}
}

View File

@@ -199,12 +199,12 @@ public sealed class CveConnectorTests : IAsyncLifetime
return File.ReadAllText(path);
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await Task.CompletedTask;
await ValueTask.CompletedTask;
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_harness is not null)
{
@@ -254,3 +254,6 @@ public sealed class CveConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -241,9 +241,9 @@ public sealed class DebianConnectorTests : IAsyncLifetime
throw new FileNotFoundException($"Fixture '{filename}' not found", filename);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
private sealed class TestOutputLoggerProvider : ILoggerProvider
{
@@ -277,3 +277,6 @@ public sealed class DebianConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -111,9 +111,9 @@ public sealed class RedHatConnectorHarnessTests : IAsyncLifetime
Assert.True(state.Cursor.TryGetValue("pendingMappings", out var pendingMappings) && pendingMappings.AsDocumentArray.Count == 0);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => _harness.ResetAsync();
public ValueTask DisposeAsync() => new(_harness.ResetAsync());
private static string ReadFixture(string filename)
{
@@ -121,3 +121,6 @@ public sealed class RedHatConnectorHarnessTests : IAsyncLifetime
return File.ReadAllText(path);
}
}

View File

@@ -641,10 +641,13 @@ public sealed class RedHatConnectorTests : IAsyncLifetime
return normalized.TrimEnd('\n');
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await ResetDatabaseInternalAsync();
}
}

View File

@@ -225,12 +225,12 @@ public sealed class GhsaConnectorTests : IAsyncLifetime
return File.ReadAllText(path);
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await Task.CompletedTask;
await ValueTask.CompletedTask;
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_harness is not null)
{
@@ -238,3 +238,6 @@ public sealed class GhsaConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -558,12 +558,12 @@ public sealed class GhsaResilienceTests : IAsyncLifetime
_harness = harness;
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await Task.CompletedTask;
await ValueTask.CompletedTask;
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_harness is not null)
{
@@ -573,3 +573,6 @@ public sealed class GhsaResilienceTests : IAsyncLifetime
#endregion
}

View File

@@ -486,12 +486,12 @@ public sealed class GhsaSecurityTests : IAsyncLifetime
_harness = harness;
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await Task.CompletedTask;
await ValueTask.CompletedTask;
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_harness is not null)
{
@@ -547,3 +547,6 @@ file static class ConnectorSecurityTestBase
return data;
}
}

View File

@@ -329,9 +329,9 @@ public sealed class KasperskyConnectorTests : IAsyncLifetime
private static string NormalizeLineEndings(string value)
=> value.Replace("\r\n", "\n", StringComparison.Ordinal);
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_serviceProvider is IAsyncDisposable asyncDisposable)
{
@@ -343,3 +343,6 @@ public sealed class KasperskyConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -254,9 +254,9 @@ public sealed class JvnConnectorTests : IAsyncLifetime
return Path.Combine(baseDirectory, "Jvn", "Fixtures", filename);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_serviceProvider is IAsyncDisposable asyncDisposable)
{
@@ -268,3 +268,6 @@ public sealed class JvnConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -206,10 +206,13 @@ public sealed class KevConnectorTests : IAsyncLifetime
return Path.Combine(primaryDir, filename);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await _fixture.TruncateAllTablesAsync(CancellationToken.None);
}
}

View File

@@ -498,7 +498,10 @@ public sealed class KisaConnectorTests : IAsyncLifetime
internal sealed record MetricMeasurement(string Name, long Value, IReadOnlyList<KeyValuePair<string, object?>> Tags);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}

View File

@@ -93,9 +93,9 @@ public sealed class NvdConnectorHarnessTests : IAsyncLifetime
Assert.Equal(3, pendingDocuments.Count);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => _harness.ResetAsync();
public ValueTask DisposeAsync() => new(_harness.ResetAsync());
private static Uri BuildRequestUri(NvdOptions options, DateTimeOffset start, DateTimeOffset end, int startIndex = 0)
{
@@ -134,3 +134,6 @@ public sealed class NvdConnectorHarnessTests : IAsyncLifetime
throw new FileNotFoundException($"Fixture '{filename}' was not found in the test output directory.");
}
}

View File

@@ -642,10 +642,13 @@ public sealed class NvdConnectorTests : IAsyncLifetime
throw new FileNotFoundException($"Fixture '{filename}' was not found in the test output directory.");
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await ResetDatabaseInternalAsync();
}
}

View File

@@ -83,9 +83,9 @@ public sealed class RuBduConnectorSnapshotTests : IAsyncLifetime
harness.Handler.AssertNoPendingResponses();
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
if (_harness is not null)
{
@@ -299,3 +299,6 @@ public sealed class RuBduConnectorSnapshotTests : IAsyncLifetime
: normalized;
}
}

View File

@@ -286,8 +286,11 @@ public sealed class RuNkckiConnectorTests : IAsyncLifetime
throw new InvalidOperationException("Unable to locate project root for Ru.Nkcki tests.");
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
=> await _fixture.TruncateAllTablesAsync();
}

View File

@@ -272,12 +272,12 @@ public sealed class StellaOpsMirrorConnectorTests : IAsyncLifetime
// AdvisoryStore integration validated elsewhere; ensure canonical serialization is stable.
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync()
public ValueTask DisposeAsync()
{
_handler.Clear();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
private async Task<ServiceProvider> BuildServiceProviderAsync(Action<StellaOpsMirrorConnectorOptions>? configureOptions = null)
@@ -467,3 +467,6 @@ public sealed class StellaOpsMirrorConnectorTests : IAsyncLifetime
return buffer;
}
}

View File

@@ -452,7 +452,10 @@ public sealed class AdobeConnectorFetchTests : IAsyncLifetime
private static string NormalizeLineEndings(string value)
=> value.Replace("\r\n", "\n", StringComparison.Ordinal);
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}

View File

@@ -175,9 +175,9 @@ public sealed class AppleConnectorTests : IAsyncLifetime
return package;
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
private async Task<ServiceProvider> BuildServiceProviderAsync(CannedHttpMessageHandler handler)
{
@@ -255,3 +255,6 @@ public sealed class AppleConnectorTests : IAsyncLifetime
return File.ReadAllText(path);
}
}

View File

@@ -337,9 +337,9 @@ public sealed class ChromiumConnectorTests : IAsyncLifetime
return Path.Combine(baseDirectory, "Chromium", "Fixtures", filename);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
foreach (var name in _allocatedDatabases.Distinct(StringComparer.Ordinal))
{
@@ -347,3 +347,6 @@ public sealed class ChromiumConnectorTests : IAsyncLifetime
}
}
}

View File

@@ -194,7 +194,10 @@ public sealed class MsrcConnectorTests : IAsyncLifetime
private static string ReadFixture(string fileName)
=> System.IO.File.ReadAllText(System.IO.Path.Combine(AppContext.BaseDirectory, "Fixtures", fileName));
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}

View File

@@ -347,7 +347,10 @@ public sealed class OracleConnectorTests : IAsyncLifetime
private static string Normalize(string value)
=> value.Replace("\r\n", "\n", StringComparison.Ordinal);
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
}

View File

@@ -157,12 +157,12 @@ public sealed class VmwareConnectorTests : IAsyncLifetime
Assert.Equal(new[] { 1, 1, 2 }, affectedCounts);
}
public Task InitializeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => ValueTask.CompletedTask;
public Task DisposeAsync()
public ValueTask DisposeAsync()
{
_handler.Clear();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
private async Task<ServiceProvider> BuildServiceProviderAsync()
@@ -277,3 +277,6 @@ public sealed class VmwareConnectorTests : IAsyncLifetime
public sealed record MetricMeasurement(string Name, long Value, IReadOnlyList<KeyValuePair<string, object?>> Tags);
}
}

View File

@@ -13,7 +13,6 @@ using StellaOps.Concelier.BackportProof.Repositories;
using StellaOps.Concelier.BackportProof.Services;
using StellaOps.TestKit;
using Xunit;
using Xunit.Abstractions;
namespace StellaOps.Concelier.Core.Tests.BackportProof;

View File

@@ -26,4 +26,5 @@
<ProjectReference Include="..\..\__Libraries\StellaOps.Concelier.Interest\StellaOps.Concelier.Interest.csproj" />
<ProjectReference Include="../../../__Libraries/StellaOps.TestKit/StellaOps.TestKit.csproj" />
</ItemGroup>
</Project>
</Project>

View File

@@ -67,7 +67,7 @@ public sealed class MergePrecedenceIntegrationTests : IAsyncLifetime
Assert.True(persisted.BeforeHash.Length > 0);
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
_timeProvider = new FakeTimeProvider(new DateTimeOffset(2025, 3, 1, 0, 0, 0, TimeSpan.Zero))
{
@@ -78,7 +78,7 @@ public sealed class MergePrecedenceIntegrationTests : IAsyncLifetime
_mergeEventWriter = new MergeEventWriter(_mergeEventStore, new CanonicalHashCalculator(), _timeProvider, NullLogger<MergeEventWriter>.Instance);
}
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
private async Task EnsureInitializedAsync()
{
@@ -199,3 +199,6 @@ public sealed class MergePrecedenceIntegrationTests : IAsyncLifetime
provenance: new[] { provenance });
}
}

View File

@@ -38,8 +38,8 @@ public sealed class AdvisoryCanonicalRepositoryTests : IAsyncLifetime
_sourceRepository = new SourceRepository(_dataSource, NullLogger<SourceRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
#region GetByIdAsync Tests
@@ -799,3 +799,6 @@ public sealed class AdvisoryCanonicalRepositoryTests : IAsyncLifetime
#endregion
}

View File

@@ -39,7 +39,7 @@ public sealed class AdvisoryIdempotencyTests : IAsyncLifetime
_fixture = fixture;
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await _fixture.TruncateAllTablesAsync();
@@ -50,7 +50,7 @@ public sealed class AdvisoryIdempotencyTests : IAsyncLifetime
_sourceStateRepository = new SourceStateRepository(_dataSource, NullLogger<SourceStateRepository>.Instance);
}
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Fact]
public async Task UpsertAsync_SameAdvisoryKey_Twice_NosDuplicates()
@@ -376,3 +376,6 @@ public sealed class AdvisoryIdempotencyTests : IAsyncLifetime
};
}
}

View File

@@ -35,8 +35,8 @@ public sealed class AdvisoryRepositoryTests : IAsyncLifetime
_cvssRepository = new AdvisoryCvssRepository(_dataSource, NullLogger<AdvisoryCvssRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Trait("Category", TestCategories.Unit)]
[Fact]
@@ -461,3 +461,6 @@ public sealed class AdvisoryRepositoryTests : IAsyncLifetime
};
}
}

View File

@@ -29,7 +29,7 @@ public sealed class ConcelierMigrationTests : IAsyncLifetime
{
private PostgreSqlContainer _container = null!;
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
_container = new PostgreSqlBuilder()
.WithImage("postgres:16-alpine")
@@ -41,7 +41,7 @@ public sealed class ConcelierMigrationTests : IAsyncLifetime
await _container.StartAsync();
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await _container.DisposeAsync();
}
@@ -327,3 +327,6 @@ public sealed class ConcelierMigrationTests : IAsyncLifetime
return reader.ReadToEnd();
}
}

View File

@@ -40,7 +40,7 @@ public sealed class ConcelierQueryDeterminismTests : IAsyncLifetime
_fixture = fixture;
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await _fixture.TruncateAllTablesAsync();
@@ -52,7 +52,7 @@ public sealed class ConcelierQueryDeterminismTests : IAsyncLifetime
_affectedRepository = new AdvisoryAffectedRepository(_dataSource, NullLogger<AdvisoryAffectedRepository>.Instance);
}
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Fact]
public async Task GetModifiedSinceAsync_MultipleQueries_ReturnsDeterministicOrder()
@@ -406,3 +406,6 @@ public sealed class ConcelierQueryDeterminismTests : IAsyncLifetime
};
}
}

View File

@@ -37,8 +37,8 @@ public sealed class InterestScoreRepositoryTests : IAsyncLifetime
_repository = new InterestScoreRepository(_dataSource, NullLogger<InterestScoreRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
#region GetByCanonicalIdAsync Tests
@@ -742,3 +742,6 @@ public sealed class InterestScoreRepositoryTests : IAsyncLifetime
#endregion
}

View File

@@ -70,7 +70,7 @@ public sealed class InterestScoringServiceIntegrationTests : IAsyncLifetime
};
}
public Task InitializeAsync()
public ValueTask InitializeAsync()
{
_service = new InterestScoringService(
_repository,
@@ -80,10 +80,10 @@ public sealed class InterestScoringServiceIntegrationTests : IAsyncLifetime
_cacheServiceMock.Object,
NullLogger<InterestScoringService>.Instance);
return _fixture.TruncateAllTablesAsync();
return new ValueTask(_fixture.TruncateAllTablesAsync());
}
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
#region ComputeScoreAsync Tests
@@ -686,3 +686,6 @@ public sealed class InterestScoringServiceIntegrationTests : IAsyncLifetime
#endregion
}

View File

@@ -30,8 +30,8 @@ public sealed class KevFlagRepositoryTests : IAsyncLifetime
_repository = new KevFlagRepository(_dataSource, NullLogger<KevFlagRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Trait("Category", TestCategories.Unit)]
[Fact]
@@ -281,3 +281,6 @@ public sealed class KevFlagRepositoryTests : IAsyncLifetime
return await _advisoryRepository.UpsertAsync(advisory);
}
}

View File

@@ -26,8 +26,8 @@ public sealed class AdvisoryLinksetCacheRepositoryTests : IAsyncLifetime
_repository = new AdvisoryLinksetCacheRepository(dataSource, NullLogger<AdvisoryLinksetCacheRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Fact]
public async Task Upsert_NormalizesTenantAndReplaces()
@@ -146,3 +146,6 @@ public sealed class AdvisoryLinksetCacheRepositoryTests : IAsyncLifetime
CreatedAt: createdAt,
BuiltByJobId: "job-1");
}

View File

@@ -32,8 +32,8 @@ public sealed class MergeEventRepositoryTests : IAsyncLifetime
_repository = new MergeEventRepository(_dataSource, NullLogger<MergeEventRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Trait("Category", TestCategories.Unit)]
[Fact]
@@ -297,3 +297,6 @@ public sealed class MergeEventRepositoryTests : IAsyncLifetime
return await _sourceRepository.UpsertAsync(source);
}
}

View File

@@ -37,8 +37,8 @@ public sealed class AdvisoryPerformanceTests : IAsyncLifetime
_repository = new AdvisoryRepository(_dataSource, NullLogger<AdvisoryRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
/// <summary>
/// Benchmark bulk advisory insertion performance.
@@ -410,3 +410,6 @@ public sealed class AdvisoryPerformanceTests : IAsyncLifetime
}
];
}

View File

@@ -39,8 +39,8 @@ public sealed class ProvenanceScopeRepositoryTests : IAsyncLifetime
_repository = new ProvenanceScopeRepository(_dataSource, NullLogger<ProvenanceScopeRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
#region Migration Validation
@@ -442,3 +442,6 @@ public sealed class ProvenanceScopeRepositoryTests : IAsyncLifetime
#endregion
}

View File

@@ -52,8 +52,8 @@ public sealed class RepositoryIntegrationTests : IAsyncLifetime
_mergeEvents = new MergeEventRepository(_dataSource, NullLogger<MergeEventRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Trait("Category", TestCategories.Unit)]
[Fact]
@@ -372,3 +372,6 @@ public sealed class RepositoryIntegrationTests : IAsyncLifetime
);
}
}

View File

@@ -28,8 +28,8 @@ public sealed class SourceRepositoryTests : IAsyncLifetime
_repository = new SourceRepository(_dataSource, NullLogger<SourceRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Trait("Category", TestCategories.Unit)]
[Fact]
@@ -209,3 +209,6 @@ public sealed class SourceRepositoryTests : IAsyncLifetime
};
}
}

View File

@@ -30,8 +30,8 @@ public sealed class SourceStateRepositoryTests : IAsyncLifetime
_repository = new SourceStateRepository(_dataSource, NullLogger<SourceStateRepository>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
[Trait("Category", TestCategories.Unit)]
[Fact]
@@ -198,3 +198,6 @@ public sealed class SourceStateRepositoryTests : IAsyncLifetime
return await _sourceRepository.UpsertAsync(source);
}
}

View File

@@ -42,8 +42,8 @@ public sealed class SyncLedgerRepositoryTests : IAsyncLifetime
_policyService = new SitePolicyEnforcementService(_repository, NullLogger<SitePolicyEnforcementService>.Instance);
}
public Task InitializeAsync() => _fixture.TruncateAllTablesAsync();
public Task DisposeAsync() => Task.CompletedTask;
public ValueTask InitializeAsync() => new(_fixture.TruncateAllTablesAsync());
public ValueTask DisposeAsync() => ValueTask.CompletedTask;
#region Task 3: Migration Validation
@@ -657,3 +657,6 @@ public sealed class SyncLedgerRepositoryTests : IAsyncLifetime
#endregion
}

View File

@@ -24,7 +24,7 @@ public sealed class PostgresTestFixture : IAsyncLifetime
.Build();
}
public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
// Start PostgreSQL container
await _container.StartAsync();
@@ -36,7 +36,7 @@ public sealed class PostgresTestFixture : IAsyncLifetime
await SeedTestDataAsync();
}
public async Task DisposeAsync()
public async ValueTask DisposeAsync()
{
await _container.DisposeAsync();
}
@@ -81,3 +81,6 @@ public sealed class PostgresTestFixture : IAsyncLifetime
await SeedTestDataAsync();
}
}

View File

@@ -30,7 +30,7 @@ public sealed class CanonicalAdvisoryEndpointTests : IAsyncLifetime
private const string TestArtifactKey = "pkg:npm/lodash@4.17.21";
private const string TestMergeHash = "sha256:abc123def456789";
public Task InitializeAsync()
public ValueTask InitializeAsync()
{
_factory = new WebApplicationFactory<Program>()
.WithWebHostBuilder(builder =>
@@ -52,14 +52,14 @@ public sealed class CanonicalAdvisoryEndpointTests : IAsyncLifetime
});
_client = _factory.CreateClient();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
public Task DisposeAsync()
public ValueTask DisposeAsync()
{
_client.Dispose();
_factory.Dispose();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
#region GET /api/v1/canonical/{id}
@@ -506,3 +506,6 @@ public sealed class CanonicalAdvisoryEndpointTests : IAsyncLifetime
#endregion
}

View File

@@ -70,17 +70,17 @@ public sealed class WebServiceEndpointsTests : IAsyncLifetime
_output = output;
}
public Task InitializeAsync()
public ValueTask InitializeAsync()
{
_factory = new ConcelierApplicationFactory(string.Empty);
WarmupFactory(_factory);
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
public Task DisposeAsync()
public ValueTask DisposeAsync()
{
_factory.Dispose();
return Task.CompletedTask;
return ValueTask.CompletedTask;
}
[Fact]
@@ -2929,3 +2929,6 @@ public sealed class WebServiceEndpointsTests : IAsyncLifetime
}
}