package uk.nhs.kch.rassyeyanie.framework.route; import static org.junit.Assert.assertNotNull; import org.apache.camel.Produce; import org.apache.camel.ProducerTemplate; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.annotation.DirtiesContext.ClassMode; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import uk.nhs.kch.rassyeyanie.framework.util.TestUtils; @DirtiesContext(classMode = ClassMode.AFTER_CLASS) @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:test-context.xml") @Ignore public class GenericListenerTest { @Produce private ProducerTemplate template; @Autowired private TestUtils testUtils; @Autowired private GenericListener genericListener; // slow test @Test public void testHL7() throws Exception { String messageIn = this.testUtils.readHL7File("PimsInTcpHL7_A31_494268264.dat"); String expectedAck = this.testUtils.readHL7File("PimsInTcpHL7_A31_ACK_494268264.dat"); expectedAck = expectedAck.replaceAll("\r\r", "\r"); String endpoint = this.getFirstActiveEndpoint(); assertNotNull("No active endpoints configured", endpoint); String messageOut = (String) this.template.requestBody(endpoint, messageIn); this.testUtils.assertAckEquals(expectedAck, messageOut); } private String getFirstActiveEndpoint() { for (ListenerConfig listener : this.genericListener.getListeners()) { if (listener.isAutoStart()) { return listener.getEndpoint(); } } return null; } }