a2c5d0ccf7aecee55641d84b81f552c6044fff3c
[demos/spring-boot] / src / test / java / de / juplo / demo / WebDriverExtension.java
1 package de.juplo.demo;
2
3
4 import org.junit.jupiter.api.extension.BeforeEachCallback;
5 import org.junit.jupiter.api.extension.ExtensionContext;
6 import org.junit.jupiter.api.extension.ParameterContext;
7 import org.junit.jupiter.api.extension.ParameterResolver;
8 import org.openqa.selenium.WebDriver;
9 import org.openqa.selenium.remote.DesiredCapabilities;
10 import org.testcontainers.containers.BrowserWebDriverContainer;
11
12
13 /**
14  * An Extension for JUnit Jupiter, that starts a {@link WebDriver} with the
15  * help of
16  * {@link https://www.testcontainers.org/modules/webdriver_containers/ Testcontainers}.
17  * @author Kai Moritz
18  */
19 public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
20 {
21   BrowserWebDriverContainer chrome;
22
23
24   @Override
25   public void beforeEach(ExtensionContext context) throws Exception
26   {
27     chrome = new BrowserWebDriverContainer().withCapabilities(DesiredCapabilities.chrome());
28   }
29
30   @Override
31   public boolean supportsParameter(
32       ParameterContext parameterContext,
33       ExtensionContext extensionContext)
34   {
35     return parameterContext.getParameter().getType() == BrowserWebDriverContainer.class;
36   }
37
38   @Override
39   public Object resolveParameter(
40       ParameterContext parameterContext,
41       ExtensionContext extensionContext)
42   {
43     return chrome;
44   }
45 }