content: package ro.isdc.wro.extensions.http.handler.spi;
  
  import static org.junit.Assert.assertEquals;
  import static org.junit.Assert.assertFalse;
  import static org.mockito.MockitoAnnotations.initMocks;
  
  import java.util.Map;
  
  import javax.servlet.http.HttpServletRequest;
  
  import org.junit.After;
  import org.junit.AfterClass;
  import org.junit.Before;
  import org.junit.BeforeClass;
  import org.junit.Test;
  import org.mockito.Mock;
  
  import ro.isdc.wro.config.Context;
  import ro.isdc.wro.http.handler.RequestHandler;
  import ro.isdc.wro.model.group.processor.Injector;
  import ro.isdc.wro.util.WroTestUtils;
  
  
  /**
   * @author Alex Objelean
   */
  public class TestDefaultRequestHandlerProvider {
    @Mock
    private HttpServletRequest mockRequest;
    private DefaultRequestHandlerProvider victim;
    private Injector injector;
  
    @BeforeClass
    public static void onBeforeClass() {
      assertEquals(0, Context.countActive());
    }
  
    @AfterClass
    public static void onAfterClass() {
      assertEquals(0, Context.countActive());
    }
  
    @Before
    public void setUp() {
      initMocks(this);
      Context.set(Context.standaloneContext());
      injector = WroTestUtils.createInjector();
      victim = new DefaultRequestHandlerProvider();
      injector.inject(victim);
    }
  
    @After
    public void tearDown() {
      Context.unset();
    }
  
    @Test
    public void shoudProvideAtLeastOneRequestHandler() {
      final Map<String, RequestHandler> map = victim.provideRequestHandlers();
      assertFalse(map.isEmpty());
    }
  
    @Test
    public void shouldNotFailWhenEachHandlerIsInvoked() {
      final Map<String, RequestHandler> map = victim.provideRequestHandlers();
      for (final RequestHandler handler : map.values()) {
        injector.inject(handler);
        handler.accept(mockRequest);
        handler.isEnabled();
      }
    }
  }
  