package org.eclipse.buckminster.p2.remote.client.test;
import java.net.URL;
import java.util.Iterator;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.eclipse.buckminster.p2.remote.marshall.IUMarshaller;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.core.runtime.Platform;
import org.eclipse.equinox.internal.p2.console.ProvisioningHelper;
import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.internal.provisional.p2.metadata.query.InstallableUnitQuery;
import org.eclipse.equinox.internal.provisional.p2.query.Collector;
import org.eclipse.osgi.service.resolver.VersionRange;
import org.jabsorb.JSONRPCBridge;
import org.jabsorb.JSONSerializer;
import org.osgi.framework.Bundle;
public class TestMarshalling extends TestCase
{
public static Test suite() throws Exception
{
Bundle[] bundles = Platform.getBundles("org.eclipse.equinox.p2.exemplarysetup", null);
bundles[0].start();
bundles = Platform.getBundles("org.eclipse.equinox.p2.metadata", null);
bundles[0].start();
TestSuite suite = new TestSuite("Test for org.eclipse.buckminster.core");
suite.addTest(new TestMarshalling("testMarshalling"));
return suite;
}
@SuppressWarnings("unchecked")
private static Iterator<IInstallableUnit> getCollectorIterator(Collector collector)
{
return collector.iterator();
}
public TestMarshalling(String testName)
{
super(testName);
}
public void testMarshalling() throws Exception
{
InstallableUnitQuery query = new InstallableUnitQuery(null, VersionRange.emptyRange);
Collector repoRoots = ProvisioningHelper.getInstallableUnits(new URL(
"http://download.eclipse.org/tools/buckminster/updates-3.4/"), query, new NullProgressMonitor());
JSONSerializer serializer = JSONRPCBridge.getSerializer();
serializer.registerSerializer(new IUMarshaller());
Iterator<IInstallableUnit> unitIterator = getCollectorIterator(repoRoots);
while(unitIterator.hasNext())
{
IInstallableUnit iu = unitIterator.next();
String jsonString = serializer.toJSON(iu);
iu = (IInstallableUnit)serializer.fromJSON(jsonString);
System.out.println(iu.getId());
}
}
}