Skip to content

Commit 77fd454

Browse files
committed
move stuff around, added tests
Signed-off-by: Neil South <neil.south@answerdigital.com>
1 parent a7374ff commit 77fd454

File tree

6 files changed

+48
-4
lines changed

6 files changed

+48
-4
lines changed

src/TaskManager/API/PlugInAttribute.cs renamed to src/Shared/Shared/PlugInAttribute.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
namespace Monai.Deploy.WorkflowManager.TaskManager.API
17+
namespace Monai.Deploy.WorkflowManager.Shared
1818
{
1919
[AttributeUsage(AttributeTargets.Assembly)]
2020
public class PlugInAttribute : Attribute

src/TaskManager/Plug-ins/Argo/ArgoPlugin.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
using Monai.Deploy.Messaging.Events;
2626
using Monai.Deploy.TaskManager.API;
2727
using Monai.Deploy.WorkflowManager.Configuration;
28+
using Monai.Deploy.WorkflowManager.Shared;
2829
using Monai.Deploy.WorkflowManager.TaskManager.API;
2930
using Monai.Deploy.WorkflowManager.TaskManager.API.Extensions;
3031
using Monai.Deploy.WorkflowManager.TaskManager.API.Models;
@@ -945,7 +946,6 @@ public override async Task HandleTimeout(string identity)
945946

946947
public async Task<WorkflowTemplate> CreateArgoTemplate(string template)
947948
{
948-
template = "{\"namespace\":\"argo\",\"template\":{\"metadata\":{},\"spec\":{}}}";
949949
try
950950
{
951951
WorkflowTemplateCreateRequest? templateCreateRequest = null;
@@ -960,8 +960,7 @@ public async Task<WorkflowTemplate> CreateArgoTemplate(string template)
960960
var mess = ex.Message;
961961
throw new InvalidOperationException(mess);
962962
}
963-
if (templateCreateRequest is null)
964-
{ throw new ArgumentNullException(); }
963+
965964
return await client.Argo_CreateWorkflowTemplateAsync(_namespace, templateCreateRequest, new CancellationToken()).ConfigureAwait(false);
966965
}
967966
catch (Exception ex)

src/TaskManager/Plug-ins/Argo/Monai.Deploy.WorkflowManager.TaskManager.Argo.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242

4343
<ItemGroup>
4444
<ProjectReference Include="..\..\..\Shared\Configuration\Monai.Deploy.WorkflowManager.Configuration.csproj" />
45+
<ProjectReference Include="..\..\..\Shared\Shared\Monai.Deploy.WorkflowManager.Shared.csproj" />
4546
<ProjectReference Include="..\..\API\Monai.Deploy.WorkflowManager.TaskManager.API.csproj" />
4647
</ItemGroup>
4748

src/TaskManager/Plug-ins/Argo/packages.lock.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1177,6 +1177,13 @@
11771177
"Monai.Deploy.Storage": "[0.2.15, )"
11781178
}
11791179
},
1180+
"monai.deploy.workflowmanager.shared": {
1181+
"type": "Project",
1182+
"dependencies": {
1183+
"Ardalis.GuardClauses": "[4.0.1, )",
1184+
"Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions": "[6.0.15, )"
1185+
}
1186+
},
11801187
"monai.deploy.workflowmanager.taskmanager.api": {
11811188
"type": "Project",
11821189
"dependencies": {

src/TaskManager/TaskManager/packages.lock.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1919,6 +1919,7 @@
19191919
"KubernetesClient": "[10.1.4, )",
19201920
"Microsoft.AspNetCore.Mvc.Core": "[2.2.5, )",
19211921
"Monai.Deploy.WorkflowManager.Configuration": "[1.0.0, )",
1922+
"Monai.Deploy.WorkflowManager.Shared": "[1.0.0, )",
19221923
"Monai.Deploy.WorkflowManager.TaskManager.API": "[1.0.0, )"
19231924
}
19241925
},

tests/UnitTests/TaskManager.Argo.Tests/ArgoPluginTest.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -785,6 +785,42 @@ public async Task ArgoPlugin_Ensures_podGC_is_removed()
785785
Assert.Equal(TaskExecutionStatus.Accepted, result.Status);
786786
Assert.Null(_submittedArgoTemplate?.Spec.PodGC);
787787
}
788+
[Fact]
789+
public async Task ArgoPlugin_CreateArgoTemplate_Invalid_json_Throws_JsonSerializationException()
790+
{
791+
var template = "\"name\":\"fred\"";
792+
793+
var runner = new ArgoPlugin(_serviceScopeFactory.Object, _logger.Object, _options, new Messaging.Events.TaskDispatchEvent());
794+
795+
await Assert.ThrowsAsync<JsonSerializationException>(async () => await runner.CreateArgoTemplate(template).ConfigureAwait(false));
796+
}
797+
798+
[Fact]
799+
public async Task ArgoPlugin_CreateArgoTemplate_Invalid_Object_Throws()
800+
{
801+
var template = "@";
802+
803+
var runner = new ArgoPlugin(_serviceScopeFactory.Object, _logger.Object, _options, new Messaging.Events.TaskDispatchEvent());
804+
805+
await Assert.ThrowsAsync<InvalidOperationException>(async () => await runner.CreateArgoTemplate(template).ConfigureAwait(false));
806+
}
807+
808+
[Fact]
809+
public async Task ArgoPlugin_CreateArgoTemplate_Valid_json_Calls_Client()
810+
{
811+
_argoClient.Setup(a =>
812+
a.Argo_CreateWorkflowTemplateAsync(It.IsAny<string>(), It.IsAny<WorkflowTemplateCreateRequest>(), It.IsAny<CancellationToken>()))
813+
.Returns(Task.FromResult(new WorkflowTemplate()));
814+
815+
var template = "{\"name\":\"fred\"}";
816+
817+
var runner = new ArgoPlugin(_serviceScopeFactory.Object, _logger.Object, _options, new Messaging.Events.TaskDispatchEvent());
818+
await runner.CreateArgoTemplate(template).ConfigureAwait(false);
819+
820+
_argoClient.Verify(a =>
821+
a.Argo_CreateWorkflowTemplateAsync(It.IsAny<string>(), It.IsAny<WorkflowTemplateCreateRequest>(), It.IsAny<CancellationToken>()),
822+
Times.Once);
823+
}
788824

789825
private void SetUpSimpleArgoWorkFlow(WorkflowTemplate argoTemplate)
790826
{

0 commit comments

Comments
 (0)