ElapsedTimer extends InfoBox { @Override public String getText() { if (startTime == null) { return null; } Duration time = Duration.between(startTime, lastTime == null ? Instant.now() : lastTime); final String formatString = "mm:ss"; return DurationFormatUtils.formatDuration(time.toMillis(), formatString, true); } ElapsedTimer(BufferedImage image, TimersPlugin plugin, Instant startTime, Instant lastTime); @Override String getText(); @Override Color getTextColor(); @Override String getTooltip();  }
@Test public void testGetText() { final Instant now = Instant.now(); final Instant fiveSecondsAgo = now.minusSeconds(5); final Instant fiveMinutesAgo = now.minusSeconds(5 * 60); final Instant oneHourAgo = now.minusSeconds(60 * 60); final Instant fiveHoursAgo = now.minusSeconds(5 * 60 * 60); assertEquals("00:00", timerText(now, now)); assertEquals("00:00", timerText(now, null)); assertEquals("00:05", timerText(fiveSecondsAgo, now)); assertEquals("00:05", timerText(fiveSecondsAgo, null)); assertEquals("04:55", timerText(fiveMinutesAgo, fiveSecondsAgo)); assertEquals("05:00", timerText(fiveMinutesAgo, now)); assertEquals("05:00", timerText(fiveMinutesAgo, null)); assertEquals("55:00", timerText(oneHourAgo, fiveMinutesAgo)); assertEquals("59:55", timerText(oneHourAgo, fiveSecondsAgo)); assertEquals("60:00", timerText(oneHourAgo, now)); assertEquals("60:00", timerText(oneHourAgo, null)); assertEquals("240:00", timerText(fiveHoursAgo, oneHourAgo)); assertEquals("295:00", timerText(fiveHoursAgo, fiveMinutesAgo)); assertEquals("299:55", timerText(fiveHoursAgo, fiveSecondsAgo)); assertEquals("300:00", timerText(fiveHoursAgo, now)); assertEquals("300:00", timerText(fiveHoursAgo, null)); }