Я звоню сторонней конечной точке, так сказать. Я просто вызываю конечную точку и анализирую ответ.
public ListUsers listUsers() {
String url = "/api/v1/account/?apikey=" + apiKey;
String signature = null;
try {
signature = generateSignature(url);
} catch (SignatureException e) {
e.printStackTrace();
}
Call newCall = apiCall("GET", url, signature, null);
Type localVarReturnType = new TypeToken<ListUsers>() { }.getType();
ApiResponse<ListUsers> responseFromApiClient = apiClient.execute(newCall, localVarReturnType);
return responseFromApiClient.getData();
}
listUsers () func был реорганизован для лучшей абстракции
public ListUsers listUsers() {
String url = "/api/v1/account/?apikey=" + apiKey;
Type localVarReturnType = new TypeToken<ListUsers>() { }.getType();
ApiResponse<ListUsers> responseFromApiClient = apiClient.execute(buildApiCall("GET", url, null), localVarReturnType);
return responseFromApiClient.getData();
}
Эта конкретная конечная точка не требуетв любом теле, и возвращает json, который я затем анализирую.
{
"meta": {
"limit": 0,
"offset": 0,
"total_count": 1
},
"objects": [
{
"address_one": "",
"address_three": "",
"address_two": "",
"country_code": "",
"cs_domain_id": null,
"date_joined": "2019-07-05T13:50:21",
"disable_personal_account": false,
"email": "noreply@some.com",
"first_name": "",
"id": 1,
"is_reseller": true,
"is_superuser": true,
"is_verified": true,
"last_login": null,
"last_name": "",
"paywall": true,
"postal_code": "",
"projects": [],
"reference_number": "",
"reseller_id": 1,
"reseller_name": "ROOT",
"reseller_rights": [
{
"domain_id": null,
"id": 1,
"level": "owner",
"name": "ROOT"
}
],
"resource_uri": "/api/v1/account/1/",
"saml": false,
"state": 0,
"status": "enabled",
"surname": "",
"username": "admin",
"uuid": "1c208540-3ed9-4741-a936-a574a3ded12a"
}
]
}
И затем этот ответ json анализируется.
Как мне написать для этого подходящий модульный тест, или нетнужно? Единственный тест, который я придумал, - это просто базовый тест, в котором я на самом деле вызываю сервис, а что касается чистого модульного теста, который не будет работать на моем сервере сборки. Вот тест
@Test
void getListProjectsTest() {
GqConsoleApiClient gcac = new GqConsoleApiClient();
ListProjects response = gcac.listProjects();
System.out.println(listProjects);
Assert.assertEquals(20, response.getMeta().getLimit());
Assert.assertEquals("some-customer-id", response.getObjects().get(0).getCustomerId());
}