• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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