/** * */ package org.minnal.core; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import static org.testng.Assert.assertEquals; import org.minnal.core.config.ApplicationConfiguration; import org.minnal.core.config.ResourceConfiguration; import org.minnal.core.config.RouteConfiguration; import org.minnal.core.server.MessageContext; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * @author ganeshs * */ public class ContainerMessageObserverTest { private ContainerMessageObserver observer; private MessageListener listener; private MessageContext context; private Application<ApplicationConfiguration> application; private ApplicationConfiguration applicationConfiguration; private ResourceConfiguration resourceConfiguration; private RouteConfiguration routeConfiguration; @BeforeMethod public void setup() { observer = new ContainerMessageObserver(); listener = mock(MessageListener.class); observer.registerListener(listener); application = mock(Application.class); applicationConfiguration = mock(ApplicationConfiguration.class); when(application.getConfiguration()).thenReturn(applicationConfiguration); ApplicationContext.instance().clear(); context = mock(MessageContext.class); when(context.getApplication()).thenReturn(application); } @Test public void shouldInvokeListenerOnReceived() { observer.onReceived(context); verify(listener).onReceived(context); } @Test public void shouldInvokeListenerOnComplete() { observer.onComplete(context); verify(listener).onComplete(context); } @Test public void shouldInvokeListenerOnError() { observer.onError(context); verify(listener).onError(context); } @Test public void shouldInvokeListenerOnSuccess() { observer.onSuccess(context); verify(listener).onSuccess(context); } @Test public void shouldInvokeListenerOnApplicationResolved() { observer.onApplicationResolved(context); verify(listener).onApplicationResolved(context); } @Test public void shouldSetApplicationConfigurationOnApplicationResolved() { observer.onApplicationResolved(context); assertEquals(ApplicationContext.instance().getApplicationConfiguration(), applicationConfiguration); } }