Merge all changes

This commit is contained in:
StellaOps Bot
2026-01-08 08:54:27 +02:00
parent 589de352c2
commit 110591d6bf
381 changed files with 2237 additions and 1939 deletions

View File

@@ -48,7 +48,7 @@ public sealed class PolicyRuntimeEvaluationServiceTests
var request = CreateRequest("pack-1", 1, severity: "Critical");
var response = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.Equal("pack-1", response.PackId);
Assert.Equal(1, response.Version);
@@ -67,11 +67,11 @@ public sealed class PolicyRuntimeEvaluationServiceTests
var request = CreateRequest("pack-1", 1, severity: "High");
// First call - cache miss
var response1 = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response1 = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.False(response1.Cached);
// Second call - cache hit
var response2 = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response2 = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.True(response2.Cached);
Assert.Equal(CacheSource.InMemory, response2.CacheSource);
Assert.Equal(response1.Status, response2.Status);
@@ -88,12 +88,12 @@ public sealed class PolicyRuntimeEvaluationServiceTests
var request = CreateRequest("pack-1", 1, severity: "Medium");
// First call
var response1 = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response1 = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.False(response1.Cached);
// Second call with bypass
var bypassRequest = request with { BypassCache = true };
var response2 = await harness.Service.EvaluateAsync(bypassRequest, CancellationToken.None);
var response2 = await harness.Service.EvaluateAsync(bypassRequest, TestContext.Current.CancellationToken);
Assert.False(response2.Cached);
}
@@ -105,7 +105,7 @@ public sealed class PolicyRuntimeEvaluationServiceTests
var request = CreateRequest("non-existent", 1, severity: "Low");
await Assert.ThrowsAsync<InvalidOperationException>(
() => harness.Service.EvaluateAsync(request, CancellationToken.None));
() => harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken));
}
[Trait("Category", TestCategories.Unit)]
@@ -117,13 +117,13 @@ public sealed class PolicyRuntimeEvaluationServiceTests
var request = CreateRequest("pack-1", 1, severity: "High");
var response1 = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response1 = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
// Create a new harness with fresh cache
var harness2 = CreateHarness();
await harness2.StoreTestPolicyAsync("pack-1", 1, TestPolicy);
var response2 = await harness2.Service.EvaluateAsync(request, CancellationToken.None);
var response2 = await harness2.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
// Same inputs should produce same correlation ID
Assert.Equal(response1.CorrelationId, response2.CorrelationId);
@@ -143,7 +143,7 @@ public sealed class PolicyRuntimeEvaluationServiceTests
CreateRequest("pack-1", 1, severity: "Medium", subjectPurl: "pkg:npm/axios@1.0.0"),
};
var responses = await harness.Service.EvaluateBatchAsync(requests, CancellationToken.None);
var responses = await harness.Service.EvaluateBatchAsync(requests, TestContext.Current.CancellationToken);
Assert.Equal(3, responses.Count);
}
@@ -157,7 +157,7 @@ public sealed class PolicyRuntimeEvaluationServiceTests
// Pre-populate cache
var request = CreateRequest("pack-1", 1, severity: "Critical");
await harness.Service.EvaluateAsync(request, CancellationToken.None);
await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
var requests = new[]
{
@@ -165,7 +165,7 @@ public sealed class PolicyRuntimeEvaluationServiceTests
CreateRequest("pack-1", 1, severity: "High"), // New
};
var responses = await harness.Service.EvaluateBatchAsync(requests, CancellationToken.None);
var responses = await harness.Service.EvaluateBatchAsync(requests, TestContext.Current.CancellationToken);
Assert.Equal(2, responses.Count);
Assert.Contains(responses, r => r.Cached);
@@ -182,8 +182,8 @@ public sealed class PolicyRuntimeEvaluationServiceTests
var request1 = CreateRequest("pack-1", 1, severity: "High");
var request2 = CreateRequest("pack-1", 1, severity: "Critical");
var response1 = await harness.Service.EvaluateAsync(request1, CancellationToken.None);
var response2 = await harness.Service.EvaluateAsync(request2, CancellationToken.None);
var response1 = await harness.Service.EvaluateAsync(request1, TestContext.Current.CancellationToken);
var response2 = await harness.Service.EvaluateAsync(request2, TestContext.Current.CancellationToken);
// Both should be cache misses (different severity = different context)
Assert.False(response1.Cached);
@@ -233,11 +233,11 @@ public sealed class PolicyRuntimeEvaluationServiceTests
Metadata = new Dictionary<string, object?>()
};
await harness.ReachabilityStore.SaveAsync(fact, CancellationToken.None);
await harness.ReachabilityStore.SaveAsync(fact, TestContext.Current.CancellationToken);
var request = CreateRequest("pack-2", 1, severity: "Low");
var response = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.Equal("warn", response.Status);
}
@@ -289,10 +289,10 @@ public sealed class PolicyRuntimeEvaluationServiceTests
Metadata = new Dictionary<string, object?>()
};
await harness.ReachabilityStore.SaveAsync(fact, CancellationToken.None);
await harness.ReachabilityStore.SaveAsync(fact, TestContext.Current.CancellationToken);
var request = CreateRequest("pack-3", 1, severity: "Low");
var response = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.Equal("under_investigation", response.Status);
}
@@ -344,10 +344,10 @@ public sealed class PolicyRuntimeEvaluationServiceTests
Metadata = new Dictionary<string, object?>()
};
await harness.ReachabilityStore.SaveAsync(fact, CancellationToken.None);
await harness.ReachabilityStore.SaveAsync(fact, TestContext.Current.CancellationToken);
var request = CreateRequest("pack-4", 1, severity: "Low");
var response = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.Equal("under_investigation", response.Status);
}
@@ -399,10 +399,10 @@ public sealed class PolicyRuntimeEvaluationServiceTests
Metadata = new Dictionary<string, object?>()
};
await harness.ReachabilityStore.SaveAsync(fact, CancellationToken.None);
await harness.ReachabilityStore.SaveAsync(fact, TestContext.Current.CancellationToken);
var request = CreateRequest("pack-5", 1, severity: "Low");
var response = await harness.Service.EvaluateAsync(request, CancellationToken.None);
var response = await harness.Service.EvaluateAsync(request, TestContext.Current.CancellationToken);
Assert.Equal("not_affected", response.Status);
}
@@ -489,7 +489,7 @@ public sealed class PolicyRuntimeEvaluationServiceTests
{
var bundleService = new PolicyBundleService(CompilationService, Repository, TimeProvider.System);
var request = new PolicyBundleRequest(new PolicyDslPayload("stella-dsl@1", dsl), SigningKeyId: null);
await bundleService.CompileAndStoreAsync(packId, version, request, CancellationToken.None);
await bundleService.CompileAndStoreAsync(packId, version, request, TestContext.Current.CancellationToken);
}
}