summaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com/yahoo/container/di
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/test/java/com/yahoo/container/di')
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java33
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ContainerTest.java38
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java17
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java20
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java147
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java17
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java49
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java16
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java14
9 files changed, 181 insertions, 170 deletions
diff --git a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
index 695efbf7c17..942555e391d 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ConfigRetrieverTest.java
@@ -9,18 +9,20 @@ import com.yahoo.container.di.ConfigRetriever.BootstrapConfigs;
import com.yahoo.container.di.ConfigRetriever.ComponentsConfigs;
import com.yahoo.container.di.ConfigRetriever.ConfigSnapshot;
import com.yahoo.vespa.config.ConfigKey;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.io.TempDir;
+import java.io.File;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
/**
*
@@ -32,18 +34,21 @@ public class ConfigRetrieverTest {
private DirConfigSource dirConfigSource = null;
- @Before
+ @TempDir
+ File tmpDir;
+
+ @BeforeEach
public void setup() {
- dirConfigSource = new DirConfigSource("ConfigRetrieverTest-");
+ dirConfigSource = new DirConfigSource(tmpDir, "ConfigRetrieverTest-");
}
- @After
+ @AfterEach
public void cleanup() {
dirConfigSource.cleanup();
}
@Test
- public void require_that_bootstrap_configs_come_first() {
+ void require_that_bootstrap_configs_come_first() {
writeConfigs();
ConfigRetriever retriever = createConfigRetriever();
ConfigSnapshot bootstrapConfigs = retriever.getConfigs(Collections.emptySet(), 0, true);
@@ -53,7 +58,7 @@ public class ConfigRetrieverTest {
@Test
@SuppressWarnings("unused")
- public void require_that_components_comes_after_bootstrap() {
+ void require_that_components_comes_after_bootstrap() {
writeConfigs();
ConfigRetriever retriever = createConfigRetriever();
ConfigSnapshot bootstrapConfigs = retriever.getConfigs(Collections.emptySet(), 0, true);
@@ -68,7 +73,7 @@ public class ConfigRetrieverTest {
}
}
- @Ignore
+ @Disabled
@SuppressWarnings("unused")
public void require_exception_upon_modified_components_keys_without_bootstrap() {
@@ -89,7 +94,7 @@ public class ConfigRetrieverTest {
}
@Test
- public void require_that_empty_components_keys_after_bootstrap_returns_components_configs() {
+ void require_that_empty_components_keys_after_bootstrap_returns_components_configs() {
writeConfigs();
ConfigRetriever retriever = createConfigRetriever();
assertTrue(retriever.getConfigs(Collections.emptySet(), 0, true) instanceof BootstrapConfigs);
diff --git a/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java b/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java
index 30dc4f313e4..04091c25ad6 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ContainerTest.java
@@ -9,8 +9,8 @@ import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.container.di.componentgraph.core.ComponentGraph;
import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleComponent;
import com.yahoo.container.di.componentgraph.core.ComponentNode.ComponentConstructorException;
-import org.junit.Ignore;
-import org.junit.Test;
+import org.junit.jupiter.api.Disabled;
+import org.junit.jupiter.api.Test;
import org.osgi.framework.Bundle;
import java.util.Collection;
@@ -20,13 +20,7 @@ import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertThrows;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.*;
/**
* @author Tony Vaagenes
@@ -36,7 +30,7 @@ import static org.junit.Assert.fail;
public class ContainerTest extends ContainerTestBase {
@Test
- public void components_can_be_created_from_config() {
+ void components_can_be_created_from_config() {
writeBootstrapConfigs();
dirConfigSource.writeConfig("test", "stringVal \"myString\"");
@@ -49,7 +43,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void components_are_reconfigured_after_config_update_without_bootstrap_configs() {
+ void components_are_reconfigured_after_config_update_without_bootstrap_configs() {
writeBootstrapConfigs();
dirConfigSource.writeConfig("test", "stringVal \"original\"");
@@ -71,7 +65,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void graph_is_updated_after_bootstrap_update() {
+ void graph_is_updated_after_bootstrap_update() {
dirConfigSource.writeConfig("test", "stringVal \"original\"");
writeBootstrapConfigs("id1");
@@ -99,7 +93,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void component_is_deconstructed_when_not_reused() {
+ void component_is_deconstructed_when_not_reused() {
writeBootstrapConfigs("id1", DestructableComponent.class);
Container container = newContainer(dirConfigSource);
@@ -113,9 +107,9 @@ public class ContainerTest extends ContainerTestBase {
assertTrue(componentToDestruct.deconstructed);
}
- @Ignore // because logAndDie is impossible(?) to verify programmatically
+ @Disabled // because logAndDie is impossible(?) to verify programmatically
@Test
- public void manually_verify_what_happens_when_first_graph_contains_component_that_throws_exception_in_ctor() {
+ void manually_verify_what_happens_when_first_graph_contains_component_that_throws_exception_in_ctor() {
writeBootstrapConfigs("thrower", ComponentThrowingExceptionInConstructor.class);
Container container = newContainer(dirConfigSource);
try {
@@ -127,7 +121,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void previous_graph_is_retained_when_new_graph_contains_component_that_throws_exception_in_ctor() {
+ void previous_graph_is_retained_when_new_graph_contains_component_that_throws_exception_in_ctor() {
ComponentEntry simpleComponentEntry = new ComponentEntry("simpleComponent", SimpleComponent.class);
writeBootstrapConfigs(simpleComponentEntry);
@@ -161,7 +155,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void previous_graph_is_retained_when_new_graph_throws_exception_for_missing_config() {
+ void previous_graph_is_retained_when_new_graph_throws_exception_for_missing_config() {
ComponentEntry simpleComponentEntry = new ComponentEntry("simpleComponent", SimpleComponent.class);
writeBootstrapConfigs(simpleComponentEntry);
@@ -185,7 +179,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void getNewComponentGraph_hangs_waiting_for_valid_config_after_invalid_config() throws Exception {
+ void getNewComponentGraph_hangs_waiting_for_valid_config_after_invalid_config() throws Exception {
dirConfigSource.writeConfig("test", "stringVal \"original\"");
writeBootstrapConfigs("myId", ComponentTakingConfig.class);
@@ -196,7 +190,7 @@ public class ContainerTest extends ContainerTestBase {
container.reloadConfig(2);
assertThrows(IllegalArgumentException.class,
- () -> getNewComponentGraph(container, currentGraph));
+ () -> getNewComponentGraph(container, currentGraph));
ExecutorService exec = Executors.newFixedThreadPool(1);
Future<ComponentGraph> newGraph = exec.submit(() -> getNewComponentGraph(container, currentGraph));
@@ -215,7 +209,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void providers_are_destructed() {
+ void providers_are_destructed() {
writeBootstrapConfigs("id1", DestructableProvider.class);
ComponentDeconstructor deconstructor = (generation, components, bundles) -> {
@@ -226,7 +220,7 @@ public class ContainerTest extends ContainerTestBase {
((Provider<?>) component).deconstruct();
}
});
- if (! bundles.isEmpty()) throw new IllegalArgumentException("This test should not use bundles");
+ if (!bundles.isEmpty()) throw new IllegalArgumentException("This test should not use bundles");
};
Container container = newContainer(dirConfigSource, deconstructor);
@@ -242,7 +236,7 @@ public class ContainerTest extends ContainerTestBase {
}
@Test
- public void providers_are_invoked_only_when_needed() {
+ void providers_are_invoked_only_when_needed() {
writeBootstrapConfigs("id1", FailOnGetProvider.class);
Container container = newContainer(dirConfigSource);
diff --git a/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java b/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java
index e7f12d3f228..4383bd08f71 100644
--- a/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java
+++ b/container-core/src/test/java/com/yahoo/container/di/ContainerTestBase.java
@@ -7,10 +7,12 @@ import com.yahoo.config.FileReference;
import com.yahoo.container.bundle.BundleInstantiationSpecification;
import com.yahoo.container.di.ContainerTest.ComponentTakingConfig;
import com.yahoo.container.di.componentgraph.core.ComponentGraph;
-import org.junit.After;
-import org.junit.Before;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.io.TempDir;
import org.osgi.framework.Bundle;
+import java.io.File;
import java.util.Collection;
import java.util.Set;
@@ -26,17 +28,20 @@ public class ContainerTestBase {
private ComponentGraph componentGraph;
protected DirConfigSource dirConfigSource = null;
- @Before
+ @TempDir
+ File tmpDir;
+
+ @BeforeEach
public void setup() {
- dirConfigSource = new DirConfigSource("ContainerTest-");
+ dirConfigSource = new DirConfigSource(tmpDir, "ContainerTest-");
}
- @After
+ @AfterEach
public void cleanup() {
dirConfigSource.cleanup();
}
- @Before
+ @BeforeEach
public void createGraph() {
componentGraph = new ComponentGraph(0);
}
diff --git a/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java b/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java
index 43b2c8ad8e6..db7e93f7c6e 100644
--- a/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java
+++ b/container-core/src/test/java/com/yahoo/container/di/DirConfigSource.java
@@ -3,7 +3,6 @@ package com.yahoo.container.di;
import com.yahoo.config.subscription.ConfigSource;
import com.yahoo.config.subscription.ConfigSourceSet;
-import org.junit.rules.TemporaryFolder;
import java.io.File;
import java.io.FileOutputStream;
@@ -18,15 +17,16 @@ import java.util.Random;
*/
public class DirConfigSource {
- private final TemporaryFolder tempFolder = createTemporaryFolder();
+ private final File tempFolder;
public final ConfigSource configSource;
- public DirConfigSource(String testSourcePrefix) {
+ public DirConfigSource(File tmpDir, String testSourcePrefix) {
+ this.tempFolder = tmpDir;
this.configSource = new ConfigSourceSet(testSourcePrefix + new Random().nextLong());
}
public void writeConfig(String name, String contents) {
- File file = new File(tempFolder.getRoot(), name + ".cfg");
+ File file = new File(tempFolder, name + ".cfg");
if (!file.exists()) {
try {
file.createNewFile();
@@ -39,7 +39,7 @@ public class DirConfigSource {
}
public String configId() {
- return "dir:" + tempFolder.getRoot().getPath();
+ return "dir:" + tempFolder.getPath();
}
public ConfigSource configSource() {
@@ -58,14 +58,4 @@ public class DirConfigSource {
}
}
- private static TemporaryFolder createTemporaryFolder() {
- TemporaryFolder folder = new TemporaryFolder();
- try {
- folder.create();
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- return folder;
- }
-
}
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
index 4d44281658c..c21c1b35782 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
@@ -18,7 +18,7 @@ import com.yahoo.config.test.Test2Config;
import com.yahoo.config.test.TestConfig;
import com.yahoo.container.di.componentgraph.Provider;
import com.yahoo.vespa.config.ConfigKey;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.lang.annotation.Annotation;
import java.util.Collections;
@@ -30,13 +30,7 @@ import java.util.concurrent.Executors;
import java.util.function.Supplier;
import static com.yahoo.container.di.componentgraph.core.ComponentGraph.isBindingAnnotation;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.*;
/**
* @author gjoranv
@@ -50,6 +44,7 @@ public class ComponentGraphTest {
super();
}
+ @SuppressWarnings("deprecation")
public <T extends ConfigInstance> ConfigMap add(Class<T> clazz, String configId) {
ConfigKey<T> key = new ConfigKey<>(clazz, configId);
put(key, ConfigGetter.getConfig(key.getConfigClass(), key.getConfigId()));
@@ -64,7 +59,7 @@ public class ComponentGraphTest {
}
@Test
- public void component_taking_config_can_be_instantiated() {
+ void component_taking_config_can_be_instantiated() {
ComponentGraph componentGraph = new ComponentGraph();
String configId = "raw:stringVal \"test-value\"";
Node componentNode = mockComponentNode(ComponentTakingConfig.class, configId);
@@ -79,7 +74,7 @@ public class ComponentGraphTest {
}
@Test
- public void all_created_components_are_returned_in_reverse_topological_order() {
+ void all_created_components_are_returned_in_reverse_topological_order() {
for (int i = 0; i < 10; i++) {
Node innerComponent = mockComponentNode(SimpleComponent.class);
Node middleComponent = mockComponentNode(ComponentTakingComponent.class);
@@ -96,12 +91,12 @@ public class ComponentGraphTest {
outerComponent.constructInstance();
assertEquals(List.of(outerComponent.constructedInstance().get(), middleComponent.constructedInstance().get(), innerComponent.constructedInstance().get()),
- componentGraph.allConstructedComponentsAndProviders());
+ componentGraph.allConstructedComponentsAndProviders());
}
}
@Test
- public void component_can_be_injected_into_another_component() {
+ void component_can_be_explicitly_injected_into_another_component() {
Node injectedComponent = mockComponentNode(SimpleComponent.class);
Node targetComponent = mockComponentNode(ComponentTakingComponent.class);
targetComponent.inject(injectedComponent);
@@ -116,10 +111,26 @@ public class ComponentGraphTest {
ComponentTakingComponent instance = componentGraph.getInstance(ComponentTakingComponent.class);
assertNotNull(instance);
+ assertSame(injectedComponent.instance.get(), instance.injectedComponent);
}
@Test
- public void interface_implementation_can_be_injected() {
+ void explicitly_injected_components_may_be_unused() {
+ Node notUsingInjected = mockComponentNode(SimpleComponent.class);
+ Node injectedComponent = mockComponentNode(SimpleComponent2.class);
+ notUsingInjected.inject(injectedComponent);
+
+ ComponentGraph componentGraph = new ComponentGraph();
+ componentGraph.add(injectedComponent);
+ componentGraph.add(notUsingInjected);
+ componentGraph.complete();
+
+ SimpleComponent instanceNotUsingInjected = componentGraph.getInstance(SimpleComponent.class);
+ assertNotNull(instanceNotUsingInjected);
+ }
+
+ @Test
+ void interface_implementation_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ComponentImpl.class));
componentGraph.add(mockComponentNode(ComponentTakingInterface.class));
@@ -130,7 +141,7 @@ public class ComponentGraphTest {
}
@Test
- public void private_class_with_public_ctor_can_be_instantiated() {
+ void private_class_with_public_ctor_can_be_instantiated() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(PrivateClassComponent.class));
componentGraph.complete();
@@ -140,7 +151,7 @@ public class ComponentGraphTest {
}
@Test
- public void all_components_of_a_type_can_be_injected() {
+ void all_components_of_a_type_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(SimpleComponent.class));
componentGraph.add(mockComponentNode(SimpleComponent.class));
@@ -153,7 +164,7 @@ public class ComponentGraphTest {
}
@Test
- public void empty_component_registry_can_be_injected() {
+ void empty_component_registry_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ComponentTakingAllSimpleComponents.class));
componentGraph.complete();
@@ -163,7 +174,7 @@ public class ComponentGraphTest {
}
@Test
- public void component_registry_with_wildcard_upper_bound_can_be_injected() {
+ void component_registry_with_wildcard_upper_bound_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(SimpleComponent.class));
componentGraph.add(mockComponentNode(SimpleDerivedComponent.class));
@@ -175,22 +186,24 @@ public class ComponentGraphTest {
assertEquals(2, instance.simpleComponents.allComponents().size());
}
- @Test(expected = RuntimeException.class)
- public void require_exception_when_injecting_registry_with_unknown_type_variable() {
- @SuppressWarnings("rawtypes")
- Class<ComponentTakingAllComponentsWithTypeVariable> clazz = ComponentTakingAllComponentsWithTypeVariable.class;
+ @Test
+ void require_exception_when_injecting_registry_with_unknown_type_variable() {
+ assertThrows(RuntimeException.class, () -> {
+ @SuppressWarnings("rawtypes")
+ Class<ComponentTakingAllComponentsWithTypeVariable> clazz = ComponentTakingAllComponentsWithTypeVariable.class;
- ComponentGraph componentGraph = new ComponentGraph();
- componentGraph.add(mockComponentNode(SimpleComponent.class));
- componentGraph.add(mockComponentNode(SimpleDerivedComponent.class));
- componentGraph.add(mockComponentNode(clazz));
- componentGraph.complete();
+ ComponentGraph componentGraph = new ComponentGraph();
+ componentGraph.add(mockComponentNode(SimpleComponent.class));
+ componentGraph.add(mockComponentNode(SimpleDerivedComponent.class));
+ componentGraph.add(mockComponentNode(clazz));
+ componentGraph.complete();
- componentGraph.getInstance(clazz);
+ componentGraph.getInstance(clazz);
+ });
}
@Test
- public void components_are_shared() {
+ void components_are_shared() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(SimpleComponent.class));
componentGraph.complete();
@@ -201,7 +214,7 @@ public class ComponentGraphTest {
}
@Test
- public void singleton_components_can_be_injected() {
+ void singleton_components_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
String configId = "raw:stringVal \"test-value\"";
@@ -216,17 +229,19 @@ public class ComponentGraphTest {
assertEquals("test-value", injected.config.stringVal());
}
- @Test(expected = RuntimeException.class)
- public void require_error_when_multiple_components_match_a_singleton_dependency() {
- ComponentGraph componentGraph = new ComponentGraph();
- componentGraph.add(mockComponentNode(SimpleDerivedComponent.class));
- componentGraph.add(mockComponentNode(SimpleComponent.class));
- componentGraph.add(mockComponentNode(ComponentTakingComponent.class));
- componentGraph.complete();
+ @Test
+ void require_error_when_multiple_components_match_a_singleton_dependency() {
+ assertThrows(RuntimeException.class, () -> {
+ ComponentGraph componentGraph = new ComponentGraph();
+ componentGraph.add(mockComponentNode(SimpleDerivedComponent.class));
+ componentGraph.add(mockComponentNode(SimpleComponent.class));
+ componentGraph.add(mockComponentNode(ComponentTakingComponent.class));
+ componentGraph.complete();
+ });
}
@Test
- public void named_component_can_be_injected() {
+ void named_component_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(SimpleComponent.class));
componentGraph.add(mockComponentNode(SimpleComponent.class, Names.named("named-test")));
@@ -235,7 +250,7 @@ public class ComponentGraphTest {
}
@Test
- public void config_keys_can_be_retrieved() {
+ void config_keys_can_be_retrieved() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ComponentTakingConfig.class, "raw:stringVal \"component1\""));
componentGraph.add(mockComponentNode(ComponentTakingConfig.class, "raw:stringVal \"component2\""));
@@ -252,7 +267,7 @@ public class ComponentGraphTest {
}
@Test
- public void providers_can_be_instantiated() {
+ void providers_can_be_instantiated() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ExecutorProvider.class));
componentGraph.complete();
@@ -261,7 +276,7 @@ public class ComponentGraphTest {
}
@Test
- public void providers_can_be_inherited() {
+ void providers_can_be_inherited() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(DerivedExecutorProvider.class));
componentGraph.complete();
@@ -270,7 +285,7 @@ public class ComponentGraphTest {
}
@Test
- public void providers_can_deliver_a_new_instance_for_each_component() {
+ void providers_can_deliver_a_new_instance_for_each_component() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(NewIntProvider.class));
componentGraph.complete();
@@ -282,7 +297,7 @@ public class ComponentGraphTest {
}
@Test
- public void providers_can_be_injected_explicitly() {
+ void providers_can_be_injected_explicitly() {
ComponentGraph componentGraph = new ComponentGraph();
Node componentTakingExecutor = mockComponentNode(ComponentTakingExecutor.class);
@@ -299,7 +314,7 @@ public class ComponentGraphTest {
}
@Test
- public void global_providers_can_be_injected() {
+ void global_providers_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ComponentTakingExecutor.class));
@@ -310,18 +325,20 @@ public class ComponentGraphTest {
assertNotNull(componentGraph.getInstance(ComponentTakingExecutor.class));
}
- @Test(expected = RuntimeException.class)
- public void throw_if_multiple_global_providers_exist() {
- ComponentGraph componentGraph = new ComponentGraph();
+ @Test
+ void throw_if_multiple_global_providers_exist() {
+ assertThrows(RuntimeException.class, () -> {
+ ComponentGraph componentGraph = new ComponentGraph();
- componentGraph.add(mockComponentNode(ExecutorProvider.class));
- componentGraph.add(mockComponentNode(ExecutorProvider.class));
- componentGraph.add(mockComponentNode(ComponentTakingExecutor.class));
- componentGraph.complete();
+ componentGraph.add(mockComponentNode(ExecutorProvider.class));
+ componentGraph.add(mockComponentNode(ExecutorProvider.class));
+ componentGraph.add(mockComponentNode(ComponentTakingExecutor.class));
+ componentGraph.complete();
+ });
}
@Test
- public void provider_is_not_used_when_component_of_provided_class_exists() {
+ void provider_is_not_used_when_component_of_provided_class_exists() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(SimpleComponent.class));
@@ -335,13 +352,13 @@ public class ComponentGraphTest {
//TODO: move
@Test
- public void check_if_annotation_is_a_binding_annotation() {
+ void check_if_annotation_is_a_binding_annotation() {
assertTrue(isBindingAnnotation(Names.named("name")));
assertFalse(isBindingAnnotation(Named.class.getAnnotations()[0]));
}
@Test
- public void cycles_gives_exception() {
+ void cycles_gives_exception() {
ComponentGraph componentGraph = new ComponentGraph();
Node node1 = mockComponentNode(ComponentCausingCycle.class);
@@ -362,18 +379,20 @@ public class ComponentGraphTest {
}
}
- @Test(expected = IllegalArgumentException.class)
- public void abstract_classes_are_rejected() {
- new ComponentNode(ComponentId.fromString("Test"), "", AbstractClass.class);
+ @Test
+ void abstract_classes_are_rejected() {
+ assertThrows(IllegalArgumentException.class, () -> {
+ new ComponentNode(ComponentId.fromString("Test"), "", AbstractClass.class);
+ });
}
@Test
- public void inject_constructor_is_preferred() {
+ void inject_constructor_is_preferred() {
assertThatComponentCanBeCreated(ComponentWithInjectConstructor.class);
}
@Test
- public void constructor_with_most_parameters_is_preferred() {
+ void constructor_with_most_parameters_is_preferred() {
assertThatComponentCanBeCreated(ComponentWithMultipleConstructors.class);
}
@@ -390,7 +409,7 @@ public class ComponentGraphTest {
}
@Test
- public void require_fallback_to_child_injector() {
+ void require_fallback_to_child_injector() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ComponentTakingExecutor.class));
@@ -400,7 +419,7 @@ public class ComponentGraphTest {
}
@Test
- public void child_injector_can_inject_multiple_instances_for_same_key() {
+ void child_injector_can_inject_multiple_instances_for_same_key() {
Pair<Integer, Pair<Executor, Executor>> graph = buildGraphWithChildInjector(Executors::newSingleThreadExecutor);
int graphSize = graph.getFirst();
Executor executorA = graph.getSecond().getFirst();
@@ -411,7 +430,7 @@ public class ComponentGraphTest {
}
@Test
- public void components_injected_via_child_injector_can_be_shared() {
+ void components_injected_via_child_injector_can_be_shared() {
Executor commonExecutor = Executors.newSingleThreadExecutor();
Pair<Integer, Pair<Executor, Executor>> graph = buildGraphWithChildInjector(() -> commonExecutor);
int graphSize = graph.getFirst();
@@ -445,7 +464,7 @@ public class ComponentGraphTest {
}
@Test
- public void providers_can_be_reused() {
+ void providers_can_be_reused() {
ComponentGraph oldGraph = createReusingGraph();
Executor executor = oldGraph.getInstance(Executor.class);
@@ -466,7 +485,7 @@ public class ComponentGraphTest {
}
@Test
- public void component_id_can_be_injected() {
+ void component_id_can_be_injected() {
String componentId = "myId:1.2@namespace";
ComponentGraph componentGraph = new ComponentGraph();
@@ -513,7 +532,7 @@ public class ComponentGraphTest {
}
public static class ComponentTakingComponent extends AbstractComponent {
- private final SimpleComponent injectedComponent;
+ final SimpleComponent injectedComponent;
public ComponentTakingComponent(SimpleComponent injectedComponent) {
assertNotNull(injectedComponent);
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java
index 1e3d67ed463..878c245a708 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/FallbackToGuiceInjectorTest.java
@@ -11,18 +11,15 @@ import com.yahoo.component.AbstractComponent;
import com.yahoo.component.ComponentId;
import com.yahoo.config.ConfigInstance;
import com.yahoo.vespa.config.ConfigKey;
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.*;
/**
* @author Tony Vaagenes
@@ -36,7 +33,7 @@ public class FallbackToGuiceInjectorTest {
private final Map<ConfigKey<? extends ConfigInstance>, ConfigInstance> configs = new HashMap<>();
- @Before
+ @BeforeEach
public void createGraph() {
injector = Guice.createInjector();
componentGraph = new ComponentGraph(0);
@@ -70,7 +67,7 @@ public class FallbackToGuiceInjectorTest {
}
@Test
- public void guice_injector_is_used_when_no_global_component_exists() {
+ void guice_injector_is_used_when_no_global_component_exists() {
setInjector(
Guice.createInjector(new AbstractModule() {
@Override
@@ -89,7 +86,7 @@ public class FallbackToGuiceInjectorTest {
}
@Test
- public void guice_injector_creates_a_new_instance_with_default_ctor_when_no_explicit_binding_exists() {
+ void guice_injector_creates_a_new_instance_with_default_ctor_when_no_explicit_binding_exists() {
setInjector(emptyGuiceInjector());
register(ComponentTakingDefaultString.class);
complete();
@@ -99,7 +96,7 @@ public class FallbackToGuiceInjectorTest {
}
@Test
- public void guice_injector_fails_when_no_explicit_binding_exists_and_class_has_no_default_ctor() {
+ void guice_injector_fails_when_no_explicit_binding_exists_and_class_has_no_default_ctor() {
setInjector(emptyGuiceInjector());
register(ComponentThatCannotBeConstructed.class);
try {
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java
index 29452f7babe..edd06e37e64 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ReuseComponentsTest.java
@@ -14,16 +14,14 @@ import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.ExecutorPro
import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleComponent;
import com.yahoo.container.di.componentgraph.core.ComponentGraphTest.SimpleComponent2;
import com.yahoo.vespa.config.ConfigKey;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.Collections;
import java.util.concurrent.Executor;
import java.util.function.Function;
import java.util.function.Supplier;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotSame;
-import static org.junit.Assert.assertSame;
+import static org.junit.jupiter.api.Assertions.*;
/**
* @author gjoranv
@@ -32,7 +30,7 @@ import static org.junit.Assert.assertSame;
*/
public class ReuseComponentsTest {
@Test
- public void require_that_component_is_reused_when_componentNode_is_unmodified() {
+ void require_that_component_is_reused_when_componentNode_is_unmodified() {
reuseAndTest(SimpleComponent.class, SimpleComponent.class);
reuseAndTest(ExecutorProvider.class, Executor.class);
}
@@ -48,22 +46,25 @@ public class ReuseComponentsTest {
assertSame(instance2, instance);
}
- @Test(expected = IllegalStateException.class)
- public void require_that_component_is_not_reused_when_class_is_changed() {
- ComponentGraph graph = buildGraphAndSetNoConfigs(SimpleComponent.class);
- SimpleComponent instance = getComponent(graph, SimpleComponent.class);
-
- ComponentGraph newGraph = buildGraphAndSetNoConfigs(SimpleComponent2.class);
- newGraph.reuseNodes(graph);
- SimpleComponent2 instance2 = getComponent(newGraph, SimpleComponent2.class);
-
- assertEquals(instance2.getId(),instance.getId());
- @SuppressWarnings("unused")
- SimpleComponent throwsException = getComponent(newGraph, SimpleComponent.class);
+ @Test
+ void require_that_component_is_not_reused_when_class_is_changed() {
+ assertThrows(IllegalStateException.class, () -> {
+ ComponentGraph graph = buildGraphAndSetNoConfigs(SimpleComponent.class);
+ SimpleComponent instance = getComponent(graph, SimpleComponent.class);
+
+ ComponentGraph newGraph = buildGraphAndSetNoConfigs(SimpleComponent2.class);
+ newGraph.reuseNodes(graph);
+ SimpleComponent2 instance2 = getComponent(newGraph, SimpleComponent2.class);
+
+ assertEquals(instance2.getId(), instance.getId());
+ @SuppressWarnings("unused")
+ SimpleComponent throwsException = getComponent(newGraph, SimpleComponent.class);
+ });
}
+ @SuppressWarnings("deprecation")
@Test
- public void require_that_component_is_not_reused_when_config_is_changed() {
+ void require_that_component_is_not_reused_when_config_is_changed() {
Class<ComponentTakingConfig> componentClass = ComponentTakingConfig.class;
ComponentGraph graph = buildGraph(componentClass);
@@ -80,8 +81,9 @@ public class ReuseComponentsTest {
assertNotSame(instance2, instance);
}
+ @SuppressWarnings("deprecation")
@Test
- public void require_that_component_is_not_reused_when_injected_component_is_changed() {
+ void require_that_component_is_not_reused_when_injected_component_is_changed() {
Function<String, ComponentGraph> buildGraph = config -> {
ComponentGraph graph = new ComponentGraph();
@@ -113,7 +115,7 @@ public class ReuseComponentsTest {
}
@Test
- public void require_that_component_is_not_reused_when_injected_component_registry_has_one_component_removed() {
+ void require_that_component_is_not_reused_when_injected_component_registry_has_one_component_removed() {
Function<Boolean, ComponentGraph> buildGraph = useBothInjectedComponents -> {
ComponentGraph graph = new ComponentGraph();
graph.add(mockComponentNode(ComponentTakingAllSimpleComponents.class, "root_component"));
@@ -144,8 +146,9 @@ public class ReuseComponentsTest {
assertNotSame(newSimpleComponentRegistry, oldSimpleComponentRegistry);
}
+ @SuppressWarnings("deprecation")
@Test
- public void require_that_injected_component_is_reused_even_when_dependent_component_is_changed() {
+ void require_that_injected_component_is_reused_even_when_dependent_component_is_changed() {
Function<String, ComponentGraph> buildGraph = config -> {
ComponentGraph graph = new ComponentGraph();
@@ -180,7 +183,7 @@ public class ReuseComponentsTest {
}
@Test
- public void require_that_node_depending_on_guice_node_is_reused() {
+ void require_that_node_depending_on_guice_node_is_reused() {
Supplier<ComponentGraph> makeGraph = () -> {
ComponentGraph graph = new ComponentGraph();
graph.add(mockComponentNode(ComponentTakingExecutor.class, "dummyId"));
@@ -199,7 +202,7 @@ public class ReuseComponentsTest {
}
@Test
- public void require_that_node_equals_only_checks_first_level_components_to_inject() {
+ void require_that_node_equals_only_checks_first_level_components_to_inject() {
Function<String, Node> createNodeWithInjectedNodeWithInjectedNode = indirectlyInjectedComponentId -> {
ComponentNode targetComponent = mockComponentNode(SimpleComponent.class, "target");
ComponentNode directlyInjectedComponent = mockComponentNode(SimpleComponent.class, "directlyInjected");
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java
index 65fbdc578aa..b7ce61c2f1a 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/CycleFinderTest.java
@@ -2,7 +2,7 @@
package com.yahoo.container.di.componentgraph.cycle;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.List;
@@ -10,7 +10,7 @@ import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertic
import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertices.B;
import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertices.C;
import static com.yahoo.container.di.componentgraph.cycle.CycleFinderTest.Vertices.D;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
/**
* @author gjoranv
@@ -20,7 +20,7 @@ public class CycleFinderTest {
enum Vertices {A, B, C, D}
@Test
- public void graph_without_cycles_returns_no_cycle() {
+ void graph_without_cycles_returns_no_cycle() {
var graph = new Graph<Vertices>();
graph.edge(A, B);
graph.edge(B, C);
@@ -32,7 +32,7 @@ public class CycleFinderTest {
}
@Test
- public void graph_with_cycle_returns_cycle() {
+ void graph_with_cycle_returns_cycle() {
var graph = new Graph<Vertices>();
graph.edge(A, B);
graph.edge(B, C);
@@ -43,7 +43,7 @@ public class CycleFinderTest {
}
@Test
- public void graph_with_self_referencing_vertex_returns_cycle() {
+ void graph_with_self_referencing_vertex_returns_cycle() {
var graph = new Graph<Vertices>();
graph.edge(A, A);
@@ -52,7 +52,7 @@ public class CycleFinderTest {
}
@Test
- public void leading_nodes_are_stripped_from_cycle() {
+ void leading_nodes_are_stripped_from_cycle() {
var graph = new Graph<Vertices>();
graph.edge(A, B);
graph.edge(B, C);
@@ -63,7 +63,7 @@ public class CycleFinderTest {
}
@Test
- public void findCycle_is_idempotent_with_cycle() {
+ void findCycle_is_idempotent_with_cycle() {
var graph = new Graph<Vertices>();
graph.edge(A, A);
@@ -73,7 +73,7 @@ public class CycleFinderTest {
}
@Test
- public void findCycle_is_idempotent_without_cycle() {
+ void findCycle_is_idempotent_without_cycle() {
var graph = new Graph<Vertices>();
graph.edge(A, B);
diff --git a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java
index 526e683ad46..d945b4f0544 100644
--- a/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java
+++ b/container-core/src/test/java/com/yahoo/container/di/componentgraph/cycle/GraphTest.java
@@ -2,16 +2,14 @@
package com.yahoo.container.di.componentgraph.cycle;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import java.util.List;
import static com.yahoo.container.di.componentgraph.cycle.GraphTest.Vertices.A;
import static com.yahoo.container.di.componentgraph.cycle.GraphTest.Vertices.B;
import static com.yahoo.container.di.componentgraph.cycle.GraphTest.Vertices.C;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.*;
/**
* @author gjoranv
@@ -21,7 +19,7 @@ public class GraphTest {
enum Vertices {A, B, C}
@Test
- public void vertices_and_edges_are_added_and_can_be_retrieved() {
+ void vertices_and_edges_are_added_and_can_be_retrieved() {
var graph = new Graph<Vertices>();
graph.edge(A, B);
graph.edge(B, C);
@@ -34,7 +32,7 @@ public class GraphTest {
}
@Test
- public void null_vertices_are_not_allowed() {
+ void null_vertices_are_not_allowed() {
var graph = new Graph<Vertices>();
try {
@@ -46,7 +44,7 @@ public class GraphTest {
}
@Test
- public void duplicate_edges_are_ignored() {
+ void duplicate_edges_are_ignored() {
var graph = new Graph<Vertices>();
graph.edge(A, B);
graph.edge(A, B);
@@ -55,7 +53,7 @@ public class GraphTest {
}
@Test
- public void self_edges_are_allowed() {
+ void self_edges_are_allowed() {
var graph = new Graph<Vertices>();
graph.edge(A, A);