package space.anyi.httpClient;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.net.http.HttpResponse;
import static org.junit.jupiter.api.Assertions.*;
/**
* GET 请求示例的测试类
*
*
测试依赖本地运行的 User Management API 服务(http://localhost:8080)。
*/
class GetExampleTest {
private final GetExample getExample = new GetExample();
@Test
void getUsers() throws IOException, InterruptedException {
// 查询所有用户:状态码应为 200
HttpResponse response = getExample.getUsers();
assertEquals(200, response.statusCode());
// 响应体是标准包装结构,应包含 code 字段
assertTrue(response.body().contains("\"code\""));
}
@Test
void getUserById_notExists() throws IOException, InterruptedException {
// 使用一个不存在的 id(例如 999999999),服务应返回 404
HttpResponse response = getExample.getUserById(999999999L);
assertEquals(404, response.statusCode());
}
@Test
void buildRequestWithQuery() {
// 验证带查询参数的请求对象可以正常构建,URI 拼接正确
var request = getExample.buildRequestWithQuery("alice01");
assertEquals("http://localhost:8080/api/users?account=alice01",
request.uri().toString());
// GET 方法的 HttpRequest 不应包含请求体
assertEquals(null, request.bodyPublisher().orElse(null));
}
}