我正在测试在数据库中保存对象的端点。Post方法按预期工作,对象转到数据库。我正试图找出如何从得到的HTTP响应中获取mongo objectID,这样就可以使用Put和Delete方法进行进一步的测试,因为我需要用于URI的objectID。
@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);
}