package org.wildfly.swarm.bootstrap.env;
import org.junit.Test;
import java.io.File;
import java.io.IOException;
import java.util.Collections;
import java.util.Set;
import static org.junit.Assert.assertEquals;
/**
* Test {@link SystemDependencyResolution}
*
* @author Michael Fraefel
*/
public class SystemDependencyResolutionTest {
@Test
public void testResolve_withGradle() throws IOException {
String group = "org.wildfly.swarm";
String packaging = "jar";
String artifact1 = "test";
String artifact2 = "test2";
String version = "1.0";
String classpathFile1 = buildGradleClassPathEntry(group, artifact1, version, packaging);
String classpathFile2 = buildGradleClassPathEntry(group, artifact2, version, packaging);
String classpath = classpathFile1 + File.pathSeparator + classpathFile2;
System.setProperty("java.class.path", classpath);
ApplicationEnvironment env = ApplicationEnvironment.get();
env.getRemovableDependencies().add(group+":"+artifact1+":"+packaging+":"+version);
//WHEN
SystemDependencyResolution resolution = new SystemDependencyResolution();
Set<String> result = resolution.resolve(Collections.emptyList());
//THEN
assertEquals(1,result.size());
assertEquals(classpathFile2, result.iterator().next());
}
@Test
public void testResolve_withMaven() throws IOException {
String group = "org.wildfly.swarm";
String packaging = "jar";
String artifact1 = "test";
String artifact2 = "test2";
String version = "1.0";
String classpathFile1 = buildMavenClassPathEntry(group, artifact1, version, packaging);
String classpathFile2 = buildMavenClassPathEntry(group, artifact2, version, packaging);
String classpath = classpathFile1 + File.pathSeparator + classpathFile2;
System.setProperty("java.class.path", classpath);
ApplicationEnvironment env = ApplicationEnvironment.get();
env.getRemovableDependencies().add(group+":"+artifact1+":"+packaging+":"+version);
//WHEN
SystemDependencyResolution resolution = new SystemDependencyResolution();
Set<String> result = resolution.resolve(Collections.emptyList());
//THEN
assertEquals(1,result.size());
assertEquals(classpathFile2, result.iterator().next());
}
private String buildGradleClassPathEntry(String group, String artifact, String version, String packaging) {
return "path" + File.separator + ".gradle" + File.separator + group + File.separator + artifact +
File.separator + version + File.separator + "hash" + File.separator +artifact + "-" + version + "." + packaging;
}
private String buildMavenClassPathEntry(String group, String artifact, String version, String packaging) {
return "path" + File.separator + ".m2" + File.separator + "repository" + File.separator + group.replace('.', File.separatorChar) + File.separator + artifact +
File.separator + version + File.separator +artifact + "-" + version + "." + packaging;
}
}