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 @@ -6,12 +6,10 @@

@SpringBootTest
@TestPropertySource(properties = {
"nhais.mongodb.autoIndexCreation=false" // no mongodb instance to create indexes at startup
"nhais.mongodb.autoIndexCreation=false" // no mongodb instance to create indexes at startup
})
class IntegrationAdaptorNhaisApplicationTests {

@Test
void When_DatabaseIsNotReachable_Expect_ApplicationStartsUpWithNegativeHealthcheck() {
}

@Test
void When_DatabaseIsNotReachable_Expect_ApplicationStartsUpWithNegativeHealthcheck() { }
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,12 @@
import org.junit.jupiter.params.provider.EnumSource;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.*;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Interchange;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.InterchangeHeader;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Message;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.ReferenceTransactionNumber;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.ReferenceTransactionType;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.utils.OperationId;

import static org.assertj.core.api.Assertions.assertThat;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZonedDateTime;
import java.util.List;

Expand All @@ -40,7 +41,7 @@ class RecepProducerServiceTest {
private static final Long INTERCHANGE_SEQUENCE = 45L;
private static final Long MESSAGE_SEQUENCE_1 = 56L;
private static final Instant FIXED_TIME = ZonedDateTime
.of(2020, 4, 27, 17, 37, 0, 0, TimestampService.UK_ZONE)
.of(LocalDateTime.parse("2020-04-27T17:37:00"), TimestampService.UK_ZONE)
.toInstant();
private static final long RECEP_INTERCHANGE_SEQUENCE = 123123;
private static final long RECEP_MESSAGE_SEQUENCE = 234234;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,59 +21,61 @@
@ExtendWith(MockitoExtension.class)
class EdifactToFhirServiceTest {

private final String rejectionMessage = "UNB+UNOA:2+TES5+XX11+020114:1619+00000003'\n" +
"UNH+00000004+FHSREG:0:1:FH:FHS001'\n" +
"BGM+++507'\n" +
"NAD+FHS+XX1:954'\n" +
"DTM+137:199201141619:203'\n" +
"RFF+950:F3'\n" +
"RFF+TN:18'\n" +
"S01+1'\n" +
"NAD+GP+2750922,295:900'\n" +
"NAD+RIC+RT:956'\n" +
"QTY+951:6'\n" +
"QTY+952:3'\n" +
"HEA+ACD+A:ZZZ'\n" +
"HEA+ATP+2:ZZZ'\n" +
"HEA+BM+S:ZZZ'\n" +
"HEA+DM+Y:ZZZ'\n" +
"DTM+956:19920114:102'\n" +
"LOC+950+GLASGOW'\n" +
"FTX+RGI+++BABY AT THE REYNOLDS-THORPE CENTRE'\n" +
"S02+2'\n" +
"PNA+PAT+NHS123:OPI+++SU:KENNEDY+FO:SARAH+TI:MISS+MI:ANGELA'\n" +
"DTM+329:19911209:102'\n" +
"PDI+2'\n" +
"NAD+PAT++??:26 FARMSIDE CLOSE:ST PAULS CRAY:ORPINGTON:KENT+++++BR6 7ET'\n" +
"UNT+24+00000004'\n" +
"UNZ+1+00000003'";

private final String approvalMessage = "UNB+UNOA:2+TES5+XX11+020114:1619+00000003'\n" +
"UNH+00000004+FHSREG:0:1:FH:FHS001'\n" +
"BGM+++507'\n" +
"NAD+FHS+XX1:954'\n" +
"DTM+137:199201141619:203'\n" +
"RFF+950:F4'\n" +
"RFF+TN:18'\n" +
"S01+1'\n" +
"NAD+GP+2750922,295:900'\n" +
"NAD+RIC+RT:956'\n" +
"QTY+951:6'\n" +
"QTY+952:3'\n" +
"HEA+ACD+A:ZZZ'\n" +
"HEA+ATP+2:ZZZ'\n" +
"HEA+BM+S:ZZZ'\n" +
"HEA+DM+Y:ZZZ'\n" +
"DTM+956:19920114:102'\n" +
"LOC+950+GLASGOW'\n" +
"FTX+RGI+++BABY AT THE REYNOLDS-THORPE CENTRE'\n" +
"S02+2'\n" +
"PNA+PAT+NHS123:OPI+++SU:KENNEDY+FO:SARAH+TI:MISS+MI:ANGELA'\n" +
"DTM+329:19911209:102'\n" +
"PDI+2'\n" +
"NAD+PAT++??:26 FARMSIDE CLOSE:ST PAULS CRAY:ORPINGTON:KENT+++++BR6 7ET'\n" +
"UNT+24+00000004'\n" +
"UNZ+1+00000003'";
private final String rejectionMessage = """
UNB+UNOA:2+TES5+XX11+020114:1619+00000003'
UNH+00000004+FHSREG:0:1:FH:FHS001'
BGM+++507'
NAD+FHS+XX1:954'
DTM+137:199201141619:203'
RFF+950:F3'
RFF+TN:18'
S01+1'
NAD+GP+2750922,295:900'
NAD+RIC+RT:956'
QTY+951:6'
QTY+952:3'
HEA+ACD+A:ZZZ'
HEA+ATP+2:ZZZ'
HEA+BM+S:ZZZ'
HEA+DM+Y:ZZZ'
DTM+956:19920114:102'
LOC+950+GLASGOW'
FTX+RGI+++BABY AT THE REYNOLDS-THORPE CENTRE'
S02+2'
PNA+PAT+NHS123:OPI+++SU:KENNEDY+FO:SARAH+TI:MISS+MI:ANGELA'
DTM+329:19911209:102'
PDI+2'
NAD+PAT++??:26 FARMSIDE CLOSE:ST PAULS CRAY:ORPINGTON:KENT+++++BR6 7ET'
UNT+24+00000004'
UNZ+1+00000003'""";

private final String approvalMessage = """
UNB+UNOA:2+TES5+XX11+020114:1619+00000003'
UNH+00000004+FHSREG:0:1:FH:FHS001'
BGM+++507'
NAD+FHS+XX1:954'
DTM+137:199201141619:203'
RFF+950:F4'
RFF+TN:18'
S01+1'
NAD+GP+2750922,295:900'
NAD+RIC+RT:956'
QTY+951:6'
QTY+952:3'
HEA+ACD+A:ZZZ'
HEA+ATP+2:ZZZ'
HEA+BM+S:ZZZ'
HEA+DM+Y:ZZZ'
DTM+956:19920114:102'
LOC+950+GLASGOW'
FTX+RGI+++BABY AT THE REYNOLDS-THORPE CENTRE'
S02+2'
PNA+PAT+NHS123:OPI+++SU:KENNEDY+FO:SARAH+TI:MISS+MI:ANGELA'
DTM+329:19911209:102'
PDI+2'
NAD+PAT++??:26 FARMSIDE CLOSE:ST PAULS CRAY:ORPINGTON:KENT+++++BR6 7ET'
UNT+24+00000004'
UNZ+1+00000003'""";

private Map<ReferenceTransactionType.TransactionType, FhirTransactionMapper> transactionMappers;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,8 @@ class DeductionRejectionTransactionMapperTest {

@Test
void When_AllDataPresent_Expect_Mapped(SoftAssertions softly) {
final int expectedParametersCount = 3;

when(transaction.getPersonName()).thenReturn(Optional.of(personName));
when(personName.getNhsNumber()).thenReturn(NHS_NUMBER);
when(transaction.getFreeText()).thenReturn(Optional.of(new FreeText("TEXT VALUE")));
Expand All @@ -70,7 +72,7 @@ void When_AllDataPresent_Expect_Mapped(SoftAssertions softly) {

ParametersExtension parametersExt = new ParametersExtension(parameters);

softly.assertThat(parametersExt.size()).isEqualTo(3);
softly.assertThat(parametersExt.size()).isEqualTo(expectedParametersCount);
Patient patient = parametersExt.extractPatient();
softly.assertThat(patient.getIdentifierFirstRep().getValue()).isEqualTo(NHS_NUMBER);
softly.assertThat(patient.getIdentifierFirstRep().getSystem()).isEqualTo(NhsIdentifier.SYSTEM);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ class DeductionTransactionMapperTest {

@Test
void When_AllFieldsInTransaction_Expect_MapAllFields(SoftAssertions softly) {
final int expectedParametersCount = 5;
when(transaction.getPersonName()).thenReturn(Optional.of(personName));
when(transaction.getDeductionReasonCode()).thenReturn(Optional.of(deductionReasonCode));
when(transaction.getDeductionDate()).thenReturn(Optional.of(deductionDate));
Expand All @@ -81,7 +82,7 @@ void When_AllFieldsInTransaction_Expect_MapAllFields(SoftAssertions softly) {

ParametersExtension parametersExt = new ParametersExtension(parameters);

softly.assertThat(parametersExt.size()).isEqualTo(5);
softly.assertThat(parametersExt.size()).isEqualTo(expectedParametersCount);
Patient patient = parametersExt.extractPatient();
softly.assertThat(patient.getIdentifierFirstRep().getValue()).isEqualTo(NHS_NUMBER);
softly.assertThat(patient.getIdentifierFirstRep().getSystem()).isEqualTo(NhsIdentifier.SYSTEM);
Expand All @@ -92,6 +93,8 @@ void When_AllFieldsInTransaction_Expect_MapAllFields(SoftAssertions softly) {

@Test
void When_AllMandatoryFieldsInTransaction_Expect_MapOnlyMandatoryFields(SoftAssertions softly) {
final int expectedParametersCount = 4;

when(transaction.getPersonName()).thenReturn(Optional.of(personName));
when(transaction.getDeductionReasonCode()).thenReturn(Optional.of(deductionReasonCode));
when(transaction.getDeductionDate()).thenReturn(Optional.of(deductionDate));
Expand All @@ -110,7 +113,7 @@ void When_AllMandatoryFieldsInTransaction_Expect_MapOnlyMandatoryFields(SoftAsse

ParametersExtension parametersExt = new ParametersExtension(parameters);

softly.assertThat(parametersExt.size()).isEqualTo(4);
softly.assertThat(parametersExt.size()).isEqualTo(expectedParametersCount);
Patient patient = parametersExt.extractPatient();
softly.assertThat(patient.getIdentifierFirstRep().getValue()).isEqualTo(NHS_NUMBER);
softly.assertThat(patient.getIdentifierFirstRep().getSystem()).isEqualTo(NhsIdentifier.SYSTEM);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@
import org.assertj.core.api.SoftAssertions;
import org.assertj.core.api.junit.jupiter.SoftAssertionsExtension;
import org.hl7.fhir.r4.model.Patient;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ class FP69PriorNotificationTransactionMapperTest {
private static final String ADDRESS_LINE_4 = "1/4";
private static final String ADDRESS_LINE_5 = null;
private static final String POSTAL_CODE = "ABC-123";
private static final int ADDRESS_LINE_1_INDEX = 0;
private static final int ADDRESS_LINE_2_INDEX = 1;
private static final int ADDRESS_LINE_3_INDEX = 2;
private static final int ADDRESS_LINE_4_INDEX = 3;
private static final int ADDRESS_LINE_5_INDEX = 4;

@InjectMocks
private FP69PriorNotificationTransactionMapper transactionMapper;

Expand Down Expand Up @@ -127,7 +133,9 @@ void When_DateOfBirthSegmentIsMissing_Expect_Exception() {

assertThatThrownBy(() -> transactionMapper.map(transaction))
.isInstanceOf(EdifactValidationException.class)
.hasMessage("For an FP69 prior notification (reference F9) the DTM+329 segment is required to provide the patient date of birth");
.hasMessage(
"For an FP69 prior notification (reference F9) the DTM+329 segment is required to provide the patient date of birth"
);
}

@Test
Expand Down Expand Up @@ -190,6 +198,8 @@ void When_MappingRequiredValues_Expect_ParametersAreMapped(SoftAssertions softly

@Test
void When_MappingAllValues_Expect_ParametersAreMapped(SoftAssertions softly) {
final int expectedAddressLineCount = 5;

when(transaction.getMessage()).thenReturn(message);
when(transaction.getGpNameAndAddress()).thenReturn(gpNameAndAddress);
when(message.getInterchange()).thenReturn(interchange);
Expand Down Expand Up @@ -224,17 +234,18 @@ void When_MappingAllValues_Expect_ParametersAreMapped(SoftAssertions softly) {

softly.assertThat(patient.getAddress()).hasSize(1);
var address = patient.getAddressFirstRep();
softly.assertThat(address.getLine()).hasSize(5);
softly.assertThat(address.getLine().get(0).getValue()).isEqualTo(ADDRESS_LINE_1);
softly.assertThat(address.getLine().get(1).getValue()).isEqualTo(ADDRESS_LINE_2);
softly.assertThat(address.getLine().get(2).getValue()).isEqualTo(ADDRESS_LINE_3);
softly.assertThat(address.getLine().get(3).getValue()).isEqualTo(ADDRESS_LINE_4);
softly.assertThat(address.getLine().get(4).getValue()).isEqualTo(ADDRESS_LINE_5);
softly.assertThat(address.getLine()).hasSize(expectedAddressLineCount);
softly.assertThat(address.getLine().get(ADDRESS_LINE_1_INDEX).getValue()).isEqualTo(ADDRESS_LINE_1);
softly.assertThat(address.getLine().get(ADDRESS_LINE_2_INDEX).getValue()).isEqualTo(ADDRESS_LINE_2);
softly.assertThat(address.getLine().get(ADDRESS_LINE_3_INDEX).getValue()).isEqualTo(ADDRESS_LINE_3);
softly.assertThat(address.getLine().get(ADDRESS_LINE_4_INDEX).getValue()).isEqualTo(ADDRESS_LINE_4);
softly.assertThat(address.getLine().get(ADDRESS_LINE_5_INDEX).getValue()).isEqualTo(ADDRESS_LINE_5);
softly.assertThat(address.getPostalCode()).isEqualTo(POSTAL_CODE);
}

private void assertRequiredFields(SoftAssertions softly, Parameters parameters) {
softly.assertThat(parameters.getParameter()).hasSize(4);
final int expectedParameterCount = 4;
softly.assertThat(parameters.getParameter()).hasSize(expectedParameterCount);

var patient = ParametersExtension.extractPatient(parameters);
softly.assertThat(patient.getName()).hasSize(1);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
class RejectionTransactionMapperTest {

private static final String TEXT_LITERAL = "some_text_literal";
private static final int EXPECTED_PARAMETER_COUNT = 3;
@Mock
private Transaction transaction;
@Mock
Expand Down Expand Up @@ -58,7 +59,7 @@ void testMap(SoftAssertions softly) {

ParametersExtension parametersExt = new ParametersExtension(parameters);

softly.assertThat(parameters.getParameter().size()).isEqualTo(3);
softly.assertThat(parameters.getParameter().size()).isEqualTo(EXPECTED_PARAMETER_COUNT);
softly.assertThat(parametersExt.extractValue(ParameterNames.FREE_TEXT)).isEqualTo(TEXT_LITERAL);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
import static org.mockito.Mockito.when;
import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AddressCountyPatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonAddress;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AddressHouseNamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonAddress;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AddressLocalityPatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonAddress;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AddressNumberOrRoadNamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonAddress;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AddressPostCodePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonAddress;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AddressPostTownPatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonAddress;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.AmendedNhsNumberPatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonPreviousName;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.FirstForenamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonName;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.PreviousSurnamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonPreviousName;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.SecondForenamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonName;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.SurnamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonName;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@

import java.util.Optional;

import uk.nhs.digital.nhsconnect.nhais.inbound.jsonpatch.mapper.ThirdForenamePatchTransactionMapper;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.PersonName;
import uk.nhs.digital.nhsconnect.nhais.model.edifact.Transaction;
import uk.nhs.digital.nhsconnect.nhais.model.jsonpatch.AmendmentPatch;
Expand Down
Loading