From 96a51621cb484bdc966530ef13e01a8f2c79f13b Mon Sep 17 00:00:00 2001 From: Neil South Date: Fri, 5 Jul 2024 11:44:10 +0100 Subject: [PATCH] adding controller test Signed-off-by: Neil South --- .../Controllers/PayloadControllerTests.cs | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs b/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs index 2d09bfcf0..8e725da1c 100755 --- a/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs +++ b/tests/UnitTests/WorkflowManager.Tests/Controllers/PayloadControllerTests.cs @@ -33,6 +33,7 @@ using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Filter; using Monai.Deploy.WorkflowManager.Common.Miscellaneous.Services; using MongoDB.Driver; +using MongoDB.Bson.Serialization; namespace Monai.Deploy.WorkflowManager.Common.Test.Controllers { @@ -92,6 +93,46 @@ public async Task GetListAsync_PayloadsExist_ReturnsList() responseValue.Errors.Should().BeNullOrEmpty(); } + [Fact] + public async Task GetAllAsync_WithFilter_CallsPayloadServiceCountAsyncWithFilter() + { + + // Arrange + var filter = new PaginationFilter + { + PageNumber = 1, + PageSize = 10 + }; + var patientId = "123"; + var patientName = "John"; + var accessionId = "456"; + + var pagedData = new List(); + var dataTotal = 5; + + FilterDefinition capturedFilter = null; // Declare a variable to capture the filter + + _payloadService.Setup(x => x.GetAllAsync(It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny(), It.IsAny())).ReturnsAsync(pagedData); + + _payloadService.Setup(x => x.CountAsync(It.IsAny>())) + .Callback>(filter => capturedFilter = filter) // Capture the filter + .ReturnsAsync(dataTotal); + + // Act + var result = await PayloadController.GetAllAsync(filter, patientId, patientName, accessionId); + + // Assert + _payloadService.Verify(x => x.CountAsync(It.IsAny>()), Times.Once); + Assert.NotNull(capturedFilter); // Assert that the filter was captured + var json = capturedFilter.Render(BsonSerializer.SerializerRegistry.GetSerializer(), BsonSerializer.SerializerRegistry); + Assert.Contains(patientId, json.ToString()); + Assert.Contains(patientName, json.ToString()); + Assert.Contains(accessionId, json.ToString()); + Assert.Contains("PatientDetails.PatientId", json.ToString()); + Assert.Contains("PatientDetails.PatientName", json.ToString()); + Assert.Contains("AccessionId", json.ToString()); + } + [Fact] public async Task GetListAsync_ServiceException_ReturnProblem() {