package com.example.demo;
/*https://github.com/hellokoding/hellokoding-courses/blob/master/spring-examples/spring-webflux/src/test/java/com/hellokoding/spring/WebClientTest.java
* */
import org.junit.jupiter.api.Test;
//import org.springframework.http.HttpHeaders;
//import org.springframework.web.reactive.function.client.ClientResponse;
import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Mono;
//import static org.springframework.web.reactive.function.BodyInserters.fromFormData;
import org.springframework.http.MediaType;
//import org.springframework.util.LinkedMultiValueMap;
//import org.springframework.util.MultiValueMap;
import static org.assertj.core.api.Assertions.assertThat;
public class WebClientTest {
@Test
public void buildAnHttpRequest() {
WebClient webClient = WebClient.create("http://localhost:8080");
String request = "{\"id\":[\"HongKildong\"],\"name\":\"홍길동\"}";
Mono<String> result = webClient.mutate()
.baseUrl("http://localhost:8080")
.build()
.post()
.uri("/member/register")
.bodyValue(request)
.accept(MediaType.APPLICATION_JSON)
.retrieve()
.bodyToMono(String.class);
assertThat(result.block())
.isEqualTo("{\"attributes\":{},\"message\":\"등록 성공했습니다\"}");
}
}