TSK-927 set owner - comments from Holger
This commit is contained in:
parent
22ac25f5c9
commit
12a94193be
|
@ -7,7 +7,6 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
import com.fasterxml.jackson.databind.DeserializationFeature;
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.BufferedWriter;
|
import java.io.BufferedWriter;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -642,109 +641,80 @@ class TaskControllerIntTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testUpdateTaskOwnerOfReadyTaskSucceeds() throws IOException {
|
void testUpdateTaskOwnerOfReadyTaskSucceeds() throws IOException {
|
||||||
URL url = new URL(restHelper.toUrl("/api/v1/tasks/TKI:000000000000000000000000000000000025"));
|
// setup
|
||||||
|
final String taskUrlString =
|
||||||
|
restHelper.toUrl("/api/v1/tasks/TKI:000000000000000000000000000000000025");
|
||||||
|
|
||||||
// retrieve task from Rest Api
|
// retrieve task from Rest Api
|
||||||
HttpURLConnection con = (HttpURLConnection) url.openConnection();
|
ResponseEntity<TaskResource> responseGet =
|
||||||
con.setRequestMethod("GET");
|
template.exchange(
|
||||||
con.setRequestProperty("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI="); // user_1_2
|
taskUrlString,
|
||||||
assertThat(con.getResponseCode()).isEqualTo(200);
|
HttpMethod.GET,
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
new HttpEntity<>(getHeadersForUser_1_2()),
|
||||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
ParameterizedTypeReference.forType(TaskResource.class));
|
||||||
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
|
|
||||||
|
|
||||||
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), UTF_8));
|
assertThat(responseGet.getBody()).isNotNull();
|
||||||
String inputLine;
|
TaskResource theTaskResource = responseGet.getBody();
|
||||||
StringBuffer content = new StringBuffer();
|
assertThat(theTaskResource.getState()).isEqualTo(TaskState.READY);
|
||||||
while ((inputLine = in.readLine()) != null) {
|
assertThat(theTaskResource.getOwner() == null);
|
||||||
content.append(inputLine);
|
|
||||||
}
|
|
||||||
in.close();
|
|
||||||
con.disconnect();
|
|
||||||
final String originalTaskJson = content.toString();
|
|
||||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
TaskResource originalTaskObject = mapper.readValue(originalTaskJson, TaskResource.class);
|
|
||||||
|
|
||||||
String originalOwner = originalTaskObject.getOwner();
|
// set Owner and update Task
|
||||||
assertThat(originalOwner == null);
|
|
||||||
|
|
||||||
// set owner and call updateTask on Rest Api
|
final String anyUserName = "dummyUser";
|
||||||
final String anyUserName = "Benjamin";
|
theTaskResource.setOwner(anyUserName);
|
||||||
TaskResource taskObjectWithUpdatedOwner = originalTaskObject;
|
ResponseEntity<TaskResource> responseUpdate =
|
||||||
taskObjectWithUpdatedOwner.setOwner(anyUserName);
|
template.exchange(
|
||||||
con = (HttpURLConnection) url.openConnection();
|
taskUrlString,
|
||||||
con.setRequestMethod("PUT");
|
HttpMethod.PUT,
|
||||||
con.setDoOutput(true);
|
new HttpEntity<>(theTaskResource, getHeadersForUser_1_2()),
|
||||||
con.setRequestProperty("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI=");
|
ParameterizedTypeReference.forType(TaskResource.class));
|
||||||
con.setRequestProperty("Content-Type", "application/json");
|
|
||||||
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(con.getOutputStream(), UTF_8));
|
|
||||||
final String taskWithUpdatedOwnerJson = mapper.writeValueAsString(taskObjectWithUpdatedOwner);
|
|
||||||
out.write(taskWithUpdatedOwnerJson);
|
|
||||||
out.flush();
|
|
||||||
out.close();
|
|
||||||
assertThat(con.getResponseCode()).isEqualTo(200);
|
|
||||||
con.disconnect();
|
|
||||||
|
|
||||||
// retrieve task once again from Rest Api.
|
assertThat(responseUpdate.getBody()).isNotNull();
|
||||||
con = (HttpURLConnection) url.openConnection();
|
TaskResource theUpdatedTaskResource = responseUpdate.getBody();
|
||||||
con.setRequestMethod("GET");
|
assertThat(theUpdatedTaskResource.getState()).isEqualTo(TaskState.READY);
|
||||||
con.setRequestProperty("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI=");
|
assertThat(theUpdatedTaskResource.getOwner()).isEqualTo(anyUserName);
|
||||||
assertThat(con.getResponseCode()).isEqualTo(200);
|
|
||||||
in = new BufferedReader(new InputStreamReader(con.getInputStream(), UTF_8));
|
|
||||||
content = new StringBuffer();
|
|
||||||
while ((inputLine = in.readLine()) != null) {
|
|
||||||
content.append(inputLine);
|
|
||||||
}
|
|
||||||
in.close();
|
|
||||||
con.disconnect();
|
|
||||||
final String retrievedTaskJson = content.toString();
|
|
||||||
TaskResource retrievedTaskObject = mapper.readValue(retrievedTaskJson, TaskResource.class);
|
|
||||||
assertThat(retrievedTaskObject.getOwner()).isEqualTo(anyUserName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testUpdateTaskOwnerOfClaimedTaskFails() throws IOException {
|
void testUpdateTaskOwnerOfClaimedTaskFails() throws IOException {
|
||||||
URL url = new URL(restHelper.toUrl("/api/v1/tasks/TKI:000000000000000000000000000000000026"));
|
// setup
|
||||||
|
final String taskUrlString =
|
||||||
|
restHelper.toUrl("/api/v1/tasks/TKI:000000000000000000000000000000000026");
|
||||||
|
|
||||||
// retrieve task from Rest Api
|
// retrieve task from Rest Api
|
||||||
HttpURLConnection con = (HttpURLConnection) url.openConnection();
|
ResponseEntity<TaskResource> responseGet =
|
||||||
con.setRequestMethod("GET");
|
template.exchange(
|
||||||
con.setRequestProperty("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI="); // user_1_2
|
taskUrlString,
|
||||||
assertThat(con.getResponseCode()).isEqualTo(200);
|
HttpMethod.GET,
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
new HttpEntity<>(getHeadersForUser_1_2()),
|
||||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
ParameterizedTypeReference.forType(TaskResource.class));
|
||||||
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
|
|
||||||
|
|
||||||
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), UTF_8));
|
assertThat(responseGet.getBody()).isNotNull();
|
||||||
String inputLine;
|
TaskResource theTaskResource = responseGet.getBody();
|
||||||
StringBuffer content = new StringBuffer();
|
assertThat(theTaskResource.getState()).isEqualTo(TaskState.CLAIMED);
|
||||||
while ((inputLine = in.readLine()) != null) {
|
assertThat(theTaskResource.getOwner()).isEqualTo("user_1_1");
|
||||||
content.append(inputLine);
|
|
||||||
}
|
|
||||||
in.close();
|
|
||||||
con.disconnect();
|
|
||||||
final String originalTaskJson = content.toString();
|
|
||||||
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
|
|
||||||
TaskResource originalTaskObject = mapper.readValue(originalTaskJson, TaskResource.class);
|
|
||||||
|
|
||||||
String originalOwner = originalTaskObject.getOwner();
|
// set Owner and update Task
|
||||||
assertThat(originalTaskObject.getOwner()).isEqualTo("user_1_1");
|
|
||||||
assertThat(originalTaskObject.getState()).isEqualTo(TaskState.CLAIMED);
|
|
||||||
|
|
||||||
// set owner and call updateTask on Rest Api
|
final String anyUserName = "dummyuser";
|
||||||
final String anyUserName = "Mustapha";
|
theTaskResource.setOwner(anyUserName);
|
||||||
TaskResource taskObjectWithUpdatedOwner = originalTaskObject;
|
|
||||||
taskObjectWithUpdatedOwner.setOwner(anyUserName);
|
assertThatThrownBy(
|
||||||
con = (HttpURLConnection) url.openConnection();
|
() ->
|
||||||
con.setRequestMethod("PUT");
|
template.exchange(
|
||||||
con.setDoOutput(true);
|
taskUrlString,
|
||||||
con.setRequestProperty("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI=");
|
HttpMethod.PUT,
|
||||||
con.setRequestProperty("Content-Type", "application/json");
|
new HttpEntity<>(theTaskResource, getHeadersForUser_1_2()),
|
||||||
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(con.getOutputStream(), UTF_8));
|
ParameterizedTypeReference.forType(TaskResource.class)))
|
||||||
final String taskWithUpdatedOwnerJson = mapper.writeValueAsString(taskObjectWithUpdatedOwner);
|
.isInstanceOf(HttpClientErrorException.class)
|
||||||
out.write(taskWithUpdatedOwnerJson);
|
.hasMessageContaining("409");
|
||||||
out.flush();
|
}
|
||||||
out.close();
|
|
||||||
assertThat(con.getResponseCode()).isEqualTo(409);
|
private HttpHeaders getHeadersForUser_1_2() {
|
||||||
con.disconnect();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
|
headers.add("Authorization", "Basic dXNlcl8xXzI6dXNlcl8xXzI=");
|
||||||
|
headers.add("Content-Type", "application/json");
|
||||||
|
return headers;
|
||||||
}
|
}
|
||||||
|
|
||||||
private TaskResource getTaskResourceSample() {
|
private TaskResource getTaskResourceSample() {
|
||||||
|
|
Loading…
Reference in New Issue