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:
parent
4b9abb09f0
commit
6f73b07dcb
|
@ -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.");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue