/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.shindig; import java.util.LinkedList; import static org.easymock.EasyMock.*; import org.junit.Test; import org.junit.Before; import org.springframework.context.ApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.web.context.WebApplicationContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContext; import com.google.inject.Injector; import com.google.inject.Module; public class GuiceInitializerListenerTest { private ServletContextEvent event = null; private ServletContext context = null; private ApplicationContext applicationContext = new GenericApplicationContext(); @Before public void setUp() throws Exception { context = createMock(ServletContext.class); expect(context.getAttribute( WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE)) .andReturn(applicationContext); expect(context.getAttribute("guice-injector")).andReturn(null); context.setAttribute(eq("guice-injector"), isA(Injector.class)); replay(context); event = createMock(ServletContextEvent.class); expect(event.getServletContext()).andReturn(context); replay(event); } @Test public void testContextInitialized() throws Exception { GuiceInitializerListener listener; listener = new GuiceInitializerListener(new LinkedList<Module>()); listener.contextInitialized(event); verify(event); } @Test(expected = RuntimeException.class) public void testContextInitialized_attributeExists() throws Exception { reset(context); expect(context.getAttribute("guice-injector")).andReturn("something"); replay(context); GuiceInitializerListener listener; listener = new GuiceInitializerListener(new LinkedList<Module>()); listener.contextInitialized(event); } @Test public void testContextDestroyed() throws Exception { reset(context); context.removeAttribute("guice-injector"); replay(context); GuiceInitializerListener listener; listener = new GuiceInitializerListener(new LinkedList<Module>()); listener.contextDestroyed(event); verify(event); } }