summaryrefslogtreecommitdiffstats
path: root/jdisc_core
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-05-30 11:12:50 +0200
committerBjørn Christian Seime <bjorncs@yahoo-inc.com>2017-05-30 11:19:46 +0200
commit3b2ab7feaa19498f876bb710e6ae41ebe6d4ad69 (patch)
tree675473d6ddfc978cc751dcbad9eec48ba6a9752e /jdisc_core
parent70e8ea955b7a349408c92fd6b8aeeddcccc8df59 (diff)
Add unit test for ActiveContainerStatistics
Diffstat (limited to 'jdisc_core')
-rw-r--r--jdisc_core/src/test/java/com/yahoo/jdisc/core/ActiveContainerStatisticsTest.java78
1 files changed, 78 insertions, 0 deletions
diff --git a/jdisc_core/src/test/java/com/yahoo/jdisc/core/ActiveContainerStatisticsTest.java b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ActiveContainerStatisticsTest.java
new file mode 100644
index 00000000000..8f04a0a54b3
--- /dev/null
+++ b/jdisc_core/src/test/java/com/yahoo/jdisc/core/ActiveContainerStatisticsTest.java
@@ -0,0 +1,78 @@
+package com.yahoo.jdisc.core;
+
+import com.yahoo.jdisc.Metric;
+import com.yahoo.jdisc.ResourceReference;
+import com.yahoo.jdisc.test.TestDriver;
+import org.junit.Test;
+
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+
+/**
+ * @author bjorncs
+ */
+public class ActiveContainerStatisticsTest {
+
+ @Test
+ public void counts_deactivated_activecontainers() {
+ TestDriver driver = TestDriver.newSimpleApplicationInstanceWithoutOsgi();
+ ActiveContainerStatistics stats = new ActiveContainerStatistics();
+ MockMetric metric = new MockMetric();
+
+ ActiveContainer containerWithoutRetainedResources = new ActiveContainer(driver.newContainerBuilder());
+
+ stats.onActivated(containerWithoutRetainedResources);
+ stats.emitMetrics(metric);
+ assertEquals(0, metric.totalCount);
+ assertEquals(0, metric.withRetainedReferencesCount);
+
+ stats.onDeactivated(containerWithoutRetainedResources);
+ containerWithoutRetainedResources.release();
+ stats.emitMetrics(metric);
+ assertEquals(1, metric.totalCount);
+ assertEquals(0, metric.withRetainedReferencesCount);
+
+ ActiveContainer containerWithRetainedResources = new ActiveContainer(driver.newContainerBuilder());
+
+ try (ResourceReference ignoredRef = containerWithRetainedResources.refer()) {
+ stats.onActivated(containerWithRetainedResources);
+ stats.onDeactivated(containerWithRetainedResources);
+ containerWithRetainedResources.release();
+ stats.emitMetrics(metric);
+ assertEquals(2, metric.totalCount);
+ assertEquals(1, metric.withRetainedReferencesCount);
+ }
+
+ }
+
+ private static class MockMetric implements Metric {
+ public int totalCount;
+ public int withRetainedReferencesCount;
+
+ @Override
+ public void set(String key, Number val, Context ctx) {
+ switch (key) {
+ case ActiveContainerStatistics.Metrics.TOTAL_DEACTIVATED_CONTAINERS:
+ totalCount = val.intValue();
+ break;
+ case ActiveContainerStatistics.Metrics.DEACTIVATED_CONTAINERS_WITH_RETAINED_REFERENCES:
+ withRetainedReferencesCount = val.intValue();
+ break;
+ default:
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ @Override
+ public void add(String key, Number val, Context ctx) {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public Context createContext(Map<String, ?> properties) {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+}