package test; import java.io.File; import java.util.HashMap; import java.util.List; import java.util.SortedSet; import aQute.bnd.build.Project; import aQute.bnd.build.Workspace; import aQute.bnd.build.WorkspaceRepository; import aQute.bnd.version.Version; import aQute.lib.io.IO; import junit.framework.TestCase; public class WorkspaceRepositoryTest extends TestCase { static Workspace workspace; static WorkspaceRepository repo; private static void reallyClean(Workspace ws) throws Exception { String wsName = ws.getBase().getName(); for (Project project : ws.getAllProjects()) { if (("p1".equals(project.getName()) && "ws-repo-test".equals(wsName)) || ("p2".equals(project.getName()) && "ws-repo-test".equals(wsName)) || ("p3".equals(project.getName()) && "ws-repo-test".equals(wsName))) { File output = project.getSrcOutput().getAbsoluteFile(); if (output.isDirectory() && output.getParentFile() != null) { IO.delete(output); } } else { project.clean(); File target = project.getTargetDir(); if (target.isDirectory() && target.getParentFile() != null) { IO.delete(target); } File output = project.getSrcOutput().getAbsoluteFile(); if (output.isDirectory() && output.getParentFile() != null) { IO.delete(output); } } } IO.delete(ws.getFile("cnf/cache")); } public static void testIMustBeUpdated() { } public void setUp() throws Exception { workspace = new Workspace(IO.getFile("testresources/ws-repo-test")); repo = new WorkspaceRepository(workspace); } public void tearDown() throws Exception { IO.deleteWithException(new File("tmp-ws")); reallyClean(workspace); } public void testListNoFilter() throws Exception { List<String> files = repo.list(null); assertNotNull(files); assertTrue(files.size() > 0); } public void testListBsn() throws Exception { List<String> files = repo.list("p1"); assertTrue(workspace.check()); assertNotNull(files); assertTrue(files.size() > 0); } public void testListBsnForSubProject() throws Exception { List<String> files = repo.list("p4-sub.a"); assertTrue(workspace.check()); assertNotNull(files); assertTrue(files.size() > 0); } public void testListNotExisting() throws Exception { List<String> files = repo.list("somenotexistingproject"); assertTrue(workspace.check()); assertNotNull(files); assertEquals(0, files.size()); } public void testVersionsSingle() throws Exception { SortedSet<Version> versions = repo.versions("p2"); assertTrue(workspace.check()); assertNotNull(versions); assertEquals(1, versions.size()); } public void testVersionsNotExistingBsn() throws Exception { SortedSet<Version> versions = repo.versions("somenotexistingproject"); assertTrue(workspace.check()); assertNotNull(versions); assertEquals(0, versions.size()); } public void testVersionsTranslateFromMavenStyle() throws Exception { SortedSet<Version> versions = repo.versions("p5"); assertTrue(workspace.check()); assertNotNull(versions); assertEquals(1, versions.size()); assertEquals("1.0.0.FOOBAR", versions.iterator().next().toString()); } public void testGetName() { assertEquals("Workspace ws-repo-test", repo.getName()); } public void testGetExact() throws Exception { File file = repo.get("p2", new Version("1.2.3"), new HashMap<String,String>()); assertTrue(workspace.check()); assertNotNull(file); } }