| /* |
| * Copyright (c) 2016 Mockito contributors |
| * This program is made available under the terms of the MIT License. |
| */ |
| package org.mockito.internal.util; |
| |
| import static org.mockito.internal.exceptions.Reporter.cannotCreateTimerWithNegativeDurationTime; |
| |
| public class Timer { |
| |
| private final long durationMillis; |
| private long startTime = -1; |
| |
| public Timer(long durationMillis) { |
| validateInput(durationMillis); |
| this.durationMillis = durationMillis; |
| } |
| |
| /** |
| * Informs whether the timer is still counting down. |
| */ |
| public boolean isCounting() { |
| assert startTime != -1; |
| return System.currentTimeMillis() - startTime <= durationMillis; |
| } |
| |
| /** |
| * Starts the timer count down. |
| */ |
| public void start() { |
| startTime = System.currentTimeMillis(); |
| } |
| |
| private void validateInput(long durationMillis) { |
| if (durationMillis < 0) { |
| throw cannotCreateTimerWithNegativeDurationTime(durationMillis); |
| } |
| } |
| |
| public long duration() { |
| return durationMillis; |
| } |
| } |