|
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