diff options
author | gjoranv <gv@verizonmedia.com> | 2022-09-01 08:44:33 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-09-01 08:44:33 +0200 |
commit | 7973264e277d7ddffe69a4e5ac611c11b0693595 (patch) | |
tree | 50edfa0e2e34fd20d7b4f7d0f3a0faab3adea088 /container-core/src/test/java/com/yahoo/container/core | |
parent | 624e1d285ae4fbc5cf94b10b691c3e3b44d9553b (diff) |
Reapply "Make it possible to test the Container with synthetic bundles"
This reverts commit cbed8a40c2a72ca09b7b8e97f83c3acde3479ab3.
Diffstat (limited to 'container-core/src/test/java/com/yahoo/container/core')
4 files changed, 71 insertions, 35 deletions
diff --git a/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java b/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java index 04ed52db53b..bc5b6d6069b 100644 --- a/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java +++ b/container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java @@ -1,19 +1,19 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.core.config; -import com.yahoo.config.FileReference; -import com.yahoo.filedistribution.fileacquirer.FileAcquirer; -import com.yahoo.filedistribution.fileacquirer.MockFileAcquirer; -import com.yahoo.osgi.Osgi; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.osgi.framework.Bundle; import java.util.Collection; import java.util.List; -import java.util.Map; import java.util.Set; +import static com.yahoo.container.core.config.BundleTestUtil.BUNDLE_1; +import static com.yahoo.container.core.config.BundleTestUtil.BUNDLE_1_REF; +import static com.yahoo.container.core.config.BundleTestUtil.BUNDLE_2; +import static com.yahoo.container.core.config.BundleTestUtil.BUNDLE_2_REF; +import static com.yahoo.container.core.config.BundleTestUtil.testBundles; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; @@ -22,20 +22,13 @@ import static org.junit.jupiter.api.Assertions.assertTrue; */ public class ApplicationBundleLoaderTest { - private static final FileReference BUNDLE_1_REF = new FileReference("bundle-1"); - private static final Bundle BUNDLE_1 = new TestBundle(BUNDLE_1_REF.value()); - private static final FileReference BUNDLE_2_REF = new FileReference("bundle-2"); - private static final Bundle BUNDLE_2 = new TestBundle(BUNDLE_2_REF.value()); - private ApplicationBundleLoader bundleLoader; private TestOsgi osgi; @BeforeEach public void setup() { osgi = new TestOsgi(testBundles()); - var bundleInstaller = new TestBundleInstaller(MockFileAcquirer.returnFile(null)); - - bundleLoader = new ApplicationBundleLoader(osgi, bundleInstaller); + bundleLoader = osgi.bundleLoader(); } @Test @@ -122,22 +115,4 @@ public class ApplicationBundleLoaderTest { assertEquals(BUNDLE_1_REF, bundleLoader.getActiveFileReferences().get(0)); } - private static Map<String, Bundle> testBundles() { - return Map.of(BUNDLE_1_REF.value(), BUNDLE_1, - BUNDLE_2_REF.value(), BUNDLE_2); - } - - static class TestBundleInstaller extends FileAcquirerBundleInstaller { - - TestBundleInstaller(FileAcquirer fileAcquirer) { - super(fileAcquirer); - } - - @Override - public List<Bundle> installBundles(FileReference reference, Osgi osgi) { - return osgi.install(reference.value()); - } - - } - } diff --git a/container-core/src/test/java/com/yahoo/container/core/config/BundleTestUtil.java b/container-core/src/test/java/com/yahoo/container/core/config/BundleTestUtil.java new file mode 100644 index 00000000000..fddbeaf42be --- /dev/null +++ b/container-core/src/test/java/com/yahoo/container/core/config/BundleTestUtil.java @@ -0,0 +1,39 @@ +package com.yahoo.container.core.config; + +import com.yahoo.config.FileReference; +import com.yahoo.filedistribution.fileacquirer.FileAcquirer; +import com.yahoo.osgi.Osgi; +import org.osgi.framework.Bundle; + +import java.util.List; +import java.util.Map; + +/** + * @author gjoranv + */ +public class BundleTestUtil { + + public static final FileReference BUNDLE_1_REF = new FileReference("bundle-1"); + public static final Bundle BUNDLE_1 = new TestBundle(BUNDLE_1_REF.value()); + public static final FileReference BUNDLE_2_REF = new FileReference("bundle-2"); + public static final Bundle BUNDLE_2 = new TestBundle(BUNDLE_2_REF.value()); + + public static Map<String, Bundle> testBundles() { + return Map.of(BUNDLE_1_REF.value(), BUNDLE_1, + BUNDLE_2_REF.value(), BUNDLE_2); + } + + public static class TestBundleInstaller extends FileAcquirerBundleInstaller { + + TestBundleInstaller(FileAcquirer fileAcquirer) { + super(fileAcquirer); + } + + @Override + public List<Bundle> installBundles(FileReference reference, Osgi osgi) { + return osgi.install(reference.value()); + } + + } + +} diff --git a/container-core/src/test/java/com/yahoo/container/core/config/TestBundle.java b/container-core/src/test/java/com/yahoo/container/core/config/TestBundle.java index 4a607520b2a..17709844f99 100644 --- a/container-core/src/test/java/com/yahoo/container/core/config/TestBundle.java +++ b/container-core/src/test/java/com/yahoo/container/core/config/TestBundle.java @@ -16,7 +16,7 @@ import java.util.List; /** * @author gjoranv */ -class TestBundle extends MockBundle { +public class TestBundle extends MockBundle { private static final BundleRevision revision = new TestBundleRevision(); @@ -24,7 +24,7 @@ class TestBundle extends MockBundle { boolean started = false; - TestBundle(String symbolicName) { + public TestBundle(String symbolicName) { this.symbolicName = symbolicName; } diff --git a/container-core/src/test/java/com/yahoo/container/core/config/TestOsgi.java b/container-core/src/test/java/com/yahoo/container/core/config/TestOsgi.java index cf3d1cef5f8..0df338c2144 100644 --- a/container-core/src/test/java/com/yahoo/container/core/config/TestOsgi.java +++ b/container-core/src/test/java/com/yahoo/container/core/config/TestOsgi.java @@ -1,6 +1,8 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.container.core.config; +import com.yahoo.config.FileReference; +import com.yahoo.filedistribution.fileacquirer.MockFileAcquirer; import com.yahoo.osgi.MockOsgi; import org.osgi.framework.Bundle; @@ -8,21 +10,28 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; +import java.util.Set; /** * @author gjoranv */ -class TestOsgi extends MockOsgi { +public class TestOsgi extends MockOsgi implements com.yahoo.container.di.Osgi { + private final ApplicationBundleLoader bundleLoader; private final Map<String, Bundle> availableBundles; private final List<Bundle> installedBundles = new ArrayList<>(); private final List<Bundle> allowedDuplicates = new ArrayList<>(); - TestOsgi(Map<String, Bundle> availableBundles) { + public TestOsgi(Map<String, Bundle> availableBundles) { this.availableBundles = availableBundles; + + var bundleInstaller = new BundleTestUtil.TestBundleInstaller(MockFileAcquirer.returnFile(null)); + bundleLoader = new ApplicationBundleLoader(this, bundleInstaller); } + public ApplicationBundleLoader bundleLoader() { return bundleLoader; } + @Override public List<Bundle> install(String fileReferenceValue) { if (! availableBundles.containsKey(fileReferenceValue)) @@ -55,4 +64,17 @@ class TestOsgi extends MockOsgi { allowedDuplicates.addAll(bundles); } + @Override + public Set<Bundle> useApplicationBundles(Collection<FileReference> bundles) { + return bundleLoader.useBundles(new ArrayList<>(bundles)); + } + + @Override + public Collection<Bundle> revertApplicationBundles() { + return bundleLoader.revertToPreviousGeneration(); + } + + public void removeBundle(Bundle bundle) { + installedBundles.remove(bundle); + } } |