package com.globant.katari.cas; import java.io.IOException; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import junit.framework.TestCase; import org.easymock.EasyMock; import com.globant.katari.cas.CasLogoutFilter; import com.globant.katari.cas.CasTicketRegistry; public class CasLogoutFilterTest extends TestCase { public void testDoFilter() throws IOException, ServletException { // mock creation CasTicketRegistry casTicketRegistry = EasyMock .createMock(CasTicketRegistry.class); HttpServletRequest request = EasyMock.createMock(HttpServletRequest.class); ServletResponse response = EasyMock.createMock(HttpServletResponse.class); FilterChain chain = EasyMock.createMock(FilterChain.class); HttpSession session = EasyMock.createMock(HttpSession.class); CasLogoutFilter filter = new CasLogoutFilter(casTicketRegistry); // mock recording EasyMock.expect(casTicketRegistry.getSession("ticket1")).andReturn(session); EasyMock.expect(request.getRequestURI()).andReturn( "http://myrequest.com/context/j_acegi_cas_security_check").anyTimes(); EasyMock.expect(request.getContextPath()).andReturn( "/context").anyTimes(); EasyMock.expect(request.getMethod()).andReturn("POST"); EasyMock .expect(request.getParameter("logoutRequest")) .andReturn( "<samlp:LogoutRequest ID=\"111\" Version=\"2.0\" IssueInstant=\"dateandtime\"><saml:NameID>@NOT_USED@</saml:NameID><samlp:SessionIndex>ticket1</samlp:SessionIndex></samlp:LogoutRequest>"); session.invalidate(); //mock activation EasyMock.replay(request); EasyMock.replay(session); EasyMock.replay(chain); EasyMock.replay(response); EasyMock.replay(casTicketRegistry); // invoke the method to test filter.doFilter(request, response, chain); //mock verification EasyMock.verify(request); EasyMock.verify(session); EasyMock.verify(response); EasyMock.verify(chain); EasyMock.verify(casTicketRegistry); } }