diff options
Diffstat (limited to 'container-di/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java')
-rw-r--r-- | container-di/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/container-di/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java b/container-di/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java index 8d323233ef5..db150ba0599 100644 --- a/container-di/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java +++ b/container-di/src/test/java/com/yahoo/container/di/componentgraph/core/ComponentGraphTest.java @@ -105,6 +105,17 @@ public class ComponentGraphTest { } @Test + public void interface_implementation_can_be_injected() { + ComponentGraph componentGraph = new ComponentGraph(); + componentGraph.add(mockComponentNode(ComponentImpl.class)); + componentGraph.add(mockComponentNode(ComponentTakingInterface.class)); + componentGraph.complete(); + + ComponentTakingInterface instance = componentGraph.getInstance(ComponentTakingInterface.class); + assertTrue(instance.injected instanceof ComponentImpl); + } + + @Test public void all_components_of_a_type_can_be_injected() { ComponentGraph componentGraph = new ComponentGraph(); componentGraph.add(mockComponentNode(SimpleComponent.class)); @@ -474,6 +485,15 @@ public class ComponentGraphTest { public static class SimpleDerivedComponent extends SimpleComponent { } + public interface ComponentBase { } + public static class ComponentImpl implements ComponentBase { } + public static class ComponentTakingInterface { + ComponentBase injected; + public ComponentTakingInterface(ComponentBase componentBase) { + injected = componentBase; + } + } + public static class ComponentTakingConfig extends SimpleComponent { private final TestConfig config; |