content: /*
   * Copyright (C) 2010. All rights reserved.
   */
  package ro.isdc.wro.maven.plugin;
  
  import java.io.File;
  import java.net.URL;
  import java.util.Date;
  
  import org.apache.commons.io.FileUtils;
  import org.apache.maven.model.Build;
  import org.apache.maven.model.Model;
  import org.apache.maven.plugin.testing.AbstractMojoTestCase;
  import org.apache.maven.project.MavenProject;
  import org.mockito.Mockito;
  
  
  /**
   * Integration test for wro4j mojo.
   *
   * @author Alex Objelean
   */
  public class Wro4jRunMojoIT
      extends AbstractMojoTestCase {
    private File destinationFolder;
    private Wro4jMojo mojo;
  
    /**
     * {@inheritDoc}
     */
    @Override
    protected void setUp()
        throws Exception {
      super.setUp();
      final File testPom = new File(getBasedir(), "/src/test/resources/unit/1/pom.xml");
      mojo = (Wro4jMojo) lookupMojo("run", testPom);
      mojo.setIgnoreMissingResources(Boolean.FALSE.toString());
      mojo.setMinimize(true);
      mojo.setBuildDirectory(new File(getBasedir()));
    }
  
    /**
     * @throws Exception
     */
    public void testMojoGoal()
        throws Exception {
      destinationFolder = new File("target/wroTemp-" + new Date().getTime());
      mojo.setDestinationFolder(destinationFolder);
  
      MavenProject mockMavenProject = Mockito.mock(MavenProject.class);
      Model mockMavenModel = Mockito.mock(Model.class);
      Build mockBuild = Mockito.mock(Build.class);
      Mockito.when(mockMavenProject.getModel()).thenReturn(mockMavenModel);
      Mockito.when(mockMavenModel.getBuild()).thenReturn(mockBuild);
      Mockito.when(mockBuild.getDirectory()).thenReturn(FileUtils.getTempDirectoryPath());
      
      mojo.setMavenProject(mockMavenProject);
  
      final URL url = getClass().getClassLoader().getResource("unit/1/src/main/webapp/WEB-INF/wro.xml");
      final File wroFile = new File(url.toURI());
      mojo.setWroFile(wroFile);
      mojo.setContextFolder(wroFile.getParentFile().getParentFile().getPath());
  
      mojo.execute();
      assertNotNull(mojo);
    }
  
    /**
     * {@inheritDoc}
     */
    @Override
    protected void tearDown()
        throws Exception {
      super.tearDown();
      FileUtils.deleteDirectory(destinationFolder);
    }
  }
  