|
1 | 1 | package info.novatec.testit.webtester.waiting;
|
2 | 2 |
|
3 | 3 | import static org.mockito.Mockito.atMost;
|
| 4 | +import static org.mockito.Mockito.doReturn; |
4 | 5 | import static org.mockito.Mockito.times;
|
5 | 6 | import static org.mockito.Mockito.verify;
|
6 | 7 | import static org.mockito.Mockito.when;
|
|
17 | 18 |
|
18 | 19 |
|
19 | 20 | @RunWith(MockitoJUnitRunner.class)
|
20 |
| -public class WaitsTest { |
| 21 | +public class WaitOperationsTest { |
21 | 22 |
|
22 | 23 | @Mock
|
23 | 24 | Supplier<Boolean> supplier;
|
24 | 25 |
|
25 | 26 | @Test
|
26 |
| - public void testGenericWaitUntil_GoodCase() { |
27 |
| - when(supplier.get()).thenReturn(false, false, true); |
28 |
| - WaitOperations.waitUntil(100, TimeUnit.MILLISECONDS, 20, supplier); |
29 |
| - verify(supplier, times(3)).get(); |
| 27 | + public void conditionIsCheckedAtLeastOnceEvenWithoutTimeout() { |
| 28 | + doReturn(true).when(supplier).get(); |
| 29 | + WaitOperations.waitUntil(0, TimeUnit.MILLISECONDS, 100, supplier); |
| 30 | + verify(supplier, times(1)).get(); |
30 | 31 | }
|
31 | 32 |
|
32 | 33 | @Test(expected = TimeoutException.class)
|
33 |
| - public void testGenericWaitUntil_BadCase() { |
| 34 | + public void conditionIsCheckedAtMostTimeoutDividedByIntervalTimes() { |
| 35 | + doReturn(false).when(supplier).get(); |
34 | 36 | try {
|
35 |
| - when(supplier.get()).thenReturn(false); |
36 | 37 | WaitOperations.waitUntil(50, TimeUnit.MILLISECONDS, 25, supplier);
|
37 | 38 | } finally {
|
38 | 39 | verify(supplier, atMost(2)).get();
|
39 | 40 | }
|
40 | 41 | }
|
41 | 42 |
|
42 | 43 | @Test
|
43 |
| - public void testGenericWaitUntil_OriginalExceptionAsCauseOfTimeout() { |
| 44 | + public void conditionIsCheckedUntilItMatches() { |
| 45 | + when(supplier.get()).thenReturn(false, false, true); |
| 46 | + WaitOperations.waitUntil(100, TimeUnit.MILLISECONDS, 5, supplier); |
| 47 | + verify(supplier, times(3)).get(); |
| 48 | + } |
| 49 | + |
| 50 | + @Test |
| 51 | + public void timeoutExceptionHasOriginalExceptionAsItsCause() { |
44 | 52 | Throwable expected = new IllegalStateException();
|
45 | 53 | try {
|
46 | 54 | when(supplier.get()).thenThrow(expected);
|
47 |
| - WaitOperations.waitUntil(50, TimeUnit.MILLISECONDS, 25, supplier); |
| 55 | + WaitOperations.waitUntil(0, TimeUnit.MILLISECONDS, 0, supplier); |
48 | 56 | Assert.fail("exception not reached");
|
49 | 57 | } catch (TimeoutException e) {
|
50 | 58 | Assertions.assertThat(e.getCause()).isSameAs(expected);
|
51 | 59 | }
|
52 | 60 | }
|
53 | 61 |
|
| 62 | + |
54 | 63 | }
|
0 commit comments