Added more tests for URI's without a parameter
[demos/testing] / src / test / java / de / juplo / demo / HtmlControllerIT.java
index bcf037c..33ee782 100644 (file)
@@ -7,6 +7,8 @@ import org.jsoup.nodes.Document;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.ValueSource;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -32,7 +34,7 @@ public class HtmlControllerIT
 
 
   @Test
-  @DisplayName("Mapping for HtmlController: /?path=foo")
+  @DisplayName("Mapping for HtmlController with a parameter: /?path=foo")
   void testUriWithParameter()
   {
     when(service.getRemoteText("foo")).thenReturn(Mono.just("bar"));
@@ -50,4 +52,30 @@ public class HtmlControllerIT
         });
     verify(service).getRemoteText("foo");
   }
+
+  @DisplayName("Mappings for HtmlController without a parameter")
+  @ParameterizedTest(name = "{arguments} ==> uri={0}")
+  @ValueSource(strings = { "/", "", "?foo=bar", "/?foo=bar"})
+  void testUriWithoutParameter(String uri)
+  {
+    webClient
+        .get()
+        .uri(uri)
+        .exchange()
+        .expectStatus().isOk()
+        .expectBody(String.class).value(rendered ->
+        {
+          Document doc = Jsoup.parse(rendered);
+          assertThat(
+              doc
+                  .select("html > body > main > div > div > div > pre")
+                  .isEmpty())
+              .isFalse();
+          assertThat(
+              doc
+                  .select("html > body > main > div > div > div > pre")
+                  .text())
+              .isEmpty();
+        });
+  }
 }