content: package ro.isdc.wro.model.resource.locator;
  
  import static org.junit.Assert.assertNotNull;
  
  import java.io.IOException;
  
  import org.junit.Before;
  import org.junit.Test;
  
  import ro.isdc.wro.manager.factory.standalone.StandaloneContext;
  
  
  /**
   * @author Alex Objelean
   */
  public class TestStandaloneServletContextUriLocator {
    private StandaloneServletContextUriLocator victim;
    private StandaloneContext standaloneContext;
  
    @Before
    public void setUp() {
      standaloneContext = new StandaloneContext();
      final String contextFolder = TestStandaloneServletContextUriLocator.class.getResource("").getFile();
      standaloneContext.setContextFoldersAsCSV(contextFolder);
      victim = new StandaloneServletContextUriLocator(standaloneContext);
    }
  
    @Test(expected = NullPointerException.class)
    public void cannotAcceptNullStandaloneContext() {
      new StandaloneServletContextUriLocator(null);
    }
  
    @Test(expected = IOException.class)
    public void cannotLocateInvalidResource()
        throws Exception {
      victim.locate("invalid");
    }
  
    @Test
    public void shouldLocateValidResource()
        throws Exception {
      final String validResource = TestStandaloneServletContextUriLocator.class.getSimpleName() + ".class";
      assertNotNull(victim.locate(validResource));
    }
  
    @Test
    public void shouldLocateValidResourceWhenMultipleContextFoldersProvided()
        throws Exception {
      final String defaultContextFolder = standaloneContext.getContextFoldersAsCSV();
      standaloneContext.setContextFoldersAsCSV("invalid," + defaultContextFolder);
      final String validResource = TestStandaloneServletContextUriLocator.class.getSimpleName() + ".class";
      assertNotNull(victim.locate(validResource));
    }
  
    @Test(expected = IOException.class)
    public void cannotLocateInvalidResourceWhenMultipleContextFoldersProvided()
        throws Exception {
      final String defaultContextFolder = standaloneContext.getContextFoldersAsCSV();
      standaloneContext.setContextFoldersAsCSV("invalid," + defaultContextFolder);
      assertNotNull(victim.locate("invalid"));
    }
  }
  