aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java')
-rw-r--r--container-core/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java130
1 files changed, 66 insertions, 64 deletions
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 5abb96527bd..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
@@ -65,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);
@@ -80,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);
@@ -97,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_explicitly_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);
@@ -121,7 +115,7 @@ public class ComponentGraphTest {
}
@Test
- public void explicitly_injected_components_may_be_unused() {
+ void explicitly_injected_components_may_be_unused() {
Node notUsingInjected = mockComponentNode(SimpleComponent.class);
Node injectedComponent = mockComponentNode(SimpleComponent2.class);
notUsingInjected.inject(injectedComponent);
@@ -136,7 +130,7 @@ public class ComponentGraphTest {
}
@Test
- public void interface_implementation_can_be_injected() {
+ void interface_implementation_can_be_injected() {
ComponentGraph componentGraph = new ComponentGraph();
componentGraph.add(mockComponentNode(ComponentImpl.class));
componentGraph.add(mockComponentNode(ComponentTakingInterface.class));
@@ -147,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();
@@ -157,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));
@@ -170,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();
@@ -180,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));
@@ -192,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();
@@ -218,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\"";
@@ -233,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")));
@@ -252,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\""));
@@ -269,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();
@@ -278,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();
@@ -287,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();
@@ -299,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);
@@ -316,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));
@@ -327,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));
@@ -352,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);
@@ -379,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);
}
@@ -407,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));
@@ -417,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();
@@ -428,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();
@@ -462,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);
@@ -483,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();