content: package ro.isdc.wro.http;
  
  import static org.junit.Assert.assertEquals;
  import static org.mockito.Mockito.when;
  
  import java.io.PrintWriter;
  import java.io.StringWriter;
  
  import javax.servlet.FilterChain;
  import javax.servlet.FilterConfig;
  import javax.servlet.ServletContext;
  import javax.servlet.ServletRequest;
  import javax.servlet.ServletResponse;
  import javax.servlet.http.HttpServletRequest;
  import javax.servlet.http.HttpServletResponse;
  
  import org.junit.AfterClass;
  import org.junit.Before;
  import org.junit.BeforeClass;
  import org.junit.Test;
  import org.mockito.Mock;
  import org.mockito.Mockito;
  import org.mockito.MockitoAnnotations;
  
  import ro.isdc.wro.config.Context;
  import ro.isdc.wro.extensions.http.handler.ModelAsJsonRequestHandler;
  import ro.isdc.wro.manager.factory.BaseWroManagerFactory;
  import ro.isdc.wro.model.WroModel;
  import ro.isdc.wro.util.WroTestUtils;
  
  
  /**
   * Test behavior of {@link WroFilter} when the extensions module is available.
   *
   * @author Alex Objelean
   */
  public class TestWroFilter {
    @Mock
    private FilterConfig mockFilterConfig;
    @Mock
    private ServletContext mockServletContext;
    @Mock
    private HttpServletRequest mockRequest;
    @Mock
    private HttpServletResponse mockResponse;
    @Mock
    private FilterChain mockFilterChain;
    private WroFilter victim;
  
    @BeforeClass
    public static void onBeforeClass() {
      assertEquals(0, Context.countActive());
    }
  
    @AfterClass
    public static void onAfterClass() {
      assertEquals(0, Context.countActive());
    }
  
    @Before
    public void setUp()
        throws Exception {
      MockitoAnnotations.initMocks(this);
      when(mockFilterConfig.getServletContext()).thenReturn(mockServletContext);
      when(mockResponse.getWriter()).thenReturn(new PrintWriter(new StringWriter()));
      victim = new WroFilter();
      victim.setWroManagerFactory(new BaseWroManagerFactory().setModelFactory(WroTestUtils.simpleModelFactory(new WroModel())));
      victim.init(mockFilterConfig);
    }
  
    @Test
    public void shouldInvokeModelAsJsonRequestHandler()
        throws Exception {
      when(mockRequest.getRequestURI()).thenReturn(ModelAsJsonRequestHandler.ENDPOINT_URI);
      victim.doFilter(mockRequest, mockResponse, mockFilterChain);
      Mockito.verify(mockFilterChain, Mockito.never()).doFilter(Mockito.any(ServletRequest.class),
          Mockito.any(ServletResponse.class));
    }
  }
  