public void track(double timestamp) { track(timestamp, 1); }
@Test public void testTrackOnce() throws Exception { messageTracker.track(testTimestampInSec); ConcurrentMap<Double, TimeBucketMetadata> buckets = messageTracker.getTimeBucketsMap(); assertEquals(1, buckets.get(messageTracker.getBucketMapping(testTimestampInSec)).msgCount.get()); }
@Test public void testTrackMultiple() throws Exception { long totalMessages = 10; for (int i = 1; i <= totalMessages; i++) { messageTracker.track(testTimestampInSec + i); } ConcurrentMap<Double, TimeBucketMetadata> buckets = messageTracker.getTimeBucketsMap(); assertEquals(totalMessages, buckets.get(messageTracker.getBucketMapping(testTimestampInSec)).msgCount.get()); }
@Test public void testLastSeen() throws Exception { messageTracker.track(testTimestampInSec); ConcurrentMap<Double, TimeBucketMetadata> buckets = messageTracker.getTimeBucketsMap(); assertEquals(testTimestampInSec, buckets.get(messageTracker.getBucketMapping(testTimestampInSec)).lastMessageTimestampSeenInSec, 0.001); }
@Test public void testTrackReport() throws Exception { messageTracker.track(testTimestampInSec); ConcurrentMap<Double, TimeBucketMetadata> buckets = messageTracker.getTimeBucketsMap(); assertEquals(1, buckets.get(messageTracker.getBucketMapping(testTimestampInSec)).msgCount.get()); messageTracker.report(); buckets = messageTracker.getTimeBucketsMap(); assertEquals(0, buckets.size()); }
@Test public void testTrackMultipleBuckets() throws Exception { int totalMessages = 10; for (int i = 0; i < totalMessages; i++) { messageTracker.track(testTimestampInSec + 60000 * i); } // 10 time-buckets seen so far. ConcurrentMap<Double, TimeBucketMetadata> buckets = messageTracker.getTimeBucketsMap(); assertEquals(totalMessages, buckets.size()); messageTracker.report(); // All were cleared buckets = messageTracker.getTimeBucketsMap(); assertEquals(0, buckets.size()); }
@Test public void testReportMultiple() throws Exception { messageTracker.track(testTimestampInSec); // idempotent assertEquals(true, messageTracker.report()); assertEquals(true, messageTracker.report()); } }