@Test(dependsOnMethods = "testChildContext") public void testContextAwareCounter() { ContextAwareCounter jobRecordsProcessed = this.context.contextAwareCounter(RECORDS_PROCESSED); Assert.assertEquals( this.context.getCounters().get(jobRecordsProcessed.getName()), jobRecordsProcessed.getInnerMetric()); Assert.assertEquals(jobRecordsProcessed.getContext(), this.context); Assert.assertEquals(jobRecordsProcessed.getName(), RECORDS_PROCESSED); jobRecordsProcessed.inc(); Assert.assertEquals(jobRecordsProcessed.getCount(), 1l); jobRecordsProcessed.inc(5); Assert.assertEquals(jobRecordsProcessed.getCount(), 6l); jobRecordsProcessed.dec(); Assert.assertEquals(jobRecordsProcessed.getCount(), 5l); jobRecordsProcessed.dec(3); Assert.assertEquals(jobRecordsProcessed.getCount(), 2l); ContextAwareCounter taskRecordsProcessed = this.childContext.contextAwareCounter(RECORDS_PROCESSED); Assert.assertEquals( this.childContext.getCounters().get(taskRecordsProcessed.getName()), taskRecordsProcessed.getInnerMetric()); Assert.assertEquals(taskRecordsProcessed.getContext(), this.childContext); Assert.assertEquals(taskRecordsProcessed.getName(), RECORDS_PROCESSED); taskRecordsProcessed.inc(); Assert.assertEquals(taskRecordsProcessed.getCount(), 1l); Assert.assertEquals(jobRecordsProcessed.getCount(), 3l); taskRecordsProcessed.inc(3); Assert.assertEquals(taskRecordsProcessed.getCount(), 4l); Assert.assertEquals(jobRecordsProcessed.getCount(), 6l); taskRecordsProcessed.dec(4); Assert.assertEquals(taskRecordsProcessed.getCount(), 0l); Assert.assertEquals(jobRecordsProcessed.getCount(), 2l); }