diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2020-01-06 12:02:46 +0100 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2020-01-06 12:02:46 +0100 |
commit | 88cc1f5da8ded831b15f4970e8877494d449a471 (patch) | |
tree | fcf3141fd7acbf19b87ea4eb215e39220137aa09 /src/test/java/pl/edu/mimuw | |
parent | 89a5d7b00f71a5be805ecc7e7907e5b0c88c5f03 (diff) |
Prune hierarchy of stale zones on read
Diffstat (limited to 'src/test/java/pl/edu/mimuw')
-rw-r--r-- | src/test/java/pl/edu/mimuw/cloudatlas/agent/modules/StanikTest.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/agent/modules/StanikTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/agent/modules/StanikTest.java index 1ca8608..f3ea0b0 100644 --- a/src/test/java/pl/edu/mimuw/cloudatlas/agent/modules/StanikTest.java +++ b/src/test/java/pl/edu/mimuw/cloudatlas/agent/modules/StanikTest.java @@ -35,10 +35,11 @@ public class StanikTest { private Stanik stanik; private MockExecutor executor; private ValueTime testTime; + private static final long freshnessPeriod = 1000; @Before public void setupLocals() { - stanik = new Stanik(); + stanik = new Stanik(freshnessPeriod); executor = new MockExecutor(stanik); testTime = ValueUtils.currentTime(); } @@ -157,7 +158,7 @@ public class StanikTest { public void dontApplyWithStaleTimestamp() throws Exception { AttributesMap attributes = new AttributesMap(); attributes.add("foo", new ValueInt(1337l)); - attributes.add("timestamp", (ValueTime) testTime.subtract(new ValueDuration(61 * 1000l))); + attributes.add("timestamp", (ValueTime) testTime.subtract(new ValueDuration(freshnessPeriod + 100))); attributes.add("name", new ValueString("new")); UpdateAttributesMessage message = new UpdateAttributesMessage("test_msg", 0, "/new", attributes); stanik.handleTyped(message); @@ -166,6 +167,30 @@ public class StanikTest { } @Test + public void zoneRemovedAfterFreshnessPeriod() throws Exception { + AttributesMap attributes = new AttributesMap(); + attributes.add("foo", new ValueInt(1337l)); + attributes.add("timestamp", testTime); + attributes.add("name", new ValueString("new")); + UpdateAttributesMessage message = new UpdateAttributesMessage("test_msg", 0, "/new", attributes); + stanik.handleTyped(message); + Thread.sleep(freshnessPeriod + 100); + + AttributesMap attributes2 = new AttributesMap(); + attributes2.add("timestamp", ValueUtils.currentTime()); + UpdateAttributesMessage message2 = new UpdateAttributesMessage("test_msg", 0, "/", attributes2); + stanik.handleTyped(message2); + + GetStateMessage getStateMessage = new GetStateMessage("", 0, ModuleType.TEST, 0); + stanik.handleTyped(getStateMessage); + + StateMessage newReceivedMessage = (StateMessage) executor.messagesToPass.poll(); + assertNotNull(newReceivedMessage); + assertFalse(newReceivedMessage.getZMI().descendantExists(new PathName("/new"))); + assertFalse(stanik.getHierarchy().descendantExists(new PathName("/new"))); + } + + @Test public void addQuery() throws Exception { HashMap<Attribute, Entry<ValueQuery, ValueTime>> queries = new HashMap<Attribute, Entry<ValueQuery, ValueTime>>(); queries.put(new Attribute("&query"), new SimpleImmutableEntry(new ValueQuery("SELECT 1 AS one"), new ValueTime(42l))); |