class UsersClientTest {
private MockWebServer mockWebServer;
private UsersClient usersClient;
@BeforeEach
public void setup() throws IOException {
this.mockWebServer = new MockWebServer();
this.mockWebServer.start();
this.usersClient = new UsersClient(WebClient.builder(), mockWebServer.url("/").toString());
}
@Test
public void testGetUserById() throws InterruptedException {
MockResponse mockResponse = new MockResponse()
.addHeader("Content-Type", "application/json; charset=utf-8")
.setBody("{\"id\": 1, \"name\":\"duke\"}")
.throttleBody(16, 5, TimeUnit.SECONDS);
mockWebServer.enqueue(mockResponse);
JsonNode result = usersClient.getUserById(1L);
assertEquals(1, result.get("id").asInt());
assertEquals("duke", result.get("name").asText());
RecordedRequest request = mockWebServer.takeRequest();
assertEquals("/users/1", request.getPath());
}
}