diff options
author | Thomas Watson | 2015-08-19 18:29:14 +0000 |
---|---|---|
committer | Thomas Watson | 2015-08-19 18:29:14 +0000 |
commit | 2812090e8adc0d68a554035610e905453e424efb (patch) | |
tree | fdbf61a7c27ce415d8f7a1564c4fdb24cdd3e9ad | |
parent | 7e39ff7a7a923af0d3eeef06ba93bea71ea9a192 (diff) | |
download | rt.equinox.framework-2812090e8adc0d68a554035610e905453e424efb.tar.gz rt.equinox.framework-2812090e8adc0d68a554035610e905453e424efb.tar.xz rt.equinox.framework-2812090e8adc0d68a554035610e905453e424efb.zip |
Improve the container tests for dynamic import
-rw-r--r-- | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/container/TestModuleContainer.java | 59 |
1 files changed, 56 insertions, 3 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 bbe125df4..2a0404e80 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 @@ -215,7 +215,28 @@ public class TestModuleContainer extends AbstractTest { Module h1v2 = installDummyModule("h1_v2.MF", "h1_v2", container); Module f1v1 = installDummyModule("f1_v1.MF", "f1_v1", container); Module b3 = installDummyModule("b3_v1.MF", "b3_v1", container); - container.resolve(Arrays.asList(h1v1, h1v2, f1v1, b3), true); + ResolutionReport report = container.resolve(Arrays.asList(h1v1, h1v2, f1v1, b3), true); + Assert.assertNull("Expected no resolution exception.", report.getResolutionException()); + } + + @Test + public void testMissingHost() throws BundleException, IOException { + DummyContainerAdaptor adaptor = createDummyAdaptor(); + ModuleContainer container = adaptor.getContainer(); + installDummyModule("system.bundle.MF", Constants.SYSTEM_BUNDLE_LOCATION, container); + Module f1v1 = installDummyModule("f1_v1.MF", "f1_v1", container); + Module b3 = installDummyModule("b3_v1.MF", "b3_v1", container); + ResolutionReport report = container.resolve(Arrays.asList(f1v1, b3), true); + Assert.assertNotNull("Expected a resolution exception.", report.getResolutionException()); + + Module h1v1 = installDummyModule("h1_v1.MF", "h1_v1", container); + report = container.resolve(Arrays.asList(b3), true); + Assert.assertNull("Expected no resolution exception.", report.getResolutionException()); + ModuleWiring wiring = b3.getCurrentRevision().getWiring(); + List<ModuleWire> packageWires = wiring.getRequiredModuleWires(PackageNamespace.PACKAGE_NAMESPACE); + Assert.assertEquals("Expected 1 import.", 1, packageWires.size()); + ModuleWire pkgWire = packageWires.get(0); + Assert.assertEquals("Wrong host exporter.", pkgWire.getProviderWiring().getRevision(), h1v1.getCurrentRevision()); } @Test @@ -1228,15 +1249,17 @@ public class TestModuleContainer extends AbstractTest { ModuleWire dynamicWire = container.resolveDynamic("org.osgi.framework", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "org.osgi.framework", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", systemBundle.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("org.osgi.framework.wiring", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "org.osgi.framework.wiring", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", systemBundle.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("c1.b", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c1.b", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); - + Assert.assertEquals("Wrong provider for the wire found.", c1.getCurrentRevision(), dynamicWire.getProvider()); } @Test @@ -1258,14 +1281,17 @@ public class TestModuleContainer extends AbstractTest { ModuleWire dynamicWire = container.resolveDynamic("c1.b", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c1.b", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", c1.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("c4.a", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c4.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", c4.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("c4.b", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c4.b", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", c4.getCurrentRevision(), dynamicWire.getProvider()); } @Test @@ -1290,6 +1316,7 @@ public class TestModuleContainer extends AbstractTest { dynamicWire = container.resolveDynamic("c1.a", dynamic3.getCurrentRevision()); Assert.assertNotNull("Dynamic wire not found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c1.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", c1v1.getCurrentRevision(), dynamicWire.getProvider()); ModuleWiring c1v1Wiring = c1v1.getCurrentRevision().getWiring(); Assert.assertNotNull("c1 wiring is null.", c1v1Wiring); @@ -1327,10 +1354,12 @@ public class TestModuleContainer extends AbstractTest { dynamicWire = container.resolveDynamic("h1.a", dynamic3.getCurrentRevision()); Assert.assertNotNull("Dynamic wire not found.", dynamicWire); Assert.assertEquals("Wrong package found.", "h1.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", h1.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("f1.a", dynamic3.getCurrentRevision()); Assert.assertNotNull("Dynamic wire not found.", dynamicWire); Assert.assertEquals("Wrong package found.", "f1.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", h1.getCurrentRevision(), dynamicWire.getProvider()); ModuleWiring h1Wiring = h1.getCurrentRevision().getWiring(); Assert.assertNotNull("h1 wiring is null.", h1Wiring); @@ -1358,10 +1387,12 @@ public class TestModuleContainer extends AbstractTest { ModuleWire dynamicWire = container.resolveDynamic("c4.a", dynamic3.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c4.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", c4.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("c4.b", dynamic3.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "c4.b", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", c4.getCurrentRevision(), dynamicWire.getProvider()); } @Test @@ -1378,7 +1409,8 @@ public class TestModuleContainer extends AbstractTest { Module f1 = installDummyModule("f1_v1.MF", "f1_v1", container); - ModuleWire dynamicWire = container.resolveDynamic("h1.a", dynamic3.getCurrentRevision()); + ModuleWire dynamicWire; + dynamicWire = container.resolveDynamic("h1.a", dynamic3.getCurrentRevision()); Assert.assertNull("Dynamic wire found.", dynamicWire); dynamicWire = container.resolveDynamic("f1.a", dynamic3.getCurrentRevision()); Assert.assertNull("Dynamic wire found.", dynamicWire); @@ -1388,10 +1420,12 @@ public class TestModuleContainer extends AbstractTest { dynamicWire = container.resolveDynamic("h1.a", dynamic3.getCurrentRevision()); Assert.assertNotNull("Dynamic wire not found.", dynamicWire); Assert.assertEquals("Wrong package found.", "h1.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong host revision found.", h1.getCurrentRevision(), dynamicWire.getProvider()); dynamicWire = container.resolveDynamic("f1.a", dynamic3.getCurrentRevision()); Assert.assertNotNull("Dynamic wire not found.", dynamicWire); Assert.assertEquals("Wrong package found.", "f1.a", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong host revision found.", h1.getCurrentRevision(), dynamicWire.getProvider()); ModuleWiring h1Wiring = h1.getCurrentRevision().getWiring(); Assert.assertNotNull("h1 wiring is null.", h1Wiring); @@ -1401,6 +1435,24 @@ public class TestModuleContainer extends AbstractTest { } @Test + public void testDynamicImport07() 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 dynamic3 = installDummyModule("dynamic2_v1.MF", "dynamic2_v1", container); + + Assert.assertNull("Expected no resolution exception.", container.resolve(Arrays.asList(systemBundle, dynamic3), true).getResolutionException()); + + installDummyModule("c6_v1.MF", "c6_v1", container); + + ModuleWire dynamicWire = container.resolveDynamic("c6", dynamic3.getCurrentRevision()); + Assert.assertNull("Dynamic wire found.", dynamicWire); + } + + @Test public void testDynamicImportMiss01() throws BundleException, IOException { DummyContainerAdaptor adaptor = createDummyAdaptor(); ModuleContainer container = adaptor.getContainer(); @@ -1419,6 +1471,7 @@ public class TestModuleContainer extends AbstractTest { ModuleWire dynamicWire = container.resolveDynamic("org.osgi.framework", dynamic1.getCurrentRevision()); Assert.assertNotNull("No dynamic wire found.", dynamicWire); Assert.assertEquals("Wrong package found.", "org.osgi.framework", dynamicWire.getCapability().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); + Assert.assertEquals("Wrong provider for the wire found.", systemBundle.getCurrentRevision(), dynamicWire.getProvider()); Assert.assertEquals("Wrong number of reports.", 1, hook.getResolutionReports().size()); hook.getResolutionReports().clear(); |