Skip to content

Commit dfa94b5

Browse files
committed
fix up tests
Signed-off-by: Neil South <[email protected]>
1 parent 9127120 commit dfa94b5

File tree

3 files changed

+30
-20
lines changed

3 files changed

+30
-20
lines changed

src/InformaticsGateway/Repositories/MonaiServiceLocator.cs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,11 @@ public Dictionary<string, ServiceStatus> GetServiceStatus()
5454
{
5555
Guard.Against.Null(type, nameof(type));
5656

57-
var hostedServices = _serviceProvider.GetServices<IHostedService>().ToList();
58-
var t = (hostedServices[2].GetType()).Name;
59-
6057
var TypeInterface = type.GetInterfaces().FirstOrDefault(i => i.Name == $"I{type.Name}");
6158
if (TypeInterface is null)
6259
{
63-
var te = _serviceProvider.GetServices<IHostedService>().FirstOrDefault(i => i.GetType().Name == type.Name);
64-
return te as IMonaiService;
60+
var service = _serviceProvider.GetServices<IHostedService>()?.FirstOrDefault(i => i.GetType().Name == type.Name);
61+
return service as IMonaiService;
6562
}
6663
return (_serviceProvider.GetService(TypeInterface) as IMonaiService);
6764

src/InformaticsGateway/Test/Repositories/MonaiServiceLocatorTest.cs

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@
1515
*/
1616

1717
using System;
18+
using System.Collections.Generic;
19+
using DotNext.Collections.Generic;
20+
using Microsoft.Extensions.DependencyInjection;
21+
using Microsoft.Extensions.Hosting;
1822
using Monai.Deploy.InformaticsGateway.Api.Rest;
1923
using Monai.Deploy.InformaticsGateway.Repositories;
2024
using Monai.Deploy.InformaticsGateway.Services.Common;
@@ -37,26 +41,32 @@ public MonaiServiceLocatorTest()
3741
mock.SetupGet(p => p.ServiceName).Returns(type.Name);
3842
return mock.Object;
3943
});
44+
45+
_serviceProvider.Setup(sp => sp.GetService(typeof(IEnumerable<IHostedService>)))
46+
.Returns((Type type) =>
47+
{
48+
var mock = new Mock<IHostedService>();
49+
return new List<IHostedService> { mock.Object };
50+
});
4051
}
4152

4253
[Fact(DisplayName = "GetMonaiServices")]
4354
public void GetMonaiServices()
4455
{
56+
var hosted = new List<IHostedService>()
57+
{
58+
new Mock<IHostedService>().Object
59+
};
60+
61+
62+
4563
var serviceLocator = new MonaiServiceLocator(_serviceProvider.Object);
4664
var result = serviceLocator.GetMonaiServices();
4765

4866
Assert.Collection(result,
49-
items => items.ServiceName.Equals("DataRetrievalService"),
50-
items => items.ServiceName.Equals("ScpService"),
51-
items => items.ServiceName.Equals("ScuService"),
52-
items => items.ServiceName.Equals("ExtAppScuService"),
53-
items => items.ServiceName.Equals("SpaceReclaimerService"),
54-
items => items.ServiceName.Equals("DicomWebExportService"),
55-
items => items.ServiceName.Equals("ScuExportService"),
56-
items => items.ServiceName.Equals("PayloadNotificationService"),
57-
items => items.ServiceName.Equals("HL7 Service"),
58-
items => items.ServiceName.Equals("ExtAppScuExportService"),
59-
items => items.ServiceName.Equals("Hl7ExportService"));
67+
items => items.ServiceName.Equals("IMllpService"),
68+
items => items.ServiceName.Equals("IPayloadService"));
69+
6070
}
6171

6272
[Fact(DisplayName = "GetServiceStatus")]
@@ -65,7 +75,7 @@ public void GetServiceStatus()
6575
var serviceLocator = new MonaiServiceLocator(_serviceProvider.Object);
6676
var result = serviceLocator.GetServiceStatus();
6777

68-
Assert.Equal(11, result.Count);
78+
Assert.Equal(2, result.Count);
6979
foreach (var svc in result.Keys)
7080
{
7181
Assert.Equal(ServiceStatus.Running, result[svc]);

src/InformaticsGateway/Test/Services/Http/MonaiHealthCheckTest.cs

100644100755
Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
using System.Collections.Generic;
1818
using System.Threading.Tasks;
1919
using Microsoft.Extensions.Diagnostics.HealthChecks;
20+
using Microsoft.Extensions.Logging;
21+
using Microsoft.Extensions.Logging.Abstractions;
2022
using Monai.Deploy.InformaticsGateway.Repositories;
2123
using Monai.Deploy.InformaticsGateway.Services.Http;
2224
using Moq;
@@ -27,6 +29,7 @@ namespace Monai.Deploy.InformaticsGateway.Test.Services.Http
2729
public class MonaiHealthCheckTest
2830
{
2931
private readonly Mock<IMonaiServiceLocator> _monaiServiceLocator;
32+
private readonly ILogger<MonaiHealthCheck> _logger = new NullLogger<MonaiHealthCheck>();
3033

3134
public MonaiHealthCheckTest()
3235
{
@@ -43,7 +46,7 @@ public async Task GivenAllServicesRunning_WhenCheckHealthAsyncIsCalled_ReturnsHe
4346
{ "C", Api.Rest.ServiceStatus.Running },
4447
});
4548

46-
var svc = new MonaiHealthCheck(_monaiServiceLocator.Object);
49+
var svc = new MonaiHealthCheck(_monaiServiceLocator.Object, _logger);
4750
var result = await svc.CheckHealthAsync(null);
4851
Assert.Equal(HealthStatus.Healthy, result.Status);
4952
}
@@ -58,7 +61,7 @@ public async Task GivenSomeServicesNotRunning_WhenCheckHealthAsyncIsCalled_Retur
5861
{ "C", Api.Rest.ServiceStatus.Stopped },
5962
});
6063

61-
var svc = new MonaiHealthCheck(_monaiServiceLocator.Object);
64+
var svc = new MonaiHealthCheck(_monaiServiceLocator.Object, _logger);
6265
var result = await svc.CheckHealthAsync(null);
6366
Assert.Equal(HealthStatus.Degraded, result.Status);
6467
Assert.Equal(Api.Rest.ServiceStatus.Cancelled, result.Data["B"]);
@@ -75,7 +78,7 @@ public async Task GivenAllServicesNotRunning_WhenCheckHealthAsyncIsCalled_Return
7578
{ "C", Api.Rest.ServiceStatus.Stopped },
7679
});
7780

78-
var svc = new MonaiHealthCheck(_monaiServiceLocator.Object);
81+
var svc = new MonaiHealthCheck(_monaiServiceLocator.Object, _logger);
7982
var result = await svc.CheckHealthAsync(null);
8083

8184
Assert.Equal(HealthStatus.Unhealthy, result.Status);

0 commit comments

Comments
 (0)