WIP
[demos/spring-boot] / src / test / java / de / juplo / demo / DemoControllerIT.java
index d8a4580..bd9dcd2 100644 (file)
@@ -1,12 +1,21 @@
 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.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.boot.web.server.LocalServerPort;
 
 
 /**
@@ -18,9 +27,37 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen
 @Slf4j
 public class DemoControllerIT
 {
+  @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(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();
   }
 }