4 import org.junit.jupiter.api.BeforeEach;
5 import org.junit.jupiter.api.Test;
6 import org.junit.jupiter.api.extension.ExtendWith;
7 import static org.mockito.ArgumentMatchers.eq;
8 import static org.mockito.Mockito.when;
9 import org.springframework.boot.test.mock.mockito.MockBean;
10 import org.springframework.test.context.junit.jupiter.SpringExtension;
11 import org.springframework.web.reactive.function.client.WebClient;
12 import org.springframework.web.reactive.function.client.WebClient.RequestHeadersSpec;
13 import org.springframework.web.reactive.function.client.WebClient.RequestHeadersUriSpec;
14 import org.springframework.web.reactive.function.client.WebClient.ResponseSpec;
15 import reactor.core.publisher.Mono;
16 import reactor.test.StepVerifier;
20 * Unit-Test for class {@link RemoteContentService}.
23 @ExtendWith(SpringExtension.class)
24 public class RemoteContentServiceTest
26 RemoteContentService service;
30 @MockBean(name = "uriSpec")
31 RequestHeadersUriSpec uriSpec;
32 @MockBean(name = "headersSpec")
33 RequestHeadersSpec headersSpec;
34 @MockBean(name = "responseSpec")
35 ResponseSpec responseSpec;
41 service = new RemoteContentService(webClient);
48 when(webClient.get()).thenReturn(uriSpec);
49 when(uriSpec.uri(eq("/foo"))).thenReturn(headersSpec);
50 when(headersSpec.retrieve()).thenReturn(responseSpec);
51 when(responseSpec.bodyToMono(String.class)).thenReturn(Mono.just("bar"));
53 Mono<String> result = service.getRemoteText("/foo");