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\":\"등록 성공했습니다\"}");
    }
  

    
    
}