Added more tests for URI's without a parameter
authorKai Moritz <kai@juplo.de>
Tue, 14 Jan 2020 17:28:22 +0000 (18:28 +0100)
committerKai Moritz <kai@juplo.de>
Thu, 16 Jan 2020 10:18:03 +0000 (11:18 +0100)
* Transformed test into a @ParameterizedTest
* Fixed the behavior of the HtmlController accordingly

src/main/java/de/juplo/demo/HtmlController.java
src/test/java/de/juplo/demo/HtmlControllerIT.java

index 0c5f276..ec5919c 100644 (file)
@@ -24,7 +24,7 @@ public class HtmlController
   }
 
 
-  @GetMapping("/")
+  @GetMapping({ "", "/" })
   public String fetch(Model model, @RequestParam(required = false) String path)
   {
     model.addAttribute(
index b6bd98f..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"));
@@ -51,13 +53,14 @@ public class HtmlControllerIT
     verify(service).getRemoteText("foo");
   }
 
-  @Test
-  @DisplayName("Mapping for HtmlController: /")
-  void testUriWithoutParameter()
+  @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(uri)
         .exchange()
         .expectStatus().isOk()
         .expectBody(String.class).value(rendered ->