package aQute.jpm.main;
import java.io.File;
import java.util.Collection;
import java.util.Map;
import java.util.SortedSet;
import aQute.jpm.lib.CommandData;
import aQute.jpm.lib.JVM;
import aQute.jpm.lib.JustAnotherPackageManager;
import aQute.jpm.lib.ServiceData;
import aQute.jpm.platform.Unix;
import aQute.lib.io.IO;
import aQute.lib.settings.Settings;
import aQute.libg.reporter.ReporterAdapter;
import junit.framework.TestCase;
public class JPMTest extends TestCase {
static Settings settings;
@Override
public void setUp() {
settings = new Settings("/tmp/settings");
}
@Override
public void tearDown() {
settings.clear();
}
static File cwd = new File(System.getProperty("user.dir")).getAbsoluteFile();
static class PLF extends Unix {
@Override
public void shell(String initial) throws Exception {}
@Override
public String getName() {
return "Test Platform";
}
@Override
public void uninstall() {}
@Override
public File getGlobal() {
return new File(cwd, "global").getAbsoluteFile();
}
@Override
public File getLocal() {
return new File(cwd, "local").getAbsoluteFile();
}
@Override
public String createCommand(CommandData data, Map<String,String> map, boolean force, String... strings)
throws Exception {
return null;
}
@Override
public String createService(ServiceData data, Map<String,String> map, boolean force, String... strings)
throws Exception {
return null;
}
@Override
public void installDaemon(boolean user) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void uninstallDaemon(boolean user) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void getVMs(Collection<JVM> vms) throws Exception {
// TODO Auto-generated method stub
}
@Override
public JVM getJVM(File f) throws Exception {
// TODO Auto-generated method stub
return null;
}
}
/*
* public void testCandidates() throws Exception { Reporter r = new
* ReporterAdapter(); JustAnotherPackageManager jpm = new
* JustAnotherPackageManager(r); jpm.setPlatform( new PLF());
* jpm.setLibrary(new URI("http://localhost:8080/rest")); ArtifactData a =
* jpm.getCandidate("aQute.libg", false); assertNotNull(a); a.sync();
* assertNull(a.error); List<Revision> candidates =
* jpm.getCandidates("hello"); assertNotNull(candidates); candidates =
* jpm.getCandidates("aQute.libg"); assertNotNull(candidates); } public
* static void testSimple() throws IOException { Reporter r = new
* ReporterAdapter(); JustAnotherPackageManager jpm = new
* JustAnotherPackageManager(r); Platform plf = new PLF();
* jpm.setPlatform(plf); } public static void testDownload() throws
* Exception { ReporterAdapter reporter = new ReporterAdapter();
* JustAnotherPackageManager jpm = new JustAnotherPackageManager(reporter);
* jpm.setLibrary(new URI("http://localhost:8080/rest")); ArtifactData
* artifact = jpm.getCandidate("aQute.libg", true); assertNotNull(artifact);
* }
*/
/*
* public void test_userMode_cache() throws Exception {
* JustAnotherPackageManager mock = mock(JustAnotherPackageManager.class);
* String[] args = {"-s", "/tmp/settings", "-c", "/tmp/cache"}; Main main =
* new Main(mock); main.run(args); verify(mock).setHomeDir(new
* File("/tmp/cache")); } public void test_userMode_local_noConfig() throws
* Exception { JustAnotherPackageManager mock =
* mock(JustAnotherPackageManager.class); String[] args = {"-s",
* "/tmp/settings", "-u"}; Main main = new Main(mock); main.run(args);
* verify(mock).setHomeDir(Platform.getPlatform(main).getLocal()); } public
* void test_userMode_local_config() throws Exception {
* JustAnotherPackageManager mock = mock(JustAnotherPackageManager.class);
* settings.put("jpm.cache.local", "/tmp/localCache"); settings.save();
* String[] args = {"-s", "/tmp/settings","-u"}; Main main = new Main(mock);
* main.run(args); verify(mock).setHomeDir(IO.getFile("/tmp/localCache")); }
* public void test_userMode_global_noConfig() throws Exception {
* JustAnotherPackageManager mock = mock(JustAnotherPackageManager.class);
* String[] args = {"-s", "/tmp/settings", "-g"}; Main main = new
* Main(mock); main.run(args);
* verify(mock).setHomeDir(Platform.getPlatform(main).getGlobal()); } public
* void test_userMode_global_config() throws Exception {
* JustAnotherPackageManager mock = mock(JustAnotherPackageManager.class);
* settings.put("jpm.cache.global", "/tmp/globalCache"); settings.save();
* String[] args = {"-s", "/tmp/settings", "-g"}; Main main = new
* Main(mock); main.run(args); verify(mock).setHomeDir(new
* File("/tmp/globalCache")); } public void test_userMode_runconfig() throws
* Exception { JustAnotherPackageManager mock =
* mock(JustAnotherPackageManager.class); settings.put("jpm.runconfig",
* "local"); settings.save(); String[] args = {"-s", "/tmp/settings"}; Main
* main = new Main(mock); main.run(args);
* verify(mock).setHomeDir(Platform.getPlatform(main).getLocal()); } public
* void test_userMode_default() throws Exception { JustAnotherPackageManager
* mock = mock(JustAnotherPackageManager.class); String[] args = {"-s",
* "/tmp/settings"}; Main main = new Main(mock); main.run(args);
* verify(mock).setHomeDir(Platform.getPlatform(main).getGlobal()); } public
* void test_install_local_binDir() throws Exception {
* settings.put("jpm.bin.local", "/tmp"); settings.put("jpm.runconfig",
* "local"); settings.save(); String[] args = {"-s", "/tmp/settings",
* "install", "filemap"}; Main main = new Main(); // We have to make sure
* that service.jar is in the local repo (Junit cannot retrieve it from jar)
* // (considering that jpm is installed in its normal (global) place)
* IO.copy(new File(Platform.getPlatform(main).getGlobal(),
* "repo/service.jar"), new File(Platform.getPlatform(main).getLocal(),
* "repo/service.jar")); main.run(args); File exec = new
* File("/tmp/filemap"); assertTrue(exec.exists()); exec = null; String[]
* args2 = {"-s", "/tmp/settings", "remove", "filemap"}; main.run(args2);
* exec = IO.getFile("/tmp/filemap"); assertFalse(exec.exists()); }
*/
public void testMain() throws Exception {
File tmp = new File("tmp");
IO.delete(tmp);
try {
String[] args = {
"-exutl", "http://localhost:8080", "-c", "tmp", "i2", "85510D0C5FF172670EF8BC200F4BD169B3D97459"
};
Main main = new Main();
main.run(args);
} finally {
IO.delete(tmp);
}
}
public void testVM() throws Exception {
File tmp = new File("tmp");
IO.delete(tmp);
tmp.mkdirs();
File home = new File(tmp, "home");
File bin = new File(tmp, "bin");
System.setProperty("jpm.intest", "true");
JustAnotherPackageManager jpm = new JustAnotherPackageManager(new ReporterAdapter(), null, home, bin);
SortedSet<JVM> vms = jpm.getVMs();
assertNotNull(vms);
assertTrue(vms.size() >= 1);
System.out.println(vms);
File f = IO.getFile("~/jdk1.8");
if (f.isDirectory()) {
JVM jvm = jpm.addVm(f);
assertNotNull(jvm);
}
}
}