package test.resource;
import java.util.List;
import org.osgi.framework.Version;
import org.osgi.resource.Capability;
import org.osgi.resource.Requirement;
import org.osgi.resource.Resource;
import aQute.bnd.osgi.resource.CapReqBuilder;
import aQute.bnd.osgi.resource.PersistentResource;
import aQute.bnd.osgi.resource.ResourceBuilder;
import aQute.lib.json.JSONCodec;
import junit.framework.TestCase;
public class PersistentResourceTest extends TestCase {
public void testSimple() throws Exception {
ResourceBuilder rb = new ResourceBuilder();
rb.addCapability(new CapReqBuilder("test").addAttribute("double", 3.0)
.addAttribute("long", 3L)
.addAttribute("string", "3.0")
.addAttribute("version", new Version("3.0"))
.buildSyntheticCapability());
Resource r = rb.build();
PersistentResource pr = new PersistentResource(r);
String s = new JSONCodec().enc().put(pr).toString();
PersistentResource pr2 = new JSONCodec().dec().from(s).get(PersistentResource.class);
List<Capability> capabilities = pr.getResource().getCapabilities(null);
List<Requirement> requirements = pr.getResource().getRequirements(null);
assertEquals(1, capabilities.size());
assertEquals(0, requirements.size());
Capability capability = capabilities.get(0);
assertEquals("test", capability.getNamespace());
assertEquals(3.0, capability.getAttributes().get("double"));
assertEquals(3L, capability.getAttributes().get("long"));
assertEquals("3.0", capability.getAttributes().get("string"));
assertEquals(new Version("3.0"), capability.getAttributes().get("version"));
assertEquals(0, capability.getDirectives().size());
}
}