Merged HEAD (5.2) to 5.2.N (5.2.1)

126474 jkaabimofrad: Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
      122419 gjames: RA-827 More testing of custom status codes


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/BRANCHES/DEV/5.2.N/root@126818 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Ancuta Morarasu
2016-05-11 11:36:13 +00:00
parent e1d542438c
commit 5d0aee7ea2
6 changed files with 22 additions and 5 deletions

View File

@@ -32,6 +32,7 @@ import org.alfresco.rest.framework.core.ResourceParameter;
import org.alfresco.rest.framework.resource.EntityResource; import org.alfresco.rest.framework.resource.EntityResource;
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction; import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.springframework.extensions.webscripts.Status;
import java.util.List; import java.util.List;
@@ -47,12 +48,13 @@ public class GrassEntityResource implements EntityResourceAction.ReadById<Grass>
} }
@Operation("cut") @Operation("cut")
@WebApiDescription(title = "Cut the grass",successStatus = Status.STATUS_NOT_IMPLEMENTED)
public String cutLawn(String id, Void notused, Parameters parameters) { public String cutLawn(String id, Void notused, Parameters parameters) {
return "All done"; return "All done";
} }
@Operation("grow") @Operation("grow")
@WebApiDescription(title = "Grow the grass") @WebApiDescription(title = "Grow the grass",successStatus = Status.STATUS_ACCEPTED)
@WebApiParam(name = "Grass", title = "The grass.",required=true, kind = ResourceParameter.KIND.HTTP_BODY_OBJECT) @WebApiParam(name = "Grass", title = "The grass.",required=true, kind = ResourceParameter.KIND.HTTP_BODY_OBJECT)
public String growTheLawn(String id, Grass grass, Parameters parameters) { public String growTheLawn(String id, Grass grass, Parameters parameters) {
return "Growing well"; return "Growing well";

View File

@@ -26,9 +26,11 @@
package org.alfresco.rest.framework.tests.api.mocks; package org.alfresco.rest.framework.tests.api.mocks;
import org.alfresco.rest.framework.WebApiDescription;
import org.alfresco.rest.framework.resource.EntityResource; import org.alfresco.rest.framework.resource.EntityResource;
import org.alfresco.rest.framework.resource.actions.interfaces.MultiPartResourceAction; import org.alfresco.rest.framework.resource.actions.interfaces.MultiPartResourceAction;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.springframework.extensions.webscripts.Status;
import org.springframework.extensions.webscripts.servlet.FormData; import org.springframework.extensions.webscripts.servlet.FormData;
/** /**
@@ -40,6 +42,7 @@ public class MultiPartTestEntityResource
{ {
@Override @Override
@WebApiDescription(title = "Creates a multipart", successStatus = Status.STATUS_ACCEPTED)
public MultiPartTestResponse create(FormData formData, Parameters parameters) public MultiPartTestResponse create(FormData formData, Parameters parameters)
{ {
return new MultiPartTestResponse(formData.getParameters().get("filename")[0]); return new MultiPartTestResponse(formData.getParameters().get("filename")[0]);

View File

@@ -29,12 +29,14 @@ package org.alfresco.rest.framework.tests.api.mocks;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.alfresco.rest.framework.WebApiDescription;
import org.alfresco.rest.framework.WebApiParam; import org.alfresco.rest.framework.WebApiParam;
import org.alfresco.rest.framework.core.ResourceParameter; import org.alfresco.rest.framework.core.ResourceParameter;
import org.alfresco.rest.framework.resource.RelationshipResource; import org.alfresco.rest.framework.resource.RelationshipResource;
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction; import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction;
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo; import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.springframework.extensions.webscripts.Status;
/** /**
* Implements Get * Implements Get
@@ -55,6 +57,7 @@ public class SheepBlackSheepResource implements RelationshipResourceAction.Read<
} }
@Override @Override
@WebApiDescription(title = "Deletes only black Sheep", successStatus = Status.STATUS_CONFLICT)
public void delete(String entityResourceId, String id, Parameters parameters) public void delete(String entityResourceId, String id, Parameters parameters)
{ {
} }

View File

@@ -33,11 +33,13 @@ import org.alfresco.rest.framework.resource.EntityResource;
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction; import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo; import org.alfresco.rest.framework.resource.parameters.CollectionWithPagingInfo;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.springframework.extensions.webscripts.Status;
@EntityResource(name=SheepEntityResource.ENTITY_KEY,title="Sheep") @EntityResource(name=SheepEntityResource.ENTITY_KEY,title="Sheep")
public class SheepEntityResource implements EntityResourceAction.Read<Sheep>,EntityResourceAction.ReadById<Sheep>, EntityResourceAction.Update<Sheep>, EntityResourceAction.Delete public class SheepEntityResource implements EntityResourceAction.Read<Sheep>,EntityResourceAction.ReadById<Sheep>, EntityResourceAction.Update<Sheep>, EntityResourceAction.Delete
{ {
public static final String ENTITY_KEY = "sheep"; public static final String ENTITY_KEY = "sheep";
@Override @Override
public void delete(String id, Parameters parameters) public void delete(String id, Parameters parameters)
{ {
@@ -56,7 +58,7 @@ public class SheepEntityResource implements EntityResourceAction.Read<Sheep>,Ent
} }
@Override @Override
@WebApiDescription(title = "Gets all the Sheep") @WebApiDescription(title = "Gets all the Sheep", successStatus = Status.STATUS_ACCEPTED)
@WebApiParameters({ @WebApiParameters({
@WebApiParam(name = "siteId", title = "Site id", description="What ever."), @WebApiParam(name = "siteId", title = "Site id", description="What ever."),
@WebApiParam(name = "who", title = "Who", kind=ResourceParameter.KIND.HTTP_HEADER), @WebApiParam(name = "who", title = "Who", kind=ResourceParameter.KIND.HTTP_HEADER),

View File

@@ -38,6 +38,7 @@ import org.alfresco.rest.framework.resource.content.BinaryResource;
import org.alfresco.rest.framework.resource.content.FileBinaryResource; import org.alfresco.rest.framework.resource.content.FileBinaryResource;
import org.alfresco.rest.framework.resource.parameters.Parameters; import org.alfresco.rest.framework.resource.parameters.Parameters;
import org.alfresco.util.TempFileProvider; import org.alfresco.util.TempFileProvider;
import org.springframework.extensions.webscripts.Status;
@EntityResource(name="flock",title="A resource used for testing binary properties") @EntityResource(name="flock",title="A resource used for testing binary properties")
public class FlockEntityResource implements BinaryResourceAction.Read, BinaryResourceAction.Delete, BinaryResourceAction.Update<Flock> public class FlockEntityResource implements BinaryResourceAction.Read, BinaryResourceAction.Delete, BinaryResourceAction.Update<Flock>
@@ -62,7 +63,7 @@ public class FlockEntityResource implements BinaryResourceAction.Read, BinaryRes
//versions/1/flock/xyz/photo GET //versions/1/flock/xyz/photo GET
@Override @Override
@WebApiDescription(title = "Reads a photo as a Stream") @WebApiDescription(title = "Reads a photo as a Stream", successStatus = Status.STATUS_FOUND)
@BinaryProperties("photo") @BinaryProperties("photo")
public BinaryResource readProperty(String entityId, Parameters parameters) throws EntityNotFoundException public BinaryResource readProperty(String entityId, Parameters parameters) throws EntityNotFoundException
{ {

View File

@@ -99,7 +99,9 @@ public class InspectorTests
assertNotNull("SheepEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT)); assertNotNull("SheepEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT));
assertNotNull("SheepEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE)); assertNotNull("SheepEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
assertNull("SheepEntityResource does not support POST", metaData.getOperation(HttpMethod.POST)); assertNull("SheepEntityResource does not support POST", metaData.getOperation(HttpMethod.POST));
ResourceOperation op = metaData.getOperation(HttpMethod.PUT); ResourceOperation op = metaData.getOperation(HttpMethod.GET);
assertEquals("Sheep ReadALL should return ACCEPTED", Status.STATUS_ACCEPTED, op.getSuccessStatus());
op = metaData.getOperation(HttpMethod.PUT);
assertTrue("SheepEntityResource must support Sheep", Sheep.class.equals(metaData.getObjectType(op))); assertTrue("SheepEntityResource must support Sheep", Sheep.class.equals(metaData.getObjectType(op)));
metainfo = ResourceInspector.inspect(SheepNoActionEntityResource.class); metainfo = ResourceInspector.inspect(SheepNoActionEntityResource.class);
@@ -122,7 +124,6 @@ public class InspectorTests
assertNotNull("FlockEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT)); assertNotNull("FlockEntityResource supports PUT", metaData.getOperation(HttpMethod.PUT));
assertNotNull("FlockEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE)); assertNotNull("FlockEntityResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
assertNull("FlockEntityResource does not support POST", metaData.getOperation(HttpMethod.POST)); assertNull("FlockEntityResource does not support POST", metaData.getOperation(HttpMethod.POST));
metainfo = ResourceInspector.inspect(MultiPartTestEntityResource.class); metainfo = ResourceInspector.inspect(MultiPartTestEntityResource.class);
assertTrue("Must be one ResourceMetadata",metainfo.size()==1); assertTrue("Must be one ResourceMetadata",metainfo.size()==1);
metaData = metainfo.get(0); metaData = metainfo.get(0);
@@ -133,6 +134,7 @@ public class InspectorTests
assertNull("MultiPartTestEntityResource does not supports DELETE", metaData.getOperation(HttpMethod.DELETE)); assertNull("MultiPartTestEntityResource does not supports DELETE", metaData.getOperation(HttpMethod.DELETE));
op = metaData.getOperation(HttpMethod.POST); op = metaData.getOperation(HttpMethod.POST);
assertTrue("MultiPartTestEntityResource must support MultiPartTestResponse", MultiPartTestResponse.class.equals(metaData.getObjectType(op))); assertTrue("MultiPartTestEntityResource must support MultiPartTestResponse", MultiPartTestResponse.class.equals(metaData.getObjectType(op)));
assertEquals("MultiPartTestEntityResource should return ACCEPTED", Status.STATUS_ACCEPTED, op.getSuccessStatus());
} }
@@ -166,6 +168,7 @@ public class InspectorTests
} }
assertNotNull("SheepBlackSheepResource supports DELETE", metaData.getOperation(HttpMethod.DELETE)); assertNotNull("SheepBlackSheepResource supports DELETE", metaData.getOperation(HttpMethod.DELETE));
op = metaData.getOperation(HttpMethod.DELETE); op = metaData.getOperation(HttpMethod.DELETE);
assertEquals("SheepBlackSheepResource should return STATUS_CONFLICT", Status.STATUS_CONFLICT, op.getSuccessStatus());
params = op.getParameters(); params = op.getParameters();
assertTrue("DELETE method on a relations should have 2 url params.", params.size() == 2); assertTrue("DELETE method on a relations should have 2 url params.", params.size() == 2);
@@ -315,6 +318,7 @@ public class InspectorTests
assertNotNull(op); assertNotNull(op);
assertTrue(HttpMethod.GET.equals(op.getHttpMethod())); assertTrue(HttpMethod.GET.equals(op.getHttpMethod()));
assertTrue("Gets all the Sheep".equals(op.getTitle())); assertTrue("Gets all the Sheep".equals(op.getTitle()));
assertEquals("Sheep ReadALL should return ACCEPTED", Status.STATUS_ACCEPTED, op.getSuccessStatus());
assertTrue("".equals(op.getDescription())); assertTrue("".equals(op.getDescription()));
assertNotNull(op.getParameters()); assertNotNull(op.getParameters());
assertTrue(op.getParameters().size() == 7); assertTrue(op.getParameters().size() == 7);
@@ -463,6 +467,7 @@ public class InspectorTests
assertNotNull("GrassEntityResource supports POST", resourceMetadata.getOperation(HttpMethod.POST)); assertNotNull("GrassEntityResource supports POST", resourceMetadata.getOperation(HttpMethod.POST));
assertNull("GrassEntityResource does not support DELETE", resourceMetadata.getOperation(HttpMethod.DELETE)); assertNull("GrassEntityResource does not support DELETE", resourceMetadata.getOperation(HttpMethod.DELETE));
ResourceOperation op = resourceMetadata.getOperation(HttpMethod.POST); ResourceOperation op = resourceMetadata.getOperation(HttpMethod.POST);
assertEquals("grow should return ACCEPTED", Status.STATUS_ACCEPTED, op.getSuccessStatus());
Class paramType = resourceMetadata.getObjectType(op); Class paramType = resourceMetadata.getObjectType(op);
Object paramObj = paramType.newInstance(); Object paramObj = paramType.newInstance();
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", paramObj, Params.valueOf("notUsed", null)); result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", paramObj, Params.valueOf("notUsed", null));
@@ -473,6 +478,7 @@ public class InspectorTests
assertNull("GrassEntityResource does not support GET", resourceMetadata.getOperation(HttpMethod.GET)); assertNull("GrassEntityResource does not support GET", resourceMetadata.getOperation(HttpMethod.GET));
op = resourceMetadata.getOperation(HttpMethod.POST); op = resourceMetadata.getOperation(HttpMethod.POST);
assertNull(resourceMetadata.getObjectType(op)); assertNull(resourceMetadata.getObjectType(op));
assertEquals("cut should return ACCEPTED", Status.STATUS_NOT_IMPLEMENTED, op.getSuccessStatus());
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", null, Params.valueOf("notUsed", null)); result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", null, Params.valueOf("notUsed", null));
assertEquals("All done",result); assertEquals("All done",result);
break; break;