Untitled
unknown
plain_text
a year ago
4.3 kB
7
Indexable
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.Optional;
class LexisNexisValidationCommandHandlerTest {
@InjectMocks
private LexisNexisValidationCommandHandler handler;
@Mock
private MotorOffersRepository motorOffersRepository;
@Mock
private GetOriginationDetailsQueryHandler getOriginationDetailsQueryHandler;
@Mock
private UpdateOffersQueryHandler updateOffersQueryHandler;
@Mock
private PolicyAcceptFailEventCommandHandler policyAcceptFailEventCommandHandler;
@Mock
private PolicyAcceptedEventCommandHandler policyAcceptedEventCommandHandler;
@Mock
private PolicyAcceptedInternalEventCommandHandler policyAcceptedInternalEventCommandHandler;
private RequestContext requestContext;
private LexisNexisValidationCommand command;
private MotorOffersEntity motorOffersEntity;
private MotorInsuranceOriginationResponse originationResponse;
@BeforeEach
void setUp() {
MockitoAnnotations.openMocks(this);
requestContext = new RequestContext(); // Mock or initialize as needed
command = new LexisNexisValidationCommand();
motorOffersEntity = new MotorOffersEntity();
motorOffersEntity.setOfferId("test-offer-id");
motorOffersEntity.setOriginationId("test-origination-id");
motorOffersEntity.setApplicationId("test-application-id");
motorOffersEntity.setCustomerId("test-customer-id");
originationResponse = new MotorInsuranceOriginationResponse();
}
@Test
void handle_shouldReturnFailure_whenOriginationQueryHasError() {
// Arrange
command.setOfferId("test-offer-id");
when(motorOffersRepository.findById("test-offer-id")).thenReturn(Optional.of(motorOffersEntity));
QueryResult<MotorInsuranceOriginationResponse> originationQueryResult = mock(QueryResult.class);
when(getOriginationDetailsQueryHandler.handleDecorators(any(), eq(requestContext)))
.thenReturn(originationQueryResult);
when(originationQueryResult.hasError()).thenReturn(true);
// Act
CommandResult result = handler.handle(command, requestContext);
// Assert
assertNotNull(result);
assertTrue(result.hasFailures());
verify(policyAcceptFailEventCommandHandler, never()).handleDecorators(any(), any());
}
@Test
void handle_shouldHandleException_whenRetryFails() {
// Arrange
command.setOfferId("test-offer-id");
when(motorOffersRepository.findById("test-offer-id")).thenReturn(Optional.of(motorOffersEntity));
when(getOriginationDetailsQueryHandler.handleDecorators(any(), eq(requestContext)))
.thenReturn(new QueryResult<>(originationResponse));
doThrow(new RuntimeException("Test Exception"))
.when(updateOffersQueryHandler).handleDecorators(any(), eq(requestContext));
// Act
CommandResult result = handler.handle(command, requestContext);
// Assert
assertNull(result);
verify(policyAcceptFailEventCommandHandler, times(1)).handleDecorators(any(), eq(requestContext));
}
@Test
void handle_shouldPublishEvent_whenSuccessful() {
// Arrange
command.setOfferId("test-offer-id");
when(motorOffersRepository.findById("test-offer-id")).thenReturn(Optional.of(motorOffersEntity));
when(getOriginationDetailsQueryHandler.handleDecorators(any(), eq(requestContext)))
.thenReturn(new QueryResult<>(originationResponse));
// Mock behavior for retry success
when(updateOffersQueryHandler.handleDecorators(any(), eq(requestContext)))
.thenReturn(new QueryResult<>(new QuotationResponse()));
// Act
CommandResult result = handler.handle(command, requestContext);
// Assert
assertNull(result);
verify(policyAcceptedInternalEventCommandHandler, times(1)).handleDecorators(any(), eq(requestContext));
}
}
Editor is loading...
Leave a Comment