aboutsummaryrefslogtreecommitdiffstats
path: root/container-di/src/test/java/demo/DeconstructTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-di/src/test/java/demo/DeconstructTest.java')
-rw-r--r--container-di/src/test/java/demo/DeconstructTest.java35
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);
+ }
+}