CloseableHttpResponse response = createSample();
response.close();
Long id = parseEntity(response.getEntity(), Long.class);
Bookmark bookmark;
Set<PreconditionFailedException.Violation> violations;
PreconditionFailedException expected;
bookmark = new Bookmark();
bookmark.setDescription("Google");
bookmark.setLink("http://google.com");
request = new HttpPut(url + "/bookmark/" + id);
request.setEntity(createEntity(bookmark));
request.addHeader("Content-Type", "application/json");
response = client.execute(request);
response.close();
assertEquals(SC_UNAUTHORIZED, response.getStatusLine().getStatusCode());
bookmark = new Bookmark();
request = new HttpPut(url + "/bookmark/" + id);
request.setEntity(createEntity(bookmark));
request.addHeader("Content-Type", "application/json");
request.addHeader("Authorization", BASIC_CREDENTIALS);
response = client.execute(request);
response.close();
assertEquals(SC_PRECONDITION_FAILED, response.getStatusLine().getStatusCode());
violations = mapper.readValue(response.getEntity().getContent(),
new TypeReference<Set<PreconditionFailedException.Violation>>() {
});
expected = new PreconditionFailedException();
expected.addViolation("description", "não pode ser nulo");
expected.addViolation("link", "não pode ser nulo");
assertEquals(expected.getViolations(), violations);
bookmark = new Bookmark();
bookmark.setDescription("Google");
bookmark.setLink("http: // google . com");
request = new HttpPut(url + "/bookmark/" + id);
request.setEntity(createEntity(bookmark));
request.addHeader("Content-Type", "application/json");
request.addHeader("Authorization", BASIC_CREDENTIALS);
response = client.execute(request);
response.close();
assertEquals(SC_PRECONDITION_FAILED, response.getStatusLine().getStatusCode());
violations = mapper.readValue(response.getEntity().getContent(),
new TypeReference<Set<PreconditionFailedException.Violation>>() {
});
expected = new PreconditionFailedException().addViolation("link", "formato inválido");
assertEquals(expected.getViolations(), violations);
bookmark = new Bookmark();
bookmark.setId(Long.valueOf(123456789));
bookmark.setDescription("Test");
bookmark.setLink("http://test.com");