Clear manual activity descriptors

This commit is contained in:
Sipke Schoorstra 2026-05-31 12:45:03 +02:00
parent 6d1b7e3211
commit da4498398e
No known key found for this signature in database
GPG key ID: 5C10502B28A4268F
2 changed files with 24 additions and 3 deletions

View file

@ -265,6 +265,7 @@ public class ActivityRegistry(IActivityDescriber activityDescriber, IEnumerable<
/// <inheritdoc />
public void Clear()
{
_manualActivityDescriptors.Clear();
_tenantRegistries.Clear();
_agnosticRegistry.ActivityDescriptors.Clear();
_agnosticRegistry.LatestActivityDescriptors.Clear();

View file

@ -13,15 +13,16 @@ public class ActivityRegistryTests
private const string TestActivityType = "TestActivity";
private const string CurrentTenant = "tenant1";
private readonly IActivityDescriber _activityDescriber;
private readonly ILogger<ActivityRegistry> _logger;
private readonly ActivityRegistry _registry;
public ActivityRegistryTests()
{
var tenantAccessor = Substitute.For<ITenantAccessor>();
var activityDescriber = Substitute.For<IActivityDescriber>();
_activityDescriber = Substitute.For<IActivityDescriber>();
_logger = Substitute.For<ILogger<ActivityRegistry>>();
_registry = new(activityDescriber, [], tenantAccessor, _logger);
_registry = new(_activityDescriber, [], tenantAccessor, _logger);
// Set default tenant for all tests
tenantAccessor.TenantId.Returns(CurrentTenant);
@ -196,6 +197,25 @@ public class ActivityRegistryTests
Assert.Null(result);
}
[Fact]
public async Task GetDescriptorsAsync_ReturnsEmpty_WhenRegistryCleared()
{
// Arrange
_activityDescriber.DescribeActivityAsync(typeof(ActivityRegistryTests), Arg.Any<CancellationToken>())
.Returns(Task.FromResult(CreateDescriptor(TestActivityType, 1, CurrentTenant)));
await _registry.RegisterAsync(typeof(ActivityRegistryTests), CancellationToken.None);
// Act
_registry.Clear();
var descriptors = await _registry.GetDescriptorsAsync();
// Assert
Assert.Empty(descriptors);
Assert.Empty(_registry.ListAll());
Assert.Null(_registry.Find(TestActivityType));
}
[Fact]
public void Find_IgnoresOtherTenantDescriptors_OnlyReturnsCurrentTenantOrAgnostic()
{
@ -444,4 +464,4 @@ public class ActivityRegistryTests
public ValueTask<IEnumerable<ActivityDescriptor>> GetDescriptorsAsync(CancellationToken cancellationToken = default) => new(Descriptors);
}
}
}