|
33 | 33 | using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter;
|
34 | 34 | using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services;
|
35 | 35 | using MongoDB.Driver;
|
| 36 | +using MongoDB.Bson.Serialization; |
36 | 37 |
|
37 | 38 | namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers
|
38 | 39 | {
|
@@ -92,6 +93,46 @@ public async Task GetListAsync_PayloadsExist_ReturnsList()
|
92 | 93 | responseValue.Errors.Should().BeNullOrEmpty();
|
93 | 94 | }
|
94 | 95 |
|
| 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 | + |
95 | 136 | [Fact]
|
96 | 137 | public async Task GetListAsync_ServiceException_ReturnProblem()
|
97 | 138 | {
|
|
0 commit comments