Skip to content

Commit 96a5162

Browse files
committed
adding controller test
Signed-off-by: Neil South <neil.south@answerdigital.com>
1 parent 802e2cb commit 96a5162

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

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

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter;
3434
using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services;
3535
using MongoDB.Driver;
36+
using MongoDB.Bson.Serialization;
3637

3738
namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers
3839
{
@@ -92,6 +93,46 @@ public async Task GetListAsync_PayloadsExist_ReturnsList()
9293
responseValue.Errors.Should().BeNullOrEmpty();
9394
}
9495

96+
[Fact]
97+
public async Task GetAllAsync_WithFilter_CallsPayloadServiceCountAsyncWithFilter()
98+
{
99+
100+
// Arrange
101+
var filter = new PaginationFilter
102+
{
103+
PageNumber = 1,
104+
PageSize = 10
105+
};
106+
var patientId = "123";
107+
var patientName = "John";
108+
var accessionId = "456";
109+
110+
var pagedData = new List<PayloadDto>();
111+
var dataTotal = 5;
112+
113+
FilterDefinition<Payload> capturedFilter = null; // Declare a variable to capture the filter
114+
115+
_payloadService.Setup(x => x.GetAllAsync(It.IsAny<int>(), It.IsAny<int>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(pagedData);
116+
117+
_payloadService.Setup(x => x.CountAsync(It.IsAny<FilterDefinition<Payload>>()))
118+
.Callback<FilterDefinition<Payload>>(filter => capturedFilter = filter) // Capture the filter
119+
.ReturnsAsync(dataTotal);
120+
121+
// Act
122+
var result = await PayloadController.GetAllAsync(filter, patientId, patientName, accessionId);
123+
124+
// Assert
125+
_payloadService.Verify(x => x.CountAsync(It.IsAny<FilterDefinition<Payload>>()), Times.Once);
126+
Assert.NotNull(capturedFilter); // Assert that the filter was captured
127+
var json = capturedFilter.Render(BsonSerializer.SerializerRegistry.GetSerializer<Payload>(), BsonSerializer.SerializerRegistry);
128+
Assert.Contains(patientId, json.ToString());
129+
Assert.Contains(patientName, json.ToString());
130+
Assert.Contains(accessionId, json.ToString());
131+
Assert.Contains("PatientDetails.PatientId", json.ToString());
132+
Assert.Contains("PatientDetails.PatientName", json.ToString());
133+
Assert.Contains("AccessionId", json.ToString());
134+
}
135+
95136
[Fact]
96137
public async Task GetListAsync_ServiceException_ReturnProblem()
97138
{

0 commit comments

Comments
 (0)