/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.core.sitemesh; import java.util.Hashtable; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; import junit.framework.TestCase; import static org.easymock.EasyMock.*; /* Tests the custom sitemesh filter. */ public class SitemeshFilterTest extends TestCase { /* Tests the init method. */ public final void testInit() throws Exception { // Creates an enumeration with all the parameter names. Hashtable<String, String> parameters = new Hashtable<String, String>(); parameters.put("sitemesh.configfile", "com/globant/katari/core/sitemesh/sitemesh.xml"); // Mocks the servlet context. ServletContext context = createMock(ServletContext.class); expect(context.getServletContextName()).andReturn("/sitemesh"); expectLastCall().anyTimes(); expect(context.getInitParameter("sitemesh.configfile")).andReturn( parameters.get("sitemesh.configfile")); expectLastCall().anyTimes(); expect(context.getResourceAsStream(isA(String.class))).andReturn(null); expectLastCall().anyTimes(); // Under some conditions, the init method asks context to log the call. context.log(isA(String.class)); expectLastCall().anyTimes(); replay(context); // Mocks the servlet config. FilterConfig config; config = createMock(FilterConfig.class); expect(config.getServletContext()).andReturn(context); expectLastCall().anyTimes(); expect(config.getInitParameterNames()).andReturn(parameters.keys()); expect(config.getInitParameter("sitemesh.configfile")).andReturn( parameters.get("sitemesh.configfile")); expectLastCall().anyTimes(); expect(config.getInitParameter(isA(String.class))).andReturn(null); expectLastCall().anyTimes(); replay(config); SitemeshFilter filter = new SitemeshFilter(); filter.init(config); // We only expect that no exception is thrown here, otherwise, the filter // was not able to find sitemesh.xml and decorators.xml files. } }