Skip to content

Instantly share code, notes, and snippets.

@davetrux
Created March 4, 2014 22:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davetrux/9357011 to your computer and use it in GitHub Desktop.
Save davetrux/9357011 to your computer and use it in GitHub Desktop.
package com.truxall.demo;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.spi.container.servlet.ServletContainer;
import com.sun.jersey.test.framework.AppDescriptor;
import com.sun.jersey.test.framework.JerseyTest;
import com.sun.jersey.test.framework.WebAppDescriptor;
import com.sun.jersey.test.framework.spi.container.TestContainerFactory;
import com.sun.jersey.test.framework.spi.container.grizzly2.web.GrizzlyWebTestContainerFactory;
import org.junit.Assert;
import org.junit.Test;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import java.io.IOException;
public class GrizzlyWebServletAndFilterTest extends JerseyTest {
public static class MyServlet extends ServletContainer {
public static boolean visited = false;
@Override
public void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.service(req, resp);
visited = true;
}
}
public static class MyFilter1 implements Filter {
public static boolean visited = false;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
visited = true;
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
public static class MyFilter2 implements Filter {
public static boolean visited = false;
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
visited = true;
filterChain.doFilter(servletRequest, servletResponse);
}
@Override
public void destroy() {
}
}
@Path("GrizzlyWebServletAndFilterTest")
public static class TestResource {
@GET
public String get() {
return "GET";
}
}
@Override
protected AppDescriptor configure() {
return new WebAppDescriptor.Builder("com.truxall.demo")
.initParam("com.sun.jersey.api.json.POJOMappingFeature", "true")
.servletClass(MyServlet.class)
.addFilter(MyFilter1.class, "myFilter1")
.addFilter(MyFilter2.class, "myFilter2")
.build();
}
@Override
protected TestContainerFactory getTestContainerFactory() {
return new GrizzlyWebTestContainerFactory();
}
@Test
public void testGet() {
WebResource r = resource().path("GrizzlyWebServletAndFilterTest");
String s = r.get(String.class);
Assert.assertEquals("GET", s);
Assert.assertTrue(MyServlet.visited);
Assert.assertTrue(MyFilter1.visited);
Assert.assertTrue(MyFilter2.visited);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment