package aQute.bnd.repository.osgi; import java.io.File; import java.net.URI; import java.net.URISyntaxException; import java.util.Collections; import java.util.List; import java.util.SortedSet; import org.osgi.util.promise.Promise; import aQute.bnd.http.HttpClient; import aQute.bnd.version.Version; import aQute.lib.io.IO; import junit.framework.TestCase; public class OSGiIndexTest extends TestCase { File tmp = IO.getFile("generated/tmp"); File cache = IO.getFile(tmp, "name"); @Override protected void setUp() throws Exception { super.setUp(); IO.delete(tmp); } public void testIndex() throws Exception { HttpClient client = new HttpClient(); client.setCache(tmp); OSGiIndex oi = getIndex(client); List<String> list = oi.getBridge().list("osgi.enroute.*"); assertNotNull(list); assertEquals(32, list.size()); oi = getIndex(client); list = oi.getBridge().list("osgi.enroute.*"); assertNotNull(list); assertEquals(32, list.size()); System.out.println(list); SortedSet<Version> versions = oi.getBridge().versions("osgi.enroute.rest.simple.provider"); assertEquals(1, versions.size()); System.out.println(versions); File f = new File(tmp, "f"); Promise<File> promise = oi.get("osgi.enroute.rest.simple.provider", new Version("2.0.2.201509211431"), f); assertNotNull(promise); File value = promise.getValue(); assertEquals(value, f); promise = oi.get("osgi.enroute.rest.simple.provider", new Version("2.0.2.201509211431"), f); assertNotNull(promise); } public OSGiIndex getIndex(HttpClient client) throws Exception, URISyntaxException { return new OSGiIndex("name", client, cache, Collections.singleton( new URI("https://raw.githubusercontent.com/osgi/osgi.enroute/v1.0.0/cnf/distro/index.xml")), 0, false); } }