diff options
Diffstat (limited to 'container-di/src/test/java/demo/DeconstructTest.java')
-rw-r--r-- | container-di/src/test/java/demo/DeconstructTest.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/container-di/src/test/java/demo/DeconstructTest.java b/container-di/src/test/java/demo/DeconstructTest.java new file mode 100644 index 00000000000..10e9844f6de --- /dev/null +++ b/container-di/src/test/java/demo/DeconstructTest.java @@ -0,0 +1,35 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package demo; + +import com.yahoo.container.di.ContainerTest; +import org.junit.Test; + +import static org.junit.Assert.assertTrue; + +/** + * @author tonytv + * @author gjoranv + */ +public class DeconstructTest extends ContainerTestBase { + public static class DeconstructableComponent extends ContainerTest.DestructableComponent { + private boolean isDeconstructed = false; + + @Override + public void deconstruct() { + isDeconstructed = true; + } + } + + @Test + public void require_that_unused_components_are_deconstructed() { + writeBootstrapConfigs("d1", DeconstructableComponent.class); + complete(); + + DeconstructableComponent d1 = getInstance(DeconstructableComponent.class); + + writeBootstrapConfigs("d2", DeconstructableComponent.class); + complete(); + + assertTrue(d1.isDeconstructed); + } +} |