@Test public void testHeartbeatReceiving() { Assert.assertFalse(fD.isFailed("id", 0)); fD.registerMonitored("id", 0, 100, 50); Assert.assertFalse(fD.isFailed("id", 10)); Assert.assertEquals(10, fD.getIdleTime("id", 10).longValue()); Assert.assertEquals(40, fD.getTimeToNextPing("id", 10).longValue()); // timeout/2 fD.messageSent("id", 50, MessageType.PING); Assert.assertFalse(fD.isFailed("id", 60)); Assert.assertEquals(80, fD.getIdleTime("id", 80).longValue()); fD.messageReceived("id", 90, MessageType.PING); Assert.assertFalse(fD.isFailed("id", 120)); Assert.assertEquals(30, fD.getIdleTime("id", 120).longValue()); Assert.assertTrue(fD.isFailed("id", 210)); }
@Test public void testNoPingNoHeartbeat() { Assert.assertFalse(fD.isFailed("id", 0)); fD.registerMonitored("id", 0, 100, 50); Assert.assertFalse(fD.isFailed("id", 10)); Assert.assertFalse(fD.shouldPing("id", 10)); Assert.assertEquals(10, fD.getIdleTime("id", 10).longValue()); Assert.assertEquals(40, fD.getTimeToNextPing("id", 10).longValue()); // timeout/2 Assert.assertFalse(fD.isFailed("id", 80)); Assert.assertTrue(fD.shouldPing("id", 80)); Assert.assertEquals(80, fD.getIdleTime("id", 80).longValue()); // no ping sent, negative time to next ping Assert.assertEquals(-30, fD.getTimeToNextPing("id", 80).longValue()); // one interval grace period, should fail at t=200 Assert.assertFalse(fD.isFailed("id", 120)); Assert.assertTrue(fD.isFailed("id", 220)); fD.releaseMonitored("id"); Assert.assertFalse(fD.isFailed("id", 250)); Assert.assertFalse(fD.shouldPing("id", 250)); }
@Test public void testPingObjects() { // no hb, works like a fixed fd Assert.assertFalse(fD.isFailed("id", 0)); fD.registerMonitored("id", 0, 100, 50); Assert.assertFalse(fD.isFailed("id", 10)); Assert.assertFalse(fD.shouldPing("id", 10)); Assert.assertEquals(10, fD.getIdleTime("id", 10).longValue()); Assert.assertEquals(40, fD.getTimeToNextPing("id", 10).longValue()); // timeout/2 Assert.assertFalse(fD.isFailed("id", 50)); Assert.assertTrue(fD.shouldPing("id", 50)); Assert.assertEquals(80, fD.getIdleTime("id", 80).longValue()); Assert.assertEquals(-30, fD.getTimeToNextPing("id", 80).longValue()); fD.messageSent("id", 200, MessageType.PING); // We give a one interval grace period Assert.assertTrue(fD.isFailed("id", 220)); Assert.assertFalse(fD.shouldPing("id", 220)); Assert.assertEquals(220, fD.getIdleTime("id", 220).longValue()); Assert.assertEquals(30, fD.getTimeToNextPing("id", 220).longValue()); }