up
Some checks failed
Concelier Attestation Tests / attestation-tests (push) Has been cancelled
Policy Simulation / policy-simulate (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Signals CI & Image / signals-ci (push) Has been cancelled
Signals Reachability Scoring & Events / reachability-smoke (push) Has been cancelled
Signals Reachability Scoring & Events / sign-and-upload (push) Has been cancelled
Docs CI / lint-and-preview (push) Has been cancelled
Policy Lint & Smoke / policy-lint (push) Has been cancelled
Scanner Analyzers / Discover Analyzers (push) Has been cancelled
Scanner Analyzers / Build Analyzers (push) Has been cancelled
Scanner Analyzers / Test Language Analyzers (push) Has been cancelled
Scanner Analyzers / Validate Test Fixtures (push) Has been cancelled
Scanner Analyzers / Verify Deterministic Output (push) Has been cancelled

This commit is contained in:
StellaOps Bot
2025-12-13 09:37:15 +02:00
parent e00f6365da
commit 6e45066e37
349 changed files with 17160 additions and 1867 deletions

View File

@@ -41,7 +41,7 @@ public sealed class TenantContextTests
public void TenantContext_ForTenant_ThrowsOnNullTenantId()
{
// Act & Assert
Assert.Throws<ArgumentException>(() => TenantContext.ForTenant(null!));
Assert.Throws<ArgumentNullException>(() => TenantContext.ForTenant(null!));
}
[Fact]
@@ -156,9 +156,15 @@ public sealed class TenantContextMiddlewareTests
public async Task Middleware_WithValidTenantHeader_SetsTenantContext()
{
// Arrange
TenantContext? capturedContext = null;
var nextCalled = false;
var middleware = new TenantContextMiddleware(
_ => { nextCalled = true; return Task.CompletedTask; },
_ =>
{
nextCalled = true;
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -169,16 +175,22 @@ public sealed class TenantContextMiddlewareTests
// Assert
Assert.True(nextCalled);
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal("tenant-123", _tenantAccessor.TenantContext.TenantId);
Assert.NotNull(capturedContext);
Assert.Equal("tenant-123", capturedContext!.TenantId);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
public async Task Middleware_WithTenantAndProjectHeaders_SetsBothInContext()
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -188,9 +200,10 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal("tenant-123", _tenantAccessor.TenantContext.TenantId);
Assert.Equal("project-456", _tenantAccessor.TenantContext.ProjectId);
Assert.NotNull(capturedContext);
Assert.Equal("tenant-123", capturedContext!.TenantId);
Assert.Equal("project-456", capturedContext.ProjectId);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
@@ -218,6 +231,7 @@ public sealed class TenantContextMiddlewareTests
public async Task Middleware_MissingTenantHeaderNotRequired_UsesDefaultTenant()
{
// Arrange
TenantContext? capturedContext = null;
var optionsNotRequired = new TenantContextOptions
{
Enabled = true,
@@ -225,7 +239,11 @@ public sealed class TenantContextMiddlewareTests
};
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(optionsNotRequired),
_logger);
@@ -235,8 +253,9 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal(TenantContextConstants.DefaultTenantId, _tenantAccessor.TenantContext.TenantId);
Assert.NotNull(capturedContext);
Assert.Equal(TenantContextConstants.DefaultTenantId, capturedContext!.TenantId);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
@@ -286,8 +305,13 @@ public sealed class TenantContextMiddlewareTests
public async Task Middleware_ValidTenantIdFormat_Passes(string tenantId)
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -297,8 +321,9 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal(tenantId, _tenantAccessor.TenantContext.TenantId);
Assert.NotNull(capturedContext);
Assert.Equal(tenantId, capturedContext!.TenantId);
Assert.Null(_tenantAccessor.TenantContext);
}
[Theory]
@@ -351,8 +376,13 @@ public sealed class TenantContextMiddlewareTests
public async Task Middleware_ValidProjectIdFormat_Passes(string projectId)
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -362,16 +392,22 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal(projectId, _tenantAccessor.TenantContext.ProjectId);
Assert.NotNull(capturedContext);
Assert.Equal(projectId, capturedContext!.ProjectId);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
public async Task Middleware_WithWriteScope_SetsCanWriteTrue()
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -387,16 +423,22 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.True(_tenantAccessor.TenantContext.CanWrite);
Assert.NotNull(capturedContext);
Assert.True(capturedContext!.CanWrite);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
public async Task Middleware_WithoutWriteScope_SetsCanWriteFalse()
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -412,16 +454,22 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.False(_tenantAccessor.TenantContext.CanWrite);
Assert.NotNull(capturedContext);
Assert.False(capturedContext!.CanWrite);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
public async Task Middleware_ExtractsActorIdFromSubClaim()
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -433,16 +481,22 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal("user-id-123", _tenantAccessor.TenantContext.ActorId);
Assert.NotNull(capturedContext);
Assert.Equal("user-id-123", capturedContext!.ActorId);
Assert.Null(_tenantAccessor.TenantContext);
}
[Fact]
public async Task Middleware_ExtractsActorIdFromHeader()
{
// Arrange
TenantContext? capturedContext = null;
var middleware = new TenantContextMiddleware(
_ => Task.CompletedTask,
_ =>
{
capturedContext = _tenantAccessor.TenantContext;
return Task.CompletedTask;
},
MsOptions.Options.Create(_options),
_logger);
@@ -453,8 +507,9 @@ public sealed class TenantContextMiddlewareTests
await middleware.InvokeAsync(context, _tenantAccessor);
// Assert
Assert.NotNull(_tenantAccessor.TenantContext);
Assert.Equal("service-account-123", _tenantAccessor.TenantContext.ActorId);
Assert.NotNull(capturedContext);
Assert.Equal("service-account-123", capturedContext!.ActorId);
Assert.Null(_tenantAccessor.TenantContext);
}
private static DefaultHttpContext CreateHttpContext(