1 /* 2 * Copyright (c) 2016 Mockito contributors 3 * This program is made available under the terms of the MIT License. 4 */ 5 package org.mockito.internal.util; 6 7 import static org.mockito.internal.exceptions.Reporter.cannotCreateTimerWithNegativeDurationTime; 8 9 public class Timer { 10 11 private final long durationMillis; 12 private long startTime = -1; 13 Timer(long durationMillis)14 public Timer(long durationMillis) { 15 validateInput(durationMillis); 16 this.durationMillis = durationMillis; 17 } 18 19 /** 20 * Informs whether the timer is still counting down. 21 */ isCounting()22 public boolean isCounting() { 23 assert startTime != -1; 24 return System.currentTimeMillis() - startTime <= durationMillis; 25 } 26 27 /** 28 * Starts the timer count down. 29 */ start()30 public void start() { 31 startTime = System.currentTimeMillis(); 32 } 33 validateInput(long durationMillis)34 private void validateInput(long durationMillis) { 35 if (durationMillis < 0) { 36 throw cannotCreateTimerWithNegativeDurationTime(durationMillis); 37 } 38 } 39 duration()40 public long duration() { 41 return durationMillis; 42 } 43 } 44