package de.juplo.demo;
+import java.net.DatagramSocket;
+import java.net.InetAddress;
+import java.net.SocketException;
+import java.net.UnknownHostException;
import lombok.extern.slf4j.Slf4j;
+import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.remote.RemoteWebDriver;
import org.springframework.boot.test.context.SpringBootTest;
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
-import org.springframework.test.web.reactive.server.WebTestClient;
+import org.springframework.boot.web.server.LocalServerPort;
/**
* Integration-Test for the {@link DemoController}.
* @author Kai Moritz
*/
-@SpringBootTest(webEnvironment = RANDOM_PORT, classes = DemoController.class)
+@SpringBootTest(webEnvironment = RANDOM_PORT)
+@ExtendWith(WebDriverExtension.class)
@Slf4j
public class DemoControllerIT
{
- @Autowired
- WebTestClient client;
+ @LocalServerPort
+ int port;
+ String baseUri;
+
+
+ @BeforeEach()
+ void generateBaseUri()
+ {
+ try (final DatagramSocket socket = new DatagramSocket())
+ {
+ socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
+ baseUri =
+ "http://" +
+ socket.getLocalAddress().getHostAddress() +
+ ":" +
+ port;
+ }
+ catch (SocketException | UnknownHostException e)
+ {
+ throw new RuntimeException(e);
+ }
+ }
@Test
- void testSubmit()
+ void testSubmit(RemoteWebDriver driver)
{
-
+ driver.get(baseUri + "/");
+ log.info("Fetched page:\n\n{}\n", driver.getPageSource());
+
+ WebElement submit = driver.findElement(By.cssSelector(".card-footer > button"));
+ assertThat(submit).isNotNull();
}
}