package uk.nhs.kch.rassyeyanie.framework.route; import static org.mockito.Mockito.when; import org.apache.camel.Exchange; import org.apache.camel.Message; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import uk.nhs.kch.rassyeyanie.framework.util.TestUtils; /** */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:test-context.xml") public class SenderResponseProcessorTest { @Autowired private SenderResponseProcessor processor; @Mock private Exchange mockExchange; @Mock private Message mockMessage; @Autowired private TestUtils testUtils; @Before public void setUp() { MockitoAnnotations.initMocks(this); } @Test(expected = ResponseException.class) public void testResponseBodyNotAString() { when(this.mockExchange.getIn()).thenReturn(this.mockMessage); when(this.mockMessage.getBody()).thenReturn(Integer.valueOf(7)); this.processor.process(this.mockExchange); } @Test(expected = ResponseException.class) public void testResponseBodyIsNotAValidHL7String() { when(this.mockExchange.getIn()).thenReturn(this.mockMessage); when(this.mockMessage.getBody()).thenReturn("invalid"); this.processor.process(this.mockExchange); } @Test public void testResponseBodyIsACKString() throws Exception { String expectedAck = this.testUtils.readHL7File("PimsInTcpHL7_A31_ACK_494268264.dat"); when(this.mockExchange.getIn()).thenReturn(this.mockMessage); when(this.mockMessage.getBody()).thenReturn(expectedAck); this.processor.process(this.mockExchange); } @Test(expected = ResponseException.class) public void testResponseBodyIsNACKString() throws Exception { String expectedAck = this.testUtils.readHL7File("PimsInTcpHL7_A31_NACK_494268264.dat"); when(this.mockExchange.getIn()).thenReturn(this.mockMessage); when(this.mockMessage.getBody()).thenReturn(expectedAck); this.processor.process(this.mockExchange); } }