aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com/yahoo/container/core
diff options
context:
space:
mode:
authorgjoranv <gv@verizonmedia.com>2022-09-01 08:44:33 +0200
committergjoranv <gv@verizonmedia.com>2022-09-01 08:44:33 +0200
commit7973264e277d7ddffe69a4e5ac611c11b0693595 (patch)
tree50edfa0e2e34fd20d7b4f7d0f3a0faab3adea088 /container-core/src/test/java/com/yahoo/container/core
parent624e1d285ae4fbc5cf94b10b691c3e3b44d9553b (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')
-rw-r--r--container-core/src/test/java/com/yahoo/container/core/config/ApplicationBundleLoaderTest.java37
-rw-r--r--container-core/src/test/java/com/yahoo/container/core/config/BundleTestUtil.java39
-rw-r--r--container-core/src/test/java/com/yahoo/container/core/config/TestBundle.java4
-rw-r--r--container-core/src/test/java/com/yahoo/container/core/config/TestOsgi.java26
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);
+ }
}