Skip to content

Commit 4e15f84

Browse files
authored
Merge pull request #803 from Project-MONAI/AC-2216
AC-2216 take2 workflow name
2 parents 2a0c339 + 0259b2a commit 4e15f84

File tree

5 files changed

+30
-5
lines changed

5 files changed

+30
-5
lines changed

src/WorkflowManager/Common/Interfaces/IWorkflowService.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public interface IWorkflowService : IPaginatedApi<WorkflowRevision>
4343
/// </summary>
4444
/// <param name="workflow">Workflow to Update.</param>
4545
/// <param name="id">Id of the workflow to Update.</param>
46-
Task<string?> UpdateAsync(Workflow workflow, string id);
46+
Task<string?> UpdateAsync(Workflow workflow, string id, bool isUpdateToWorkflowName = false);
4747

4848
/// <summary>
4949
/// Soft deletes a given workflow and all revisions

src/WorkflowManager/Common/Services/WorkflowService.cs

+14-1
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,17 @@ public async Task<string> CreateAsync(Workflow workflow)
5454
{
5555
Guard.Against.Null(workflow);
5656

57+
foreach (var task in workflow.Tasks)
58+
{
59+
task.Args["workflow_name"] = workflow.Name;
60+
}
61+
5762
var id = await _workflowRepository.CreateAsync(workflow);
5863
_logger.WorkflowCreated(id, workflow.Name);
5964
return id;
6065
}
6166

62-
public async Task<string?> UpdateAsync(Workflow workflow, string id)
67+
public async Task<string?> UpdateAsync(Workflow workflow, string id, bool isUpdateToWorkflowName = false)
6368
{
6469
Guard.Against.Null(workflow);
6570
Guard.Against.NullOrWhiteSpace(id);
@@ -71,6 +76,14 @@ public async Task<string> CreateAsync(Workflow workflow)
7176
return null;
7277
}
7378

79+
if (isUpdateToWorkflowName)
80+
{
81+
foreach (var task in workflow.Tasks)
82+
{
83+
task.Args["workflow_name"] = workflow.Name;
84+
}
85+
}
86+
7487
var result = await _workflowRepository.UpdateAsync(workflow, existingWorkflow);
7588
_logger.WorkflowUpdated(id, workflow.Name);
7689
return result;

src/WorkflowManager/WorkflowManager/Controllers/WorkflowsController.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -261,7 +261,7 @@ public async Task<IActionResult> UpdateAsync([FromBody] WorkflowUpdateRequest re
261261

262262
try
263263
{
264-
var workflowId = await _workflowService.UpdateAsync(workflow, id);
264+
var workflowId = await _workflowService.UpdateAsync(workflow, id, workflow.Name != originalName);
265265

266266
if (workflowId == null)
267267
{

tests/UnitTests/Common.Tests/Services/WorkflowServiceTests.cs

+13-1
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,18 @@ public async Task WorkflowService_CreateAsync_With_Empty()
7171
await Assert.ThrowsAsync<ArgumentNullException>(() => WorkflowService.CreateAsync(null));
7272
}
7373

74+
[Fact]
75+
public async Task WorkflowService_CreateAsync_With_ValidReturn()
76+
{
77+
var expectedResult = "1";
78+
_workflowRepository.Setup(w => w.CreateAsync(It.IsAny<Workflow>())).ReturnsAsync(expectedResult);
79+
var tasks = new TaskObject[] { new TaskObject() };
80+
var result = await WorkflowService.CreateAsync(new Workflow() { Name = "workflow1", Tasks = tasks });
81+
82+
Assert.Equal(expectedResult, result);
83+
}
84+
85+
7486
[Fact]
7587
public async Task WorkflowService_WorkflowExists_ReturnsWorkflowId()
7688
{
@@ -102,7 +114,7 @@ public async Task WorkflowService_WorkflowExists_ReturnsWorkflowId()
102114
_workflowRepository.Setup(w => w.GetByWorkflowIdAsync(workflowRevision.WorkflowId)).ReturnsAsync(workflowRevision);
103115
_workflowRepository.Setup(w => w.UpdateAsync(It.IsAny<Workflow>(), workflowRevision)).ReturnsAsync(workflowRevision.WorkflowId);
104116

105-
var result = await WorkflowService.UpdateAsync(new Workflow(), workflowRevision.WorkflowId);
117+
var result = await WorkflowService.UpdateAsync(new Workflow(), workflowRevision.WorkflowId, true);
106118

107119
Assert.Equal(workflowRevision.WorkflowId, result);
108120
}

tests/UnitTests/WorkflowManager.Tests/Controllers/WorkflowsControllerTests.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -899,7 +899,7 @@ public async Task UpdateAsync_WorkflowsExist_ReturnsWorkflowId()
899899
request.Workflow = newWorkflow;
900900
request.OriginalWorkflowName = newWorkflow.Name + "1";
901901

902-
_workflowService.Setup(w => w.UpdateAsync(newWorkflow, workflowRevision.WorkflowId)).ReturnsAsync(workflowRevision.WorkflowId);
902+
_workflowService.Setup(w => w.UpdateAsync(newWorkflow, workflowRevision.WorkflowId, It.IsAny<bool>())).ReturnsAsync(workflowRevision.WorkflowId);
903903

904904
var result = await WorkflowsController.UpdateAsync(request, workflowRevision.WorkflowId);
905905

0 commit comments

Comments
 (0)