Я тестирую конечную точку, которая сохраняет объект в базе данных. Почтовый метод работает, как задумано, и объект отправляется в базу данных. Я пытаюсь выяснить, как получить идентификатор объекта mongo из полученного HTTP-ответа, чтобы я мог проводить дополнительные тесты с помощью методов Put и Delete, так как мне нужен идентификатор объекта для URI.
@Test
public void saveRule() throws URISyntaxException, IOException {
RuleDTO ruleDTO = new RuleDTO();
ruleDTO.setTitle("My rule");
ruleDTO.setIndex(666);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(ruleDTO);
String target = "http://localhost:8090" + "/v2/rules"; // fix
URI uri = new URI(target);
HttpPost httpPost = new HttpPost(uri.toASCIIString());
StringEntity entity = new StringEntity(json);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
httpPost.setEntity(entity);
HttpResponse response = httpClient.execute(httpPost);
int HTTPcode = response.getStatusLine().getStatusCode();
HttpEntity getEntity = response.getEntity();
String getJson = EntityUtils.toString(getEntity);
ObjectMapper objectMapper = new ObjectMapper();
Rule rule = objectMapper.readValue(getJson, Rule.class);
boolean isMyRule = false;
if (rule.getTitle().equals("My rule")) {
isMyRule = true;
}
boolean correctStatus = HTTPcode >= 200 && HTTPcode <= 300 ? true : false;
assertTrue(correctStatus);
assertTrue(isMyRule);
}