/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.core.web;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.createMock;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.replay;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import junit.framework.TestCase;
import org.springframework.web.context.WebApplicationContext;
public class RequestVariablesFilterTest extends TestCase {
/* Tests the filter.
*/
public final void testDoFilter() throws Exception {
// Mocks the servlet response.
HttpServletResponse response = createMock(HttpServletResponse.class);
replay(response);
// Mocks the servlet request.
HttpServletRequest request = createNiceMock(HttpServletRequest.class);
expect(request.getAttribute("baseweb"))
.andReturn("Scheme://ServerName:666/");
expectLastCall().anyTimes();
expect(request.getAttribute("request")).andReturn(request);
expectLastCall().anyTimes();
expect(request.getAttribute("response")).andReturn(response);
expectLastCall().anyTimes();
expect(request.getScheme()).andReturn("Scheme");
expectLastCall().anyTimes();
expect(request.getServerName()).andReturn("ServerName");
expectLastCall().anyTimes();
expect(request.getServerPort()).andReturn(666);
expectLastCall().anyTimes();
expect(request.getContextPath()).andReturn("/");
expectLastCall().anyTimes();
request.setAttribute("baseweb", "Scheme://ServerName:666/");
expectLastCall().anyTimes();
request.setAttribute("request", request);
expectLastCall().anyTimes();
request.setAttribute("response", response);
expectLastCall().anyTimes();
replay(request);
// Mocks the Filter.
FilterChain chain = createMock(FilterChain.class);
chain.doFilter(request, response);
expectLastCall().anyTimes();
replay(chain);
// Mocks the Web Application Context
WebApplicationContext wac = createMock(WebApplicationContext.class);
replay(wac);
// Mocks the HttpServletContext
ServletContext servletContext = createNiceMock(ServletContext.class);
expect(servletContext.getAttribute(
WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE
)).andReturn(wac);
expectLastCall().anyTimes();
replay(servletContext);
// Mocks the FilterConfig
FilterConfig filterConfig = createMock(FilterConfig.class);
expect(filterConfig.getServletContext()).andReturn(servletContext);
expectLastCall().anyTimes();
replay(filterConfig);
// Execute the test.
RequestVariablesFilter filter = new RequestVariablesFilter();
filter.init(filterConfig);
filter.doFilter(request, response, chain);
assertEquals(request.getAttribute("baseweb"), "Scheme://ServerName:666/");
assertEquals(request.getAttribute("request"), request);
assertEquals(request.getAttribute("response"), response);
filter.destroy();
}
}