WIP
[demos/spring-boot] / src / test / java / de / juplo / demo / WebDriverExtension.java
index 25de95f..a2c5d0c 100644 (file)
@@ -3,6 +3,8 @@ package de.juplo.demo;
 
 import org.junit.jupiter.api.extension.BeforeEachCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.api.extension.ParameterContext;
+import org.junit.jupiter.api.extension.ParameterResolver;
 import org.openqa.selenium.WebDriver;
 import org.openqa.selenium.remote.DesiredCapabilities;
 import org.testcontainers.containers.BrowserWebDriverContainer;
@@ -14,7 +16,7 @@ import org.testcontainers.containers.BrowserWebDriverContainer;
  * {@link https://www.testcontainers.org/modules/webdriver_containers/ Testcontainers}.
  * @author Kai Moritz
  */
-public class WebDriverExtension implements BeforeEachCallback
+public class WebDriverExtension implements BeforeEachCallback, ParameterResolver
 {
   BrowserWebDriverContainer chrome;
 
@@ -24,4 +26,20 @@ public class WebDriverExtension implements BeforeEachCallback
   {
     chrome = new BrowserWebDriverContainer().withCapabilities(DesiredCapabilities.chrome());
   }
+
+  @Override
+  public boolean supportsParameter(
+      ParameterContext parameterContext,
+      ExtensionContext extensionContext)
+  {
+    return parameterContext.getParameter().getType() == BrowserWebDriverContainer.class;
+  }
+
+  @Override
+  public Object resolveParameter(
+      ParameterContext parameterContext,
+      ExtensionContext extensionContext)
+  {
+    return chrome;
+  }
 }