/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package br.uff.ic.oceano.core.util;
import br.uff.ic.oceano.core.tools.maven.MavenUtil;
import br.uff.ic.oceano.core.model.Revision;
import br.uff.ic.oceano.JavaProjectsHelper;
import br.uff.ic.oceano.ostra.controle.Constantes;
import br.uff.ic.oceano.util.file.FileUtils;
import br.uff.ic.oceano.util.file.PathUtil;
import br.uff.ic.oceano.util.test.AbstractNGTest;
import java.io.File;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import junit.framework.Assert;
import static org.testng.Assert.*;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
/**
*
*/
public class MavenUtilNGTest extends AbstractNGTest{
private static JavaProjectsHelper testConstants;
private static Revision revisionFromMavenProjectMfa;
@BeforeTest
public static void setupTest() {
testConstants = new JavaProjectsHelper();
revisionFromMavenProjectMfa = new Revision();
revisionFromMavenProjectMfa.setLocalPath("./src/test/resources/mavenprojectMFA");
}
@Test
public void createSettingsXml() throws Throwable {
File settingXml = new File(MavenUtil.SETTINGS_MAVEN_DEFAULT);
if (settingXml.exists()) {
return;
}
File createSettingsXml = MavenUtil.createSettingsXml();
Assert.assertTrue(createSettingsXml.exists());
//after create it, delete it to maintain the environment intact
createSettingsXml.delete();
}
@Test
public void testExecuteCleanCompile_TestMavenProject() {
String path = PathUtil.getAbsolutePathFromRelativetoCurrentPath("./src/test/resources/TestMavenProject");
testExecuteCleanCompile(path);
}
@Test
public void testExecuteCleanCompile_AnimalSniffer() {
String path = PathUtil.getAbsolutePathFromRelativetoCurrentPath("./src/test/resources/animal-sniffer");
testExecuteCleanCompile(path);
}
@Test
public void testExecuteCleanCompile_mavenprojectMFA() {
String path = PathUtil.getAbsolutePathFromRelativetoCurrentPath("./src/test/resources/mavenprojectMFA");
testExecuteCleanCompile(path);
}
private void testExecuteCleanCompile(String path) {
//cleanup before
File compiledPath = new File(path + "/target/");
if (!compiledPath.exists()) {
FileUtils.deleteDirectory(compiledPath);
}
//Compile
try {
List<Throwable> result = MavenUtil.execute(path, Arrays.asList("clean", "compile"), null);
assertNull(result, String.valueOf(result));
} catch (Exception ex) {
ex.printStackTrace();
assertNotNull(ex, ex.getMessage());
}
//cleanup after
FileUtils.deleteDirectory(compiledPath);
}
@Test
public void testSequentialExecuteCleanCompile_TestMavenProject() {
String path = PathUtil.getAbsolutePathFromRelativetoCurrentPath("./src/test/resources/TestMavenProject");
testSequentialExecuteCleanCompile(path);
}
@Test
public void testSequentialExecuteCleanCompile_AnimalSniffer() {
String path = PathUtil.getAbsolutePathFromRelativetoCurrentPath("./src/test/resources/animal-sniffer");
testSequentialExecuteCleanCompile(path);
}
@Test
public void testSequentialExecuteCleanCompile_mavenprojectMFA() {
String path = PathUtil.getAbsolutePathFromRelativetoCurrentPath("./src/test/resources/mavenprojectMFA");
testSequentialExecuteCleanCompile(path);
}
private void testSequentialExecuteCleanCompile(String path) {
//cleanup before
File compiledPath = new File(path + "/target/");
if (!compiledPath.exists()) {
FileUtils.deleteDirectory(compiledPath);
}
//Compile
try {
List<Throwable> result = MavenUtil.execute(path, Arrays.asList("clean", "compile"), null);
assertNull(result, String.valueOf(result));
result = MavenUtil.execute(path, Arrays.asList("clean", "compile"), null);
assertNull(result, String.valueOf(result));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
//cleanup after
FileUtils.deleteDirectory(compiledPath);
}
@Test
public void getClassPathsUsingCommandLineFromAnimalSniffer() throws Throwable {
Set<String> correctClassPaths = new HashSet<String>();
// <editor-fold defaultstate="collapsed" desc="initialization of correct response">
correctClassPaths.add(PathUtil.getWellFormedPath("repository/asm/asm-all/3.3.1/asm-all-3.3.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/ow2/asm/asm-all/4.0/asm-all-4.0.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/classworlds/classworlds/1.1/classworlds-1.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/com/jcraft/jsch/0.1.23/jsch-0.1.23.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/com/jcraft/jsch/0.1.27/jsch-0.1.27.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/commons-cli/commons-cli/1.0/commons-cli-1.0.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/commons-httpclient/commons-httpclient/2.0.2/commons-httpclient-2.0.2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/de/zeigermann/xml/xml-im-exporter/1.1/xml-im-exporter-1.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/jdom/jdom/1.0/jdom-1.0.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/jtidy/jtidy/4aug2000r7-dev/jtidy-4aug2000r7-dev.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/junit/junit/3.8.1/junit-3.8.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/junit/junit/3.8.2/junit-3.8.2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/ant/ant-launcher/1.7.1/ant-launcher-1.7.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/ant/ant/1.7.1/ant-1.7.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/doxia/doxia-sink-api/1.0-alpha-6/doxia-sink-api-1.0-alpha-6.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/enforcer/enforcer-api/1.0/enforcer-api-1.0.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-artifact-manager/2.0.1/maven-artifact-manager-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-core/2.0.1/maven-core-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-error-diagnostics/2.0.1/maven-error-diagnostics-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-model/2.0.1/maven-model-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-monitor/2.0.1/maven-monitor-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-descriptor/2.0.1/maven-plugin-descriptor-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-parameter-documenter/2.0.1/maven-plugin-parameter-documenter-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-registry/2.0.1/maven-plugin-registry-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-profile/2.0.1/maven-profile-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-project/2.0.1/maven-project-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-repository-metadata/2.0.1/maven-repository-metadata-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-settings/2.0.1/maven-settings-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/maven-toolchain/2.2.1/maven-toolchain-2.2.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/reporting/maven-reporting-api/2.0.1/maven-reporting-api-2.0.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/shared/maven-common-artifact-filters/1.2/maven-common-artifact-filters-1.2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-file/1.0-alpha-5/wagon-file-1.0-alpha-5.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-file/1.0-beta-2/wagon-file-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-http-lightweight/1.0-alpha-5/wagon-http-lightweight-1.0-alpha-5.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-http-lightweight/1.0-beta-2/wagon-http-lightweight-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-http-shared/1.0-beta-2/wagon-http-shared-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-ssh-common/1.0-beta-2/wagon-ssh-common-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-ssh-external/1.0-beta-2/wagon-ssh-external-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-ssh/1.0-alpha-5/wagon-ssh-1.0-alpha-5.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-ssh/1.0-beta-2/wagon-ssh-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/apache/maven/wagon/wagon-webdav/1.0-beta-2/wagon-webdav-1.0-beta-2.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/mojo/animal-sniffer/1.8-SNAPSHOT/animal-sniffer-1.8-SNAPSHOT.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/mojo/java-boot-classpath-detector/1.8-SNAPSHOT/java-boot-classpath-detector-1.8-SNAPSHOT.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/slide/slide-webdavlib/2.1/slide-webdavlib-2.1.jar"));
correctClassPaths.add(PathUtil.getWellFormedPath("repository/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"));
// </editor-fold>
String paths[] = MavenUtil.getClassPathsByCommandLine(testConstants.getRevisionAnimalSniffer());
for (int i = 0; i < paths.length; i++) {
String resultPath = paths[i];
resultPath = resultPath.substring(resultPath.indexOf("repository"));
if (!correctClassPaths.contains(resultPath)) {
System.out.println("Not found: " + resultPath);
}
assertTrue(correctClassPaths.contains(resultPath),resultPath + " not found.");
}
}
/**
*
*/
@Test
public void testGetAllFoldersAndSubFoldersContains() {
final JavaProjectsHelper testConstantsJava = new JavaProjectsHelper();
Revision rev = testConstantsJava.getRevisionTestMavenProject();
File fileOrFolder = new File(rev.getLocalPath());
String contains = MavenUtil.MAVEN2_BASE_COMPILED_FILES;
List<String> result = FileUtils.getAllFoldersAndSubFoldersContains(fileOrFolder, contains);
assertTrue(!result.isEmpty());
for (String string : result) {
assertTrue(string.contains(contains), "Invalid folder");
}
}
}