Manage more response cases. Adjust tests accordingly.

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/resource-management/resource-manager@160616 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Manuele Simi 2017-12-16 04:02:32 +00:00
parent 4b9abb09f0
commit 6f73b07dcb
4 changed files with 41 additions and 13 deletions

View File

@ -21,7 +21,6 @@ public final class CreateRequest extends RequestToResourceRegistry {
public static CreateRequest fromHolder(ContextHolder holder) {
Objects.requireNonNull(holder);
return new CreateRequest(holder.getContext());
}
/* (non-Javadoc)
@ -29,7 +28,11 @@ public final class CreateRequest extends RequestToResourceRegistry {
*/
@Override
public CreateRequest validate() throws Exception {
return null;
//TODO: to implement
if (Objects.nonNull(this.context.getParent())) {
throw new Exception("Unable to manage a context with parent.");
}
return this;
}
/* (non-Javadoc)
@ -37,7 +40,8 @@ public final class CreateRequest extends RequestToResourceRegistry {
*/
@Override
protected ResponseFromResourceRegistry send() {
return null;
//TODO: to implement
return ResponseFromResourceRegistry.newSuccessResponseWithMessage("Context successfully created.");
}
}

View File

@ -56,8 +56,30 @@ public class ResponseFromResourceRegistry {
public static <E extends Exception> ResponseFromResourceRegistry fromException(E e) {
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
response.success = false;
response.message = e.getMessage();
response.exceptions = Collections.singletonList(e);
return response;
}
/**
* Creates a success response
* @return the response
*/
public static ResponseFromResourceRegistry newSuccessResponse() {
ResponseFromResourceRegistry response = new ResponseFromResourceRegistry();
response.success = true;
return response;
}
/**
* Creates a success response with an associated message.
* @param message
* @return the response
*/
public static ResponseFromResourceRegistry newSuccessResponseWithMessage(String message) {
ResponseFromResourceRegistry response = ResponseFromResourceRegistry.newSuccessResponse();
response.message = message;
return response;
}
}

View File

@ -10,6 +10,7 @@ import org.gcube.informationsystem.model.entity.Context;
import org.gcube.resourcemanagement.manager.io.rs.RMContextPath;
import org.gcube.resourcemanagement.manager.webapp.ResourceInitializer;
import org.gcube.resourcemanagement.manager.webapp.context.CreateRequest;
import org.gcube.resourcemanagement.manager.webapp.context.ResponseFromResourceRegistry;
import org.gcube.resourcemanagement.manager.webapp.context.ContextHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@ -34,12 +35,15 @@ public class RMContext {
logger.info("Requested to create context {} with json {}", Context.NAME, json);
Response response;
ContextHolder holder = new ContextHolder(json);
if (CreateRequest.fromHolder(holder).forceURL("").submit().wasSuccessful()) {
response = Response.status(Status.CREATED).entity("Context successfully created").type(ResourceInitializer.APPLICATION_JSON_CHARSET_UTF_8)
.build();
ResponseFromResourceRegistry returned = CreateRequest.fromHolder(holder).forceURL("").submit();
if (returned.wasSuccessful()) {
response = Response.status(Status.CREATED)
.entity(returned.getMessage().orElse("Context successfully created."))
.type(ResourceInitializer.APPLICATION_JSON_CHARSET_UTF_8).build();
} else {
response = Response.status(Status.BAD_REQUEST).build();;
}
response = Response.status(Status.BAD_REQUEST)
.entity(returned.getMessage().orElse("Failed to create the context.")).build();
}
return response;
}
}

View File

@ -72,11 +72,9 @@ public class RMContextTest extends JerseyTest {
assertNotNull(create);
//TODO: to restore an expected success when create is fully functional
//assertEquals("Unexpected returned code. Reason: " + create.getStatusInfo().getReasonPhrase(),
// Status.CREATED.getStatusCode(), create.getStatus());
//assertEquals("All good", (String) create.readEntity(String.class));
assertEquals("Unexpected returned code. Reason: " + create.getStatusInfo().getReasonPhrase(),
Status.BAD_REQUEST.getStatusCode(), create.getStatus());
assertEquals("Unexpected returned code. Reason: " + create.getStatusInfo().getReasonPhrase(),
Status.CREATED.getStatusCode(), create.getStatus());
assertEquals("Context successfully created.", (String) create.readEntity(String.class));
} catch (JsonProcessingException e) {
assertFalse("Failed to marshal the context.", false);
}