package io.dropwizard.servlets;
import org.junit.Test;
import org.mockito.InOrder;
import javax.servlet.FilterChain;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyZeroInteractions;
public class CacheBustingFilterTest {
private final HttpServletRequest request = mock(HttpServletRequest.class);
private final HttpServletResponse response = mock(HttpServletResponse.class);
private final FilterChain chain = mock(FilterChain.class);
private final CacheBustingFilter filter = new CacheBustingFilter();
@Test
public void passesThroughNonHttpRequests() throws Exception {
final ServletRequest req = mock(ServletRequest.class);
final ServletResponse res = mock(ServletResponse.class);
filter.doFilter(req, res, chain);
verify(chain).doFilter(req, res);
verifyZeroInteractions(res);
}
@Test
public void setsACacheHeaderOnTheResponse() throws Exception {
filter.doFilter(request, response, chain);
final InOrder inOrder = inOrder(response, chain);
inOrder.verify(response).setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
inOrder.verify(chain).doFilter(request, response);
}
}