### Question:
FluentDriverTimeoutConfigurer { public void configureDriver() { if (driver != null && driver.manage() != null && driver.manage().timeouts() != null) { configurePageLoadTimeout(); configureImplicitlyWait(); configureScriptTimeout(); } } FluentDriverTimeoutConfigurer(Configuration configuration, WebDriver driver); void configureDriver();  }### Answer:
@Test public void shouldConfigurePageLoadTimeout() { mockWebDriver(); mockConfigurationValues(2000L, null, null); timeoutConfigurer.configureDriver(); verify(timeouts).pageLoadTimeout(2000L, TimeUnit.MILLISECONDS); verifyNoMoreInteractions(timeouts); }
@Test public void shouldConfigureImplicitlyWait() { mockWebDriver(); mockConfigurationValues(null, 2000L, null); timeoutConfigurer.configureDriver(); verify(timeouts).implicitlyWait(2000L, TimeUnit.MILLISECONDS); verifyNoMoreInteractions(timeouts); }
@Test public void shouldConfigureScriptTimeout() { mockWebDriver(); mockConfigurationValues(null, null, 2000L); timeoutConfigurer.configureDriver(); verify(timeouts).setScriptTimeout(2000L, TimeUnit.MILLISECONDS); verifyNoMoreInteractions(timeouts); }
@Test public void shouldNotConfigureAnyTimeout() { FluentDriverTimeoutConfigurer configurer = new FluentDriverTimeoutConfigurer(configuration, null); configurer.configureDriver(); verify(webDriver, never()).manage(); }