package com.hivemq.spi.services.rest.servlet;
import com.hivemq.spi.annotations.NotNull;
import org.junit.Test;
import javax.servlet.*;
import java.io.IOException;
import static org.junit.Assert.assertEquals;
/**
* @author Dominik Obermaier
*/
public class ServletFilterTest {
@Test
public void test_create_servlet_filter_with_instance() throws Exception {
final ServletFilter servletFilter = new ServletFilter(dummyFilter());
assertEquals(true, servletFilter.getFilter().isPresent());
assertEquals(false, servletFilter.getFilterClass().isPresent());
assertEquals(1, servletFilter.getDispatcherTypes().size());
assertEquals(DispatcherType.REQUEST, servletFilter.getDispatcherTypes().get(0));
}
@Test
public void test_create_servlet_filter_with_class() throws Exception {
final ServletFilter servletFilter = new ServletFilter(Filter.class);
assertEquals(false, servletFilter.getFilter().isPresent());
assertEquals(true, servletFilter.getFilterClass().isPresent());
assertEquals(1, servletFilter.getDispatcherTypes().size());
assertEquals(DispatcherType.REQUEST, servletFilter.getDispatcherTypes().get(0));
}
@Test
public void test_create_servlet_filter_with_dispatcher_types() throws Exception {
final ServletFilter servletFilter = new ServletFilter(dummyFilter(), DispatcherType.INCLUDE, DispatcherType.REQUEST);
assertEquals(true, servletFilter.getFilter().isPresent());
assertEquals(false, servletFilter.getFilterClass().isPresent());
assertEquals(2, servletFilter.getDispatcherTypes().size());
assertEquals(true, servletFilter.getDispatcherTypes().contains(DispatcherType.INCLUDE));
assertEquals(true, servletFilter.getDispatcherTypes().contains(DispatcherType.REQUEST));
}
@NotNull
private Filter dummyFilter() {
return new Filter() {
@Override
public void init(final FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) throws IOException, ServletException {
}
@Override
public void destroy() {
}
};
}
}