This commit is contained in:
StellaOps Bot
2025-12-26 21:43:56 +02:00
354 changed files with 354 additions and 0 deletions

View File

@@ -25,6 +25,7 @@ public class SmRemoteHttpProviderTests
using var app = new WebApplicationFactory<Program>()
.WithWebHostBuilder(_ => { });
using StellaOps.TestKit;
var client = app.CreateClient();
var status = await client.GetFromJsonAsync<SmStatusResponse>("/status");
status.Should().NotBeNull();

View File

@@ -43,6 +43,7 @@ public class PolicyProvidersTests
var provider = new EidasSoftCryptoProvider();
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP384);
using StellaOps.TestKit;
var key = new CryptoSigningKey(
new CryptoKeyReference("eidas-es384"),
SignatureAlgorithms.Es384,

View File

@@ -51,6 +51,7 @@ public class SimRemoteProviderTests
services.AddSingleton<SimRemoteProvider>();
using var providerScope = services.BuildServiceProvider();
using StellaOps.TestKit;
var provider = providerScope.GetRequiredService<SimRemoteProvider>();
var signer = provider.GetSigner("pq.sim", new CryptoKeyReference("sim-key"));
var payload = Encoding.UTF8.GetBytes("hello-sim");

View File

@@ -337,6 +337,7 @@ public class AirGapTrustStoreIntegrationTests : IDisposable
private static string GenerateEcdsaPublicKeyPem()
{
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256);
using StellaOps.TestKit;
return ecdsa.ExportSubjectPublicKeyInfoPem();
}
}

View File

@@ -513,6 +513,7 @@ public class AuditReplayE2ETests : IDisposable
private static async Task<string> ComputeFileHashAsync(string filePath)
{
await using var stream = File.OpenRead(filePath);
using StellaOps.TestKit;
var hash = await SHA256.HashDataAsync(stream);
return Convert.ToHexString(hash).ToLowerInvariant();
}

View File

