Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand All @@ -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);
}
}
Loading