WIP
[demos/spring-boot] / src / test / java / de / juplo / demo / DemoControllerIT.java
1 package de.juplo.demo;
2
3
4 import java.net.DatagramSocket;
5 import java.net.InetAddress;
6 import java.net.SocketException;
7 import java.net.UnknownHostException;
8 import lombok.extern.slf4j.Slf4j;
9 import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
10 import org.junit.jupiter.api.BeforeEach;
11 import org.junit.jupiter.api.Test;
12 import org.junit.jupiter.api.extension.ExtendWith;
13 import org.openqa.selenium.By;
14 import org.openqa.selenium.WebElement;
15 import org.openqa.selenium.remote.RemoteWebDriver;
16 import org.springframework.boot.test.context.SpringBootTest;
17 import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
18 import org.springframework.boot.web.server.LocalServerPort;
19
20
21 /**
22  * Integration-Test for the {@link DemoController}.
23  * @author Kai Moritz
24  */
25 @SpringBootTest(webEnvironment = RANDOM_PORT)
26 @ExtendWith(WebDriverExtension.class)
27 @Slf4j
28 public class DemoControllerIT
29 {
30   @LocalServerPort
31   int port;
32   String baseUri;
33
34
35   @BeforeEach()
36   void generateBaseUri()
37   {
38     try (final DatagramSocket socket = new DatagramSocket())
39     {
40       socket.connect(InetAddress.getByName("8.8.8.8"), 10002);
41       baseUri =
42           "http://" +
43           socket.getLocalAddress().getHostAddress() +
44           ":" +
45           port;
46     }
47     catch (SocketException | UnknownHostException e)
48     {
49       throw new RuntimeException(e);
50     }
51   }
52
53
54   @Test
55   void testSubmit(RemoteWebDriver driver)
56   {
57     driver.get(baseUri + "/");
58     log.info("Fetched page:\n\n{}\n", driver.getPageSource());
59
60     WebElement submit = driver.findElement(By.cssSelector(".card-footer > button"));
61     assertThat(submit).isNotNull();
62   }
63 }