Added more tests for valid URI's (aka: with parameter)
authorKai Moritz <kai@juplo.de>
Tue, 14 Jan 2020 18:52:10 +0000 (19:52 +0100)
committerKai Moritz <kai@juplo.de>
Thu, 16 Jan 2020 10:18:03 +0000 (11:18 +0100)
* Switchted @Test to @ParameterizedTest in HtmlControllerTest and
  RestControllerTest
* Fixed the behavior of RestController accordingly

src/main/java/de/juplo/demo/RestController.java
src/test/java/de/juplo/demo/HtmlControllerIT.java
src/test/java/de/juplo/demo/RestControllerIT.java

index b32f796..288fd9e 100644 (file)
@@ -23,7 +23,7 @@ public class RestController
   }
 
 
-  @GetMapping(path = "/", produces = MediaType.TEXT_PLAIN_VALUE)
+  @GetMapping(path = { "", "/" }, produces = MediaType.TEXT_PLAIN_VALUE)
   public Mono<String> fetch(@RequestParam String path)
   {
     return service.getRemoteText(path);
index 33ee782..6e33636 100644 (file)
@@ -5,7 +5,6 @@ import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
 import org.jsoup.Jsoup;
 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;
@@ -33,14 +32,15 @@ public class HtmlControllerIT
   RemoteContentService service;
 
 
-  @Test
-  @DisplayName("Mapping for HtmlController with a parameter: /?path=foo")
-  void testUriWithParameter()
+  @DisplayName("Valid mappings for HtmlController with a parameter")
+  @ParameterizedTest()
+  @ValueSource(strings = { "/?path=foo", "?path=foo" })
+  void testUriWithParameter(String uri)
   {
     when(service.getRemoteText("foo")).thenReturn(Mono.just("bar"));
     webClient
         .get()
-        .uri("/?path=foo")
+        .uri(uri)
         .exchange()
         .expectStatus().isOk()
         .expectBody(String.class).value(rendered ->
index 68ad229..1e4e0ad 100644 (file)
@@ -2,8 +2,9 @@ package de.juplo.demo;
 
 
 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;
@@ -29,14 +30,15 @@ public class RestControllerIT
   RemoteContentService service;
 
 
-  @Test
-  @DisplayName("Valid mapping for RestController: /?path=foo")
-  void testUriWithParameter()
+  @DisplayName("Valid mappings for RestController with parameter")
+  @ParameterizedTest()
+  @ValueSource(strings = { "/?path=foo", "?path=foo" })
+  void testUriWithParameter(String uri)
   {
     when(service.getRemoteText("foo")).thenReturn(Mono.just("bar"));
     webClient
         .get()
-        .uri("/?path=foo")
+        .uri(uri)
         .header("Accept", MediaType.TEXT_PLAIN_VALUE)
         .exchange()
         .expectStatus().isOk()