@@ -161,6 +161,7 @@ public sealed class CloudKmsClientTests
public async Task Fido2Client_Signs_Verifies_And_Exports()
{
using var fixture = new EcdsaFixture();
using StellaOps.TestKit;
var authenticator = new TestFidoAuthenticator(fixture);
var options = new Fido2Options
{

View File

@@ -75,6 +75,7 @@ public sealed class FileKmsClientTests : IDisposable
public async Task ExportAsync_ReturnsKeyMaterial()
{
using var client = CreateClient();
using StellaOps.TestKit;
var keyId = "kms-export";
await client.RotateAsync(keyId);

View File

@@ -22,6 +22,7 @@ public sealed class BouncyCastleEd25519CryptoProviderTests
services.AddBouncyCastleEd25519Provider();
using var provider = services.BuildServiceProvider();
using StellaOps.TestKit;
var registry = provider.GetRequiredService<ICryptoProviderRegistry>();
var bcProvider = provider.GetServices<ICryptoProvider>()
.OfType<BouncyCastleEd25519CryptoProvider>()

View File

@@ -31,6 +31,7 @@ public class CryptoProGostSignerTests
var request = new CertificateRequest("CN=stellaops.test", ecdsa, HashAlgorithmName.SHA256);
using var cert = request.CreateSelfSigned(DateTimeOffset.UtcNow.AddDays(-1), DateTimeOffset.UtcNow.AddDays(1));
using StellaOps.TestKit;
var entry = new CryptoProGostKeyEntry(
"test-key",
SignatureAlgorithms.GostR3410_2012_256,

View File

@@ -84,6 +84,7 @@ public sealed class DefaultCryptoHashTests
var hash = CryptoHashFactory.CreateDefault();
var expected = Convert.ToHexStringLower(SHA256.HashData(Sample));
await using var stream = new MemoryStream(Sample);
using StellaOps.TestKit;
var actual = await hash.ComputeHashHexAsync(stream, HashAlgorithms.Sha256);
Assert.Equal(expected, actual);
}

View File

@@ -32,6 +32,7 @@ public sealed class DefaultCryptoHmacTests
var hmac = DefaultCryptoHmac.CreateForTests();
var expected = Convert.ToHexStringLower(HMACSHA256.HashData(Key, Sample));
await using var stream = new MemoryStream(Sample);
using StellaOps.TestKit;
var actual = await hmac.ComputeHmacHexForPurposeAsync(Key, stream, HmacPurpose.WebhookInterop);
Assert.Equal(expected, actual);
}

View File

@@ -61,6 +61,7 @@ public class DefaultCryptoProviderSigningTests
{
var provider = new DefaultCryptoProvider();
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256);
using StellaOps.TestKit;
var parameters = ecdsa.ExportParameters(true);
var signingKey = new CryptoSigningKey(new CryptoKeyReference("key-to-remove"), SignatureAlgorithms.Es256, in parameters, DateTimeOffset.UtcNow);

View File

@@ -17,6 +17,7 @@ public class LibsodiumCryptoProviderTests
{
var provider = new LibsodiumCryptoProvider();
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256);
using StellaOps.TestKit;
var parameters = ecdsa.ExportParameters(includePrivateParameters: true);
var signingKey = new CryptoSigningKey(

View File

@@ -23,6 +23,7 @@ public class Pkcs11GostProviderTests
}
using var ecdsa = ECDsa.Create(ECCurve.NamedCurves.nistP256);
using StellaOps.TestKit;
var req = new CertificateRequest("CN=pkcs11.test", ecdsa, HashAlgorithmName.SHA256);
var cert = req.CreateSelfSigned(DateTimeOffset.UtcNow.AddDays(-1), DateTimeOffset.UtcNow.AddDays(1));

View File

@@ -99,6 +99,7 @@ public sealed class PostgresFixtureTests : IAsyncLifetime
await using var cmd = new Npgsql.NpgsqlCommand(
"SELECT EXISTS(SELECT 1 FROM information_schema.schemata WHERE schema_name = @name)",
conn);
using StellaOps.TestKit;
cmd.Parameters.AddWithValue("name", schemaName);
var exists = await cmd.ExecuteScalarAsync();
exists.Should().Be(false);

View File

@@ -273,6 +273,7 @@ public sealed class MinimalApiBindingIntegrationTests : IAsyncLifetime
app.MapPatch("/items/{itemId}", async ([FromRoute] string itemId, HttpContext context) =>
{
using var reader = new StreamReader(context.Request.Body);
using StellaOps.TestKit;
var bodyText = await reader.ReadToEndAsync();
var options = new JsonSerializerOptions { PropertyNameCaseInsensitive = true };
var request = JsonSerializer.Deserialize<PatchItemRequestDto>(bodyText, options);

View File

@@ -116,6 +116,7 @@ public sealed class StellaRouterBridgeIntegrationTests : IAsyncLifetime
app.MapPut("/api/items/{id}", async (string id, HttpContext context) =>
{
using var reader = new StreamReader(context.Request.Body);
using StellaOps.TestKit;
var body = await reader.ReadToEndAsync();
var data = JsonSerializer.Deserialize<JsonElement>(body);
var name = data.GetProperty("name").GetString();

View File

@@ -305,6 +305,7 @@ public sealed class InflightRequestTrackerTests : IDisposable
// Arrange - use a fresh tracker
using var tracker = new InflightRequestTracker(NullLogger<InflightRequestTracker>.Instance);
using StellaOps.TestKit;
// Assert
tracker.Count.Should().Be(0);
}

View File

@@ -232,6 +232,7 @@ public sealed class RawRequestContextTests
{
// Arrange
using var cts = new CancellationTokenSource();
using StellaOps.TestKit;
cts.Cancel();
// Act

View File

@@ -332,6 +332,7 @@ public sealed class RawResponseTests
// Assert
using var reader = new StreamReader(response.Body, Encoding.UTF8);
using StellaOps.TestKit;
reader.ReadToEnd().Should().Be(message);
}

View File

@@ -300,6 +300,7 @@ public sealed class RouterConnectionManagerTests : IDisposable
TransportType = TransportType.InMemory
});
using var manager = CreateManager();
using StellaOps.TestKit;
manager.CurrentStatus = InstanceHealthStatus.Degraded;
manager.InFlightRequestCount = 10;
manager.ErrorRate = 0.05;

View File

@@ -259,6 +259,7 @@ public sealed class EvidenceChunkerTests
var evidence = new byte[200];
Random.Shared.NextBytes(evidence);
using var stream = new MemoryStream(evidence);
using StellaOps.TestKit;
const string contentType = "application/octet-stream";
// Act

View File

@@ -223,6 +223,7 @@ public sealed class MinimalProofExporterTests
var options = new MinimalProofExportOptions { Density = ProofDensity.Lite };
using var stream = new MemoryStream();
using StellaOps.TestKit;
// Act
await _exporter.ExportToStreamAsync(_testEntry.VeriKey, options, stream);

View File

@@ -139,6 +139,7 @@ public class WriteBehindQueueTests
// Act - Start the queue and let it process
using var cts = new CancellationTokenSource();
using StellaOps.TestKit;
var task = queue.StartAsync(cts.Token);
// Wait for processing

View File

@@ -354,6 +354,7 @@ public sealed class MessageOrderingTests : IAsyncLifetime, IDisposable
for (int run = 0; run < 3; run++)
{
using var channel = new InMemoryChannel($"determinism-{run}", bufferSize: 100);
using StellaOps.TestKit;
var received = new List<int>();
// Same sequence each run

View File

@@ -147,6 +147,7 @@ public sealed class ServiceRegistrationIntegrationTests
using var scope1 = _fixture.Services.CreateScope();
using var scope2 = _fixture.Services.CreateScope();
using StellaOps.TestKit;
var echo1 = scope1.ServiceProvider.GetService<EchoEndpoint>();
var echo2 = scope2.ServiceProvider.GetService<EchoEndpoint>();

View File

@@ -424,6 +424,7 @@ public sealed class BackpressureTests
// Arrange
using var channel = new InMemoryChannel("bp-precancelled");
using var cts = new CancellationTokenSource();
using StellaOps.TestKit;
await cts.CancelAsync();
// Act & Assert

View File

@@ -290,6 +290,7 @@ public sealed class InMemoryChannelTests
// Arrange
using var channel = new InMemoryChannel("conn-123");
using StellaOps.TestKit;
// Start reader task
var readerTask = Task.Run(async () =>
{

View File

@@ -614,6 +614,7 @@ public sealed class InMemoryTransportComplianceTests
// Arrange
using var channel = new InMemoryChannel($"conn-det-{run}");
using StellaOps.TestKit;
var request = new RequestFrame
{
RequestId = "deterministic-req",

View File

@@ -587,6 +587,7 @@ public sealed class InMemoryConnectionFailureTests
public async Task InMemoryChannel_CompletedWithError_PropagatesError()
{
using var channel = new InMemoryChannel("error-complete");
using StellaOps.TestKit;
var expectedException = new InvalidOperationException("Simulated failure");
// Complete with error

View File

@@ -515,6 +515,7 @@ public sealed class FrameFuzzTests
{
// Arrange - Payload with null bytes
using var stream = new MemoryStream();
using StellaOps.TestKit;
var payloadWithNulls = new byte[] { 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00 };
var frame = new Frame

View File

@@ -534,6 +534,7 @@ public sealed class TcpTransportComplianceTests
// Arrange
using var stream = new MemoryStream();
using var cts = new CancellationTokenSource();
using StellaOps.TestKit;
await cts.CancelAsync();
var frame = new Frame

View File

@@ -777,6 +777,7 @@ public class TcpTransportClientTests
// Arrange
await using var client = CreateClient();
using StellaOps.TestKit;
// Act
var action = () => client.CancelAllInflight("test shutdown");

View File

@@ -474,6 +474,7 @@ public sealed class TlsTransportComplianceTests
private static X509Certificate2 CreateTestCertificate(string subject)
{
using var rsa = RSA.Create(2048);
using StellaOps.TestKit;
var request = new CertificateRequest(
$"CN={subject}",
rsa,

View File

@@ -689,6 +689,7 @@ public class TlsIntegrationTests
private static X509Certificate2 CreateSelfSignedServerCertificate(string hostname)
{
using var rsa = RSA.Create(2048);
using StellaOps.TestKit;
var request = new CertificateRequest(
$"CN={hostname}",
rsa,

View File

@@ -219,6 +219,7 @@ public sealed class UdpTransportClientTests
});
await using var client = new UdpTransportClient(options, NullLogger<UdpTransportClient>.Instance);
using StellaOps.TestKit;
Guid? receivedCorrelationId = null;
// Act

View File

@@ -268,6 +268,7 @@ public sealed class UdpTransportServerTests
var options = Options.Create(new UdpTransportOptions { Port = 0 });
await using var server = new UdpTransportServer(options, NullLogger<UdpTransportServer>.Instance);
using StellaOps.TestKit;
Frame? receivedFrame = null;
server.OnFrame += (id, frame) => receivedFrame = frame;

View File

@@ -135,6 +135,7 @@ public class CallgraphIngestionTests : IClassFixture<SignalsTestFactory>
Assert.Equal(HttpStatusCode.Accepted, secondResponse.StatusCode);
using var scope = factory.Services.CreateScope();
using StellaOps.TestKit;
var repo = scope.ServiceProvider.GetRequiredService<ICallgraphRepository>();
var doc = await repo.GetByIdAsync((await secondResponse.Content.ReadFromJsonAsync<CallgraphIngestResponse>())!.CallgraphId, CancellationToken.None);

View File

@@ -24,6 +24,7 @@ public class SignalsApiTests : IClassFixture<SignalsTestFactory>
public async Task Callgraph_Ingest_Response_Includes_Extended_Fields()
{
using var client = factory.CreateClient();
using StellaOps.TestKit;
client.DefaultRequestHeaders.Add("X-Scopes", "signals:write signals:read");
var req = CallgraphIngestionTests.CreateRequest("java", component: "api-test", version: "1.2.3");

View File

@@ -50,6 +50,7 @@ public class SyntheticRuntimeProbeTests : IClassFixture<SignalsTestFactory>
Assert.Equal(HttpStatusCode.OK, factRes.StatusCode);
var factJson = await factRes.Content.ReadAsStringAsync();
using var doc = JsonDocument.Parse(factJson);
using StellaOps.TestKit;
Assert.True(doc.RootElement.TryGetProperty("states", out var states));
Assert.True(states.GetArrayLength() > 0);
Assert.True(doc.RootElement.TryGetProperty("runtimeFacts", out var runtimeFacts));