From 33ab26ef43fa2444ed3f612531c083788a345ecb Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Mo, 19 Sep 2022 18:37:13 +0200
Subject: [PATCH] exercise03

---
 src/test/java/de/gedoplan/seminar/sbt/sbtrestexercise/PersonenResourceTest.java |   47 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 46 insertions(+), 1 deletions(-)

diff --git a/src/test/java/de/gedoplan/seminar/sbt/sbtrestexercise/PersonenResourceTest.java b/src/test/java/de/gedoplan/seminar/sbt/sbtrestexercise/PersonenResourceTest.java
index b3c80ed..33a05e0 100644
--- a/src/test/java/de/gedoplan/seminar/sbt/sbtrestexercise/PersonenResourceTest.java
+++ b/src/test/java/de/gedoplan/seminar/sbt/sbtrestexercise/PersonenResourceTest.java
@@ -1,9 +1,15 @@
 package de.gedoplan.seminar.sbt.sbtrestexercise;
 
+import de.gedoplan.seminar.sbt.sbtrestexercise.domain.Person;
 import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.boot.test.web.server.LocalServerPort;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.web.reactive.function.client.WebClient;
+
+import java.util.List;
 
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class PersonenResourceTest {
@@ -14,7 +20,46 @@
 
     @BeforeEach
     public void init() {
-        
+        client = WebClient.create("http://localhost:"+port+"/personen");
+    }
+
+    @Test
+    public void testGetPersonen() {
+        List<Person> personen = client.get()
+                .retrieve().bodyToFlux(Person.class)
+                .collectList().block();
+        System.out.printf("Found %d talks:\n", personen.size());
+        personen.forEach(talk -> System.out.println("  "+talk));
+    }
+
+    @Test
+    public void testGetPersonById() {
+        Person person = client.get()
+                .uri(ub -> ub.path("/{id}").build(1))
+                .retrieve().bodyToMono(Person.class)
+                .block();
+        System.out.println(person);
+    }
+
+    @Test
+    public void testCreateTalk() {
+        Person person = new Person("Duck","Donald");
+
+        ResponseEntity<String> response = client.post()
+                .contentType(MediaType.APPLICATION_JSON)
+                .bodyValue(person)
+                .retrieve()
+                .toEntity(String.class)
+                .block();
+
+        System.out.printf("Response status: %03d %s\n", response.getStatusCode().value(), response.getStatusCode().getReasonPhrase());
+        String message = switch (response.getStatusCode()) {
+            case CREATED -> "URI: %s\n".formatted(response.getHeaders().getLocation());
+            case INTERNAL_SERVER_ERROR -> response.getBody();
+            default -> "";
+        };
+        System.out.println(message);
+
     }
 
 }

--
Gitblit v1.7.1