package net.frontlinesms.camel.smslib; import static org.mockito.Mockito.*; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.smslib.NotConnectedException; public class SmslibConsumerTest { Processor mockProcessor; SmslibEndpoint mockEndpoint; SmslibService mockSmslibService; SmslibConsumer c; @Before public void setUp() { mockProcessor = mock(Processor.class); mockEndpoint = mock(SmslibEndpoint.class); mockSmslibService = mock(SmslibService.class); c = new SmslibConsumer(mockEndpoint, mockSmslibService, mockProcessor); } @After public void tearDown() { mockProcessor = null; mockEndpoint = null; mockSmslibService = null; c = null; } @Test public void testDoStartShouldStartService() throws Exception { // when c.doStart(); // then verify(mockSmslibService).startForConsumer(); } @Test public void testDoStopShouldStopService() throws Exception { // when c.stop(); // then verify(mockSmslibService).stopForConsumer(c); } @Test public void testAccept() throws Exception { // given IncomingSmslibCamelMessage message = mock(IncomingSmslibCamelMessage.class); Exchange exchange = mock(Exchange.class); when(mockEndpoint.createExchange()).thenReturn(exchange); // when c.accept(message); // then verify(exchange).setIn(message); verify(mockProcessor).process(exchange); } public void testHandleDisconnection() throws Exception { // given NotConnectedException exception = mock(NotConnectedException.class); Exchange exchange = mock(Exchange.class); when(mockEndpoint.createExchange()).thenReturn(exchange); // when c.handleDisconnection(exception); // then verify(exchange).setException(exception); verify(mockProcessor).process(exchange); } }