package org.fluentlenium.core.hook.wait; import org.fluentlenium.core.wait.FluentWait; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.runners.MockitoJUnitRunner; import java.util.concurrent.TimeUnit; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Matchers.any; import static org.mockito.Mockito.never; @RunWith(MockitoJUnitRunner.class) public class WaitHookOptionsTest { @Mock private FluentWait wait; private WaitHookOptions waitHookOptions; @Before public void before() { waitHookOptions = new WaitHookOptions(); } @Test public void testDefaultValues() { assertThat(waitHookOptions.getAtMost()).isNull(); assertThat(waitHookOptions.getTimeUnit()).isEqualTo(TimeUnit.MILLISECONDS); assertThat(waitHookOptions.getPollingEvery()).isNull(); assertThat(waitHookOptions.getPollingTimeUnit()).isEqualTo(TimeUnit.MILLISECONDS); assertThat(waitHookOptions.getIgnoreAll()).isEmpty(); assertThat(waitHookOptions.isWithNoDefaultsException()).isFalse(); } @Test public void testDefaultValuesConfigureAwait() { waitHookOptions.configureAwait(wait); Mockito.verify(wait, never()).atMost(any(Integer.class)); Mockito.verify(wait, never()).atMost(any(Integer.class), any(TimeUnit.class)); Mockito.verify(wait, never()).pollingEvery(any(Integer.class)); Mockito.verify(wait, never()).pollingEvery(any(Integer.class), any(TimeUnit.class)); } @Test public void testCustomConfigureAwait() { waitHookOptions.setWithNoDefaultsException(true); waitHookOptions.configureAwait(wait); Mockito.verify(wait).withNoDefaultsException(); } }