diff options
author | Thomas Watson | 2014-02-19 14:15:18 +0000 |
---|---|---|
committer | Thomas Watson | 2014-02-19 14:15:18 +0000 |
commit | 9d5d6a32845f4e56de4a3f17a367aaa2c6e2b156 (patch) | |
tree | 3961f7cc38a672c9dee5e9c1fc0cd7b857ee1af4 /bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container | |
parent | 78310004d127de8e8759876c089dfac9ac6a0a7f (diff) | |
download | rt.equinox.framework-9d5d6a32845f4e56de4a3f17a367aaa2c6e2b156.tar.gz rt.equinox.framework-9d5d6a32845f4e56de4a3f17a367aaa2c6e2b156.tar.xz rt.equinox.framework-9d5d6a32845f4e56de4a3f17a367aaa2c6e2b156.zip |
Bug 428172 - ClassCastException when Feature contributes to system.bundle and export package
- Add testcase
Diffstat (limited to 'bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container')
-rw-r--r-- | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java index 26a65990e..572053a5c 100644 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java +++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java @@ -1426,6 +1426,40 @@ public class TestModuleContainer extends AbstractTest { Assert.assertEquals("g should not resolve.", State.INSTALLED, uses_g.getState()); } + /* + * Test that fragments and uses constraints + */ + @Test + public void testUses4() throws BundleException, IOException { + DummyContainerAdaptor adaptor = createDummyAdaptor(); + ModuleContainer container = adaptor.getContainer(); + + Module systemBundle = installDummyModule("system.bundle.MF", Constants.SYSTEM_BUNDLE_LOCATION, container); + + container.resolve(Arrays.asList(systemBundle), true); + Module uses_h = installDummyModule("uses.h.MF", "h", container); + Module uses_h_frag = installDummyModule("uses.h.frag.MF", "h.frag", container); + + container.resolve(null, false); + + Assert.assertEquals("h should resolve.", State.RESOLVED, uses_h.getState()); + Assert.assertEquals("h.frag should resolve.", State.RESOLVED, uses_h_frag.getState()); + + Module uses_i = installDummyModule("uses.i.MF", "i", container); + Module uses_j = installDummyModule("uses.j.MF", "j", container); + + container.resolve(null, false); + + Assert.assertEquals("i should resolve.", State.RESOLVED, uses_i.getState()); + Assert.assertEquals("j should resolve.", State.RESOLVED, uses_j.getState()); + + List<BundleWire> requiredWires = uses_j.getCurrentRevision().getWiring().getRequiredWires(null); + Assert.assertEquals("Wrong number of wires for j", 2, requiredWires.size()); + for (BundleWire wire : requiredWires) { + Assert.assertEquals("Wrong provider", uses_i.getCurrentRevision(), wire.getProvider()); + } + } + @Test public void testMultiCardinalityUses() throws BundleException, IOException { DummyContainerAdaptor adaptor = createDummyAdaptor(); |