mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
Merged FILE-FOLDER-API (5.2.0) to HEAD (5.2)
121808 gjames: RA-774 Improving action tests git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@126421 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -11,6 +11,11 @@ public class Grass
|
||||
final private String id;
|
||||
private String color = "green";
|
||||
|
||||
public Grass()
|
||||
{
|
||||
this.id = null;
|
||||
}
|
||||
|
||||
public Grass(String id)
|
||||
{
|
||||
super();
|
||||
|
@@ -3,6 +3,7 @@ package org.alfresco.rest.framework.tests.api.mocks;
|
||||
import org.alfresco.rest.framework.Action;
|
||||
import org.alfresco.rest.framework.WebApiDescription;
|
||||
import org.alfresco.rest.framework.WebApiParam;
|
||||
import org.alfresco.rest.framework.core.ResourceParameter;
|
||||
import org.alfresco.rest.framework.resource.EntityResource;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
|
||||
import org.alfresco.rest.framework.resource.parameters.Parameters;
|
||||
@@ -19,13 +20,13 @@ public class GrassEntityResource implements EntityResourceAction.ReadById<Grass>
|
||||
}
|
||||
|
||||
@Action("cut")
|
||||
@WebApiDescription(title = "Cuts the grass")
|
||||
public String cutLawn(String id, Parameters parameters) {
|
||||
return "All done";
|
||||
}
|
||||
|
||||
@Action("grow")
|
||||
@WebApiDescription(title = "Grow the grass")
|
||||
@WebApiParam(name = "Grass", title = "The grass.",required=true, kind = ResourceParameter.KIND.HTTP_BODY_OBJECT)
|
||||
public String growTheLawn(String id, Grass grass, Parameters parameters) {
|
||||
return "Growing well";
|
||||
}
|
||||
|
@@ -18,6 +18,7 @@ import org.alfresco.rest.api.nodes.NodeCommentsRelation;
|
||||
import org.alfresco.rest.framework.Action;
|
||||
import org.alfresco.rest.framework.Api;
|
||||
import org.alfresco.rest.framework.BinaryProperties;
|
||||
import org.alfresco.rest.framework.core.ActionResourceMetaData;
|
||||
import org.alfresco.rest.framework.core.ResourceInspector;
|
||||
import org.alfresco.rest.framework.core.ResourceInspectorUtil;
|
||||
import org.alfresco.rest.framework.core.ResourceMetadata;
|
||||
@@ -26,6 +27,7 @@ import org.alfresco.rest.framework.core.ResourceParameter;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.BinaryResourceAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.EntityResourceAction;
|
||||
import org.alfresco.rest.framework.resource.actions.interfaces.RelationshipResourceAction;
|
||||
import org.alfresco.rest.framework.resource.parameters.Params;
|
||||
import org.alfresco.rest.framework.tests.api.mocks.Farmer;
|
||||
import org.alfresco.rest.framework.tests.api.mocks.GoatEntityResource;
|
||||
import org.alfresco.rest.framework.tests.api.mocks.Grass;
|
||||
@@ -352,7 +354,7 @@ public class InspectorTests
|
||||
ResourceOperation op = ResourceInspector.inspectOperation(FlockEntityResource.class, aMethod, HttpMethod.PUT);
|
||||
assertNotNull(op);
|
||||
List<ResourceParameter> params = op.getParameters();
|
||||
assertNotNull(params);
|
||||
assertTrue(params.size()==2);
|
||||
for (ResourceParameter param:params)
|
||||
{
|
||||
if (ResourceParameter.KIND.HTTP_BODY_OBJECT.equals(param.getParamType()))
|
||||
@@ -365,7 +367,7 @@ public class InspectorTests
|
||||
op = ResourceInspector.inspectOperation(SheepBlackSheepResource.class, aMethod, HttpMethod.POST);
|
||||
assertNotNull(op);
|
||||
params = op.getParameters();
|
||||
assertNotNull(params);
|
||||
assertTrue(params.size()==2);
|
||||
for (ResourceParameter param:params)
|
||||
{
|
||||
if (ResourceParameter.KIND.HTTP_BODY_OBJECT.equals(param.getParamType()))
|
||||
@@ -389,29 +391,44 @@ public class InspectorTests
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testInspectActions()
|
||||
public void testInspectActions() throws IllegalAccessException, InstantiationException
|
||||
{
|
||||
Api api = Api.valueOf("alfrescomock", "private", "1");
|
||||
List<ResourceMetadata> metainfo = new ArrayList<ResourceMetadata>();
|
||||
|
||||
GrassEntityResource grassEntityResource = new GrassEntityResource();
|
||||
ResourceInspector.inspectActions(api, GrassEntityResource.class,"-root-", metainfo);
|
||||
assertTrue(metainfo.size()==2);
|
||||
|
||||
for (ResourceMetadata resourceMetadata : metainfo)
|
||||
{
|
||||
assertEquals(ResourceMetadata.RESOURCE_TYPE.ACTION, resourceMetadata.getType());
|
||||
ActionResourceMetaData actionResourceMetaData = (ActionResourceMetaData) resourceMetadata;
|
||||
Method actionMethod = actionResourceMetaData.getActionMethod();
|
||||
String result = null;
|
||||
switch (resourceMetadata.getUniqueId())
|
||||
{
|
||||
case "/-root-/{entityId}/grow":
|
||||
assertTrue("GrassEntityResource supports POST", resourceMetadata.supports(HttpMethod.POST));
|
||||
assertFalse("GrassEntityResource does not support DELETE", resourceMetadata.supports(HttpMethod.DELETE));
|
||||
Class paramType = resourceMetadata.getObjectType(HttpMethod.POST);
|
||||
Object paramObj = paramType.newInstance();
|
||||
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", paramObj, Params.valueOf("notUsed", null));
|
||||
assertEquals("Growing well",result);
|
||||
break;
|
||||
case "/-root-/{entityId}/cut":
|
||||
assertTrue("GrassEntityResource supports POST", resourceMetadata.supports(HttpMethod.POST));
|
||||
assertFalse("GrassEntityResource does not support GET", resourceMetadata.supports(HttpMethod.GET));
|
||||
assertNull(resourceMetadata.getObjectType(HttpMethod.POST));
|
||||
result = (String) ResourceInspectorUtil.invokeMethod(actionMethod,grassEntityResource, "xyz", Params.valueOf("notUsed", null));
|
||||
assertEquals("All done",result);
|
||||
break;
|
||||
default:
|
||||
fail("Invalid action information.");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user