package uk.nhs.kch.rassyeyanie.framework.route;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.component.hl7.HL7Constants;
import org.apache.camel.impl.DefaultCamelContext;
import org.apache.camel.impl.DefaultExchange;
import org.junit.Before;
import org.junit.Test;
import uk.nhs.kch.rassyeyanie.framework.HL7AdditionalConstants;
/**
*/
public class HeaderOverrideProcessorTest
{
private static final String SENDING_SYSTEM = "sending system";
private static final String SENDING_APPLICATION = "sending application";
private static final String RECEIVING_SYSTEM = "receiving system";
private static final String RECEIVING_APPLICATION = "receiving application";
private Exchange exchange;
@Before
public void setUp()
{
CamelContext camelContext = new DefaultCamelContext();
this.exchange = new DefaultExchange(camelContext);
}
@Test
public void testAllOverridesArePlacedInMessageHeader()
{
ListenerConfig config = new ListenerConfig();
config.setSendingFacility(SENDING_SYSTEM);
config.setSendingApplication(SENDING_APPLICATION);
config.setReceivingFacility(RECEIVING_SYSTEM);
config.setReceivingApplication(RECEIVING_APPLICATION);
HeaderOverrideProcessor processor =
new HeaderOverrideProcessor(config, 1);
this.exchange.getIn().setHeader(
HL7AdditionalConstants.HL7_INTERNAL_PATIENT_ID,
"P123456");
processor.process(this.exchange);
Message message = this.exchange.getIn();
assertEquals(
SENDING_SYSTEM,
message.getHeader(HL7Constants.HL7_SENDING_FACILITY));
assertEquals(
SENDING_APPLICATION,
message.getHeader(HL7Constants.HL7_SENDING_APPLICATION));
assertEquals(
RECEIVING_SYSTEM,
message.getHeader(HL7Constants.HL7_RECEIVING_FACILITY));
assertEquals(
RECEIVING_APPLICATION,
message.getHeader(HL7Constants.HL7_RECEIVING_APPLICATION));
}
@Test
public void testOnlySpecifiedOverridesAreUsed()
{
ListenerConfig config = new ListenerConfig();
config.setSendingFacility(SENDING_SYSTEM);
HeaderOverrideProcessor processor =
new HeaderOverrideProcessor(config, 1);
this.exchange.getIn().setHeader(
HL7AdditionalConstants.HL7_INTERNAL_PATIENT_ID,
"P123456");
processor.process(this.exchange);
Message message = this.exchange.getIn();
assertEquals(
SENDING_SYSTEM,
message.getHeader(HL7Constants.HL7_SENDING_FACILITY));
assertNull(message.getHeader(HL7Constants.HL7_SENDING_APPLICATION));
assertNull(message.getHeader(HL7Constants.HL7_RECEIVING_FACILITY));
assertNull(message.getHeader(HL7Constants.HL7_RECEIVING_APPLICATION));
}
@Test
public void HashingPatientIdModulo()
{
ListenerConfig config = new ListenerConfig();
HeaderOverrideProcessor processor =
new HeaderOverrideProcessor(config, 5);
this.exchange.getIn().setHeader(
HL7AdditionalConstants.HL7_INTERNAL_PATIENT_ID,
"P123456");
processor.process(this.exchange);
Message message = this.exchange.getIn();
assertEquals(
"3",
message.getHeader(HL7AdditionalConstants.HL7_PATIENT_GROUP));
}
}