diff options
author | gjoranv <gv@verizonmedia.com> | 2019-10-24 12:06:41 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2019-10-24 12:06:41 +0200 |
commit | 3dc99c83b19793f72a3acc49b0c1580476ae754a (patch) | |
tree | 27c8722968ea50d19a1e5cae0300aaa7ca36d16c /container-di | |
parent | d36f55c5e067ebe8e929a23f236f8498144e785f (diff) |
Add unit test for component taking an interface.
Diffstat (limited to 'container-di')
-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; |