diff --git a/src/test/java/org/folio/dcb/controller/EcsRequestTransactionsApiControllerTest.java b/src/test/java/org/folio/dcb/controller/EcsRequestTransactionsApiControllerTest.java index a388bb4a..59b06608 100644 --- a/src/test/java/org/folio/dcb/controller/EcsRequestTransactionsApiControllerTest.java +++ b/src/test/java/org/folio/dcb/controller/EcsRequestTransactionsApiControllerTest.java @@ -58,4 +58,37 @@ void createEcsRequestTransactionsShouldLogErrorToAuditAndRethrowWhenServiceFails verify(transactionAuditService).logErrorIfTransactionAuditNotExists(transactionId, dcbTransaction, errorMessage); verify(ecsRequestTransactionsService).createEcsRequestTransactions(transactionId, dcbTransaction); } + + @Test + void updateEcsRequestTransactionShouldReturnOkStatusWhenSuccessful() { + // TestMate-b3c9d28477affe116c99ccaaa62a5265 + var txId = UUID.randomUUID().toString(); + var dcbTransaction = lenderDcbTransaction(); + var expectedResponse = new TransactionStatusResponse().status(TransactionStatusResponse.StatusEnum.OPEN); + when(ecsRequestTransactionsService.updateEcsRequestTransaction(txId, dcbTransaction)) + .thenReturn(expectedResponse); + + var actualResponse = ecsRequestTransactionsApiController.updateEcsRequestTransaction(txId, dcbTransaction); + + assertThat(actualResponse.getStatusCode()).isEqualTo(HttpStatus.OK); + assertThat(actualResponse.getBody()).isEqualTo(expectedResponse); + verify(ecsRequestTransactionsService).updateEcsRequestTransaction(txId, dcbTransaction); + } + + @Test + void updateEcsRequestTransactionShouldLogErrorToAuditAndRethrowWhenServiceFails() { + // TestMate-bc4856a5a28a7384fc616339818b9260 + var txId = UUID.randomUUID().toString(); + var dcbTransaction = lenderDcbTransaction(); + var errorMessage = "Update failed"; + when(ecsRequestTransactionsService.updateEcsRequestTransaction(txId, dcbTransaction)) + .thenThrow(new RuntimeException(errorMessage)); + + assertThatThrownBy(() -> ecsRequestTransactionsApiController.updateEcsRequestTransaction(txId, dcbTransaction)) + .isInstanceOf(RuntimeException.class) + .hasMessage(errorMessage); + + verify(transactionAuditService).logErrorIfTransactionAuditNotExists(txId, dcbTransaction, errorMessage); + verify(ecsRequestTransactionsService).updateEcsRequestTransaction(txId, dcbTransaction); + } } diff --git a/src/test/java/org/folio/dcb/controller/TransactionApiControllerTest.java b/src/test/java/org/folio/dcb/controller/TransactionApiControllerTest.java index ba082b7b..0fefc16c 100644 --- a/src/test/java/org/folio/dcb/controller/TransactionApiControllerTest.java +++ b/src/test/java/org/folio/dcb/controller/TransactionApiControllerTest.java @@ -6,6 +6,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import java.util.UUID; import org.folio.dcb.domain.dto.TransactionStatusResponse; import org.folio.dcb.domain.dto.TransactionStatusResponse.StatusEnum; import org.folio.dcb.service.TransactionAuditService; @@ -44,7 +45,7 @@ void createCirculationRequestTest() { @Test void createCirculationRequestShouldLogAuditAndThrowWhenExceptionOccurs() { // TestMate-515a8d0a1d8b2ffc0a8908e3322eb24e - var dcbTransactionId = "txn-err-1"; + var dcbTransactionId = UUID.randomUUID().toString(); var errorMessage = "Service Error"; var dcbTransaction = lenderDcbTransaction(); var exception = new RuntimeException(errorMessage); @@ -54,8 +55,36 @@ void createCirculationRequestShouldLogAuditAndThrowWhenExceptionOccurs() { transactionApiController.createCirculationRequest(dcbTransactionId, dcbTransaction)) .isInstanceOf(RuntimeException.class) .hasMessage(errorMessage); - verify(transactionsService).createCirculationRequest(dcbTransactionId, dcbTransaction); verify(transactionAuditService).logErrorIfTransactionAuditNotExists(dcbTransactionId, dcbTransaction, errorMessage); } + + @Test + void getTransactionStatusByIdTest() { + // TestMate-5265ce147e6303a6c6059ec4eb249b3a + var dcbTransactionId = UUID.randomUUID().toString(); + var expectedResponse = new TransactionStatusResponse().status(StatusEnum.CREATED); + when(transactionsService.getTransactionStatusById(dcbTransactionId)).thenReturn(expectedResponse); + + var responseEntity = transactionApiController.getTransactionStatusById(dcbTransactionId); + + assertThat(responseEntity.getStatusCode()).isEqualTo(HttpStatus.OK); + assertThat(responseEntity.getBody()).isEqualTo(expectedResponse); + verify(transactionsService).getTransactionStatusById(dcbTransactionId); + } + + @Test + void getTransactionStatusByIdShouldLogAuditAndThrowWhenExceptionOccurs() { + // TestMate-340f043d8cb1572c0d7d557ce271239c + var dcbTransactionId = UUID.randomUUID().toString(); + var errorMessage = "Database connection failed"; + var exception = new RuntimeException(errorMessage); + when(transactionsService.getTransactionStatusById(dcbTransactionId)).thenThrow(exception); + + assertThatThrownBy(() -> transactionApiController.getTransactionStatusById(dcbTransactionId)) + .isInstanceOf(RuntimeException.class) + .hasMessage(errorMessage); + verify(transactionsService).getTransactionStatusById(dcbTransactionId); + verify(transactionAuditService).logErrorIfTransactionAuditExists(dcbTransactionId, errorMessage); + } }