Add workflow definition cache manager to test setup

The IWorkflowDefinitionCacheManager has been added to the test class. This ensures proper cache management during workflow definition reload tests. Additionally, a cleanup step to delete the workflow definition and its versions has been included.
This commit is contained in:
Sipke Schoorstra 2024-11-08 21:39:01 +01:00
parent e46fa84647
commit e5e7211504

View file

@ -22,6 +22,7 @@ public class ReloadWorkflowTests : AppComponentTest
private readonly TestWorkflowProvider _testWorkflowProvider;
private readonly IWorkflowDefinitionService _workflowDefinitionService;
private readonly IActivityRegistry _activityRegistry;
private readonly IWorkflowDefinitionCacheManager _workflowDefinitionCacheManager;
public ReloadWorkflowTests(App app) : base(app)
{
@ -32,6 +33,7 @@ public class ReloadWorkflowTests : AppComponentTest
_activityRegistry = Scope.ServiceProvider.GetRequiredService<IActivityRegistry>();
var workflowProviders = Scope.ServiceProvider.GetRequiredService<IEnumerable<IWorkflowProvider>>();
_testWorkflowProvider = (TestWorkflowProvider)workflowProviders.First(x => x is TestWorkflowProvider);
_workflowDefinitionCacheManager = Scope.ServiceProvider.GetRequiredService<IWorkflowDefinitionCacheManager>();
}
[Fact]
@ -40,7 +42,7 @@ public class ReloadWorkflowTests : AppComponentTest
var client = WorkflowServer.CreateHttpWorkflowClient();
await _workflowDefinitionManager.DeleteByDefinitionIdAsync("f68b09bc-2013-4617-b82f-d76b6819a624", CancellationToken.None);
var firstResponse = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "reload-test"));
await _workflowDefinitionsReloader.ReloadWorkflowDefinitionsAsync(CancellationToken.None);
await _workflowDefinitionsReloader.ReloadWorkflowDefinitionsAsync();
var secondResponse = await client.SendAsync(new HttpRequestMessage(HttpMethod.Get, "reload-test"));
Assert.Equal(HttpStatusCode.NotFound, firstResponse.StatusCode);
Assert.Equal(HttpStatusCode.OK, secondResponse.StatusCode);
@ -97,6 +99,9 @@ public class ReloadWorkflowTests : AppComponentTest
// Assert that the activity registry contains a new activity descriptor representing the new workflow version.
var activityV2 = _activityRegistry.Find(activityTypeName)!;
Assert.Equal(2, activityV2.Version);
// Cleanup: Delete the workflow definition and its versions.
await _workflowDefinitionManager.DeleteByDefinitionIdAsync(definitionId, CancellationToken.None);
}
private async Task<MaterializedWorkflow> BuildWorkflowAsync(string definitionId, string definitionVersionId, int version)