You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by ro...@apache.org on 2014/12/17 00:02:46 UTC
incubator-usergrid git commit: added roles/groups resources
Repository: incubator-usergrid
Updated Branches:
refs/heads/UG-rest-test-framework-overhaul 086091052 -> e276e4faa
added roles/groups resources
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/e276e4fa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/e276e4fa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/e276e4fa
Branch: refs/heads/UG-rest-test-framework-overhaul
Commit: e276e4faa81798471538bed3eda64a6733033df8
Parents: 0860910
Author: Rod Simpson <ro...@apigee.com>
Authored: Tue Dec 16 16:02:38 2014 -0700
Committer: Rod Simpson <ro...@apigee.com>
Committed: Tue Dec 16 16:02:38 2014 -0700
----------------------------------------------------------------------
.../collection/groups/GroupResourceIT.java | 81 +++++++-------------
.../test/resource2point0/AbstractRestIT.java | 3 +
.../endpoints/AbstractCollectionResource.java | 4 +-
.../endpoints/ApplicationsResource.java | 11 ++-
.../endpoints/EntityResource.java | 5 +-
.../endpoints/GroupResource.java | 19 +++++
.../endpoints/GroupsResource.java | 29 +++++++
.../resource2point0/endpoints/RoleResource.java | 19 +++++
.../endpoints/RolesResource.java | 53 +++++++++++++
.../resource2point0/endpoints/UserResource.java | 1 -
.../endpoints/UsersResource.java | 1 -
.../rest/test/resource2point0/model/Group.java | 37 +++++++++
.../rest/test/resource2point0/model/Role.java | 28 +++++++
13 files changed, 227 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/groups/GroupResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/groups/GroupResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/groups/GroupResourceIT.java
index 704ca17..1a78865 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/groups/GroupResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/collection/groups/GroupResourceIT.java
@@ -17,31 +17,15 @@
package org.apache.usergrid.rest.applications.collection.groups;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.rmi.CORBA.Util;
-import javax.ws.rs.core.MediaType;
-
import com.fasterxml.jackson.databind.JsonNode;
import java.io.IOException;
-
-import com.google.gson.JsonObject;
import com.sun.jersey.api.client.UniformInterfaceException;
-import org.apache.usergrid.persistence.model.util.UUIDGenerator;
-import org.apache.usergrid.utils.JsonUtils;
-import org.junit.Before;
-import org.junit.Rule;
+import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT;
+import org.apache.usergrid.rest.test.resource2point0.model.Group;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.usergrid.cassandra.Concurrent;
-import org.apache.usergrid.java.client.Client.Query;
-import org.apache.usergrid.java.client.response.ApiResponse;
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.rest.TestContextSetup;
-import org.apache.usergrid.rest.test.resource.app.GroupsCollection;
-import org.apache.usergrid.utils.UUIDUtils;
import static org.junit.Assert.*;
@@ -50,14 +34,6 @@ import static org.junit.Assert.*;
public class GroupResourceIT extends AbstractRestIT {
private static Logger log = LoggerFactory.getLogger( GroupResourceIT.class );
- /*
- private static final String GROUP = "testGroup" + UUIDUtils.newTimeUUID();
- private static final String USER = "edanuff" + UUIDUtils.newTimeUUID();
-*/
-
- @Rule
- public TestContextSetup context = new TestContextSetup( this );
-
public GroupResourceIT() throws Exception { }
/***
@@ -67,81 +43,76 @@ public class GroupResourceIT extends AbstractRestIT {
@Test()
public void createGroupValidation() throws IOException {
- GroupsCollection groups = context.groups();
-
- //create a group with a normal name
String groupName = "testgroup";
String groupPath = "testgroup";
- JsonNode testGroup = groups.create(groupName, groupPath);
- //verify the group was created
+ Group group = new Group(groupName, groupPath);
+ Group testGroup = this.getAppResource().groups().post(group);
assertNull(testGroup.get("errors"));
- assertEquals(testGroup.get("path").asText(), groupPath);
+ assertEquals(testGroup.get("path"), groupPath);
+
}
/***
*
* Verify that we can create a group with a slash in the name and path
*/
+
@Test()
public void createGroupSlashInNameAndPathValidation() throws IOException {
- GroupsCollection groups = context.groups();
-
- //create a group with a slash in the name
String groupNameSlash = "test/group";
String groupPathSlash = "test/group";
- JsonNode testGroup = groups.create( groupNameSlash, groupPathSlash );
- //verify the group was created
- assertNull( testGroup.get( "errors" ) );
- assertEquals( testGroup.get("path").asText(),groupPathSlash );
+ Group group = new Group(groupNameSlash, groupPathSlash);
+ Group testGroup = this.getAppResource().groups().post(group);
+ assertNull(testGroup.get("errors"));
+ assertEquals(testGroup.get("path"), groupPathSlash);
+
}
/***
*
* Verify that we can create a group with a space in the name
*/
+
@Test()
public void createGroupSpaceInNameValidation() throws IOException {
- GroupsCollection groups = context.groups();
-
- //create a group with a space in the name
- String groupName = "test group";
+ String groupSpaceName = "test group";
String groupPath = "testgroup";
- try {
- JsonNode testGroup = groups.create(groupName, groupPath);
- } catch (UniformInterfaceException e) {
- //verify the correct error was returned
- JsonNode node = mapper.readTree( e.getResponse().getEntity( String.class ));
- assertEquals( "illegal_argument", node.get( "error" ).textValue() );
- }
+ Group group = new Group(groupSpaceName, groupPath);
+ Group testGroup = this.getAppResource().groups().post(group);
+ assertNull(testGroup.get("errors"));
+ assertEquals(testGroup.get("path"), groupPath);
+
}
/***
*
* Verify that we cannot create a group with a space in the path
*/
+
@Test()
public void createGroupSpaceInPathValidation() throws IOException {
- GroupsCollection groups = context.groups();
-
- //create a group with a space in the path
String groupName = "testgroup";
- String groupPath = "test group";
+ String groupSpacePath = "test group";
+ Group group = new Group(groupName, groupSpacePath);
+
try {
- JsonNode testGroup = groups.create(groupName, groupPath);
+ Group testGroup = this.getAppResource().groups().post(group);
} catch (UniformInterfaceException e) {
//verify the correct error was returned
JsonNode node = mapper.readTree( e.getResponse().getEntity( String.class ));
assertEquals( "illegal_argument", node.get( "error" ).textValue() );
}
+
}
/***
*
* Verify that we cannot create a group with a space in the path
*/
+ /*
@Test
public void postGroupActivity() throws IOException {
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/AbstractRestIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/AbstractRestIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/AbstractRestIT.java
index 4918dce..be99a13 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/AbstractRestIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/AbstractRestIT.java
@@ -21,6 +21,7 @@ import java.net.URI;
import java.net.URLClassLoader;
import java.util.Arrays;
+import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.usergrid.rest.test.resource2point0.endpoints.ApplicationsResource;
import org.apache.usergrid.rest.test.resource2point0.endpoints.OrganizationResource;
import org.junit.ClassRule;
@@ -62,6 +63,8 @@ public class AbstractRestIT extends JerseyTest {
}
+ protected ObjectMapper mapper = new ObjectMapper();
+
static {
clientConfig.getFeatures().put( JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE );
descriptor = new WebAppDescriptor.Builder( "org.apache.usergrid.rest" )
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/AbstractCollectionResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/AbstractCollectionResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/AbstractCollectionResource.java
index b0eae47..5953cb5 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/AbstractCollectionResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/AbstractCollectionResource.java
@@ -64,7 +64,7 @@ public abstract class AbstractCollectionResource<T,K> extends NamedResource {
* @return
*/
public T post(final T entity){
- return instantiateT(getResource(true).post(ApiResponse.class, entity));
+ return instantiateT(getResource(true).type(MediaType.APPLICATION_JSON_TYPE).accept(MediaType.APPLICATION_JSON).post(ApiResponse.class, entity));
}
/**
@@ -73,7 +73,7 @@ public abstract class AbstractCollectionResource<T,K> extends NamedResource {
* @return
*/
public T put(final T entity){
- return instantiateT(getResource(true).put(ApiResponse.class, entity));
+ return instantiateT(getResource(true).type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON ).put(ApiResponse.class, entity));
}
protected abstract T instantiateT(ApiResponse response);
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/ApplicationsResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/ApplicationsResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/ApplicationsResource.java
index 6fa722e..e0670e1 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/ApplicationsResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/ApplicationsResource.java
@@ -57,15 +57,24 @@ public class ApplicationsResource extends AbstractCollectionResource<Application
return new UsersResource( context , this);
}
+ public GroupsResource groups(){
+ return new GroupsResource( context , this);
+ }
+
+ public RolesResource roles(){
+ return new RolesResource( context , this);
+ }
+
/**
* Currently hardcoded to users, this is because we expect to create and chain different cases of collections.
* The pattern should look like: orgs.apps.users , orgs.apps.groups and so on...
* @return
*/
+ /*
public CollectionResource roles(){
return new CollectionResource("roles", context , this);
}
-
+*/
/**
* Currently hardcoded to users, this is because we expect to create and chain different cases of collections.
* The pattern should look like: orgs.apps.users , orgs.apps.groups and so on...
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/EntityResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/EntityResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/EntityResource.java
index f432d9b..9e73d52 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/EntityResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/EntityResource.java
@@ -20,14 +20,11 @@
package org.apache.usergrid.rest.test.resource2point0.endpoints;
-import com.sun.jersey.api.client.WebResource;
import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
import org.apache.usergrid.rest.test.resource2point0.model.Entity;
-import org.apache.usergrid.rest.test.resource2point0.model.QueryParameters;
+import org.apache.usergrid.rest.test.resource2point0.model.Group;
import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
-import javax.ws.rs.core.MediaType;
-
/**
* Classy class class.
*/
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupResource.java
new file mode 100644
index 0000000..95d1d33
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupResource.java
@@ -0,0 +1,19 @@
+package org.apache.usergrid.rest.test.resource2point0.endpoints;
+
+import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
+import org.apache.usergrid.rest.test.resource2point0.model.Group;
+import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
+
+/**
+ * Created by rockerston on 12/16/14.
+ */
+public class GroupResource extends AbstractEntityResource<Group> {
+ public GroupResource(String name, ClientContext context, UrlResource parent) {
+ super(name, context, parent);
+ }
+
+ @Override
+ protected Group instantiateT(ApiResponse response) {
+ return new Group(response);
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupsResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupsResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupsResource.java
new file mode 100644
index 0000000..5be68e1
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/GroupsResource.java
@@ -0,0 +1,29 @@
+package org.apache.usergrid.rest.test.resource2point0.endpoints;
+
+import org.apache.usergrid.rest.test.resource2point0.model.*;
+import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
+import org.apache.usergrid.rest.test.resource2point0.model.Group;
+
+import javax.ws.rs.core.MediaType;
+
+/**
+ * Created by rockerston on 12/16/14.
+ */
+public class GroupsResource extends AbstractCollectionResource<Group,GroupResource> {
+
+ public GroupsResource( ClientContext context, UrlResource parent) {
+ super("groups", context, parent);
+ }
+
+ @Override
+ protected Group instantiateT(ApiResponse response) {
+ return new Group(response);
+ }
+
+ @Override
+ protected GroupResource instantiateK(String name, ClientContext context, UrlResource parent) {
+ return new GroupResource(name,context,parent);
+ }
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RoleResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RoleResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RoleResource.java
new file mode 100644
index 0000000..b488da8
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RoleResource.java
@@ -0,0 +1,19 @@
+package org.apache.usergrid.rest.test.resource2point0.endpoints;
+
+import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
+import org.apache.usergrid.rest.test.resource2point0.model.Role;
+import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
+
+/**
+ * Created by rockerston on 12/16/14.
+ */
+public class RoleResource extends AbstractEntityResource<Role> {
+ public RoleResource(String name, ClientContext context, UrlResource parent) {
+ super(name, context, parent);
+ }
+
+ @Override
+ protected Role instantiateT(ApiResponse response) {
+ return new Role(response);
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RolesResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RolesResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RolesResource.java
new file mode 100644
index 0000000..963f936
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/RolesResource.java
@@ -0,0 +1,53 @@
+package org.apache.usergrid.rest.test.resource2point0.endpoints;
+
+import org.apache.usergrid.rest.test.resource2point0.endpoints.NamedResource;
+import org.apache.usergrid.rest.test.resource2point0.endpoints.UrlResource;
+import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
+import org.apache.usergrid.rest.test.resource2point0.model.Application;
+import org.apache.usergrid.rest.test.resource2point0.model.Group;
+import org.apache.usergrid.rest.test.resource2point0.model.Role;
+import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
+
+import javax.ws.rs.core.MediaType;
+
+/**
+ * Created by rockerston on 12/16/14.
+ */
+public class RolesResource extends NamedResource{
+
+ public RolesResource(ClientContext context, UrlResource parent) {
+ super("roles", context, parent);
+ }
+
+
+ public Role post(Role role){
+ ApiResponse response =getResource(true).type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON )
+ .post( ApiResponse.class, role );
+
+ return new Role(response);
+
+ }
+
+ public Application put(Application application){
+ ApiResponse response =getResource(true).type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON )
+ .put(ApiResponse.class, application );
+
+ return new Application(response);
+
+ }
+
+
+ public ApiResponse get(){
+ ApiResponse response =getResource(true).type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON )
+ .get(ApiResponse.class);
+
+ return response;
+
+ }
+
+ public void delete(Application application){
+ ApiResponse response =getResource(true).type( MediaType.APPLICATION_JSON_TYPE ).accept( MediaType.APPLICATION_JSON )
+ .delete(ApiResponse.class );
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UserResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UserResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UserResource.java
index 22b47ce..5220f13 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UserResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UserResource.java
@@ -21,7 +21,6 @@
package org.apache.usergrid.rest.test.resource2point0.endpoints;
import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
-import org.apache.usergrid.rest.test.resource2point0.model.Entity;
import org.apache.usergrid.rest.test.resource2point0.model.User;
import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UsersResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UsersResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UsersResource.java
index 4eb39b9..408c623 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UsersResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/UsersResource.java
@@ -21,7 +21,6 @@
package org.apache.usergrid.rest.test.resource2point0.endpoints;
import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
-import org.apache.usergrid.rest.test.resource2point0.model.Organization;
import org.apache.usergrid.rest.test.resource2point0.model.User;
import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Group.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Group.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Group.java
new file mode 100644
index 0000000..bea3c12
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Group.java
@@ -0,0 +1,37 @@
+package org.apache.usergrid.rest.test.resource2point0.model;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Created by rockerston on 12/16/14.
+ */
+public class Group extends Entity{
+
+ public Group(){}
+
+ public Group(String name, String path) {
+
+ this.put("name", name);
+ this.put("path", path);
+ }
+
+ public Group (ApiResponse<Entity> response){
+ if(response.getEntities() !=null && response.getEntities().size()>=1){
+ List<Entity> entities = response.getEntities();
+ Map<String,Object> entity = entities.get(0);
+ this.putAll(entity);
+ }
+ }
+
+ public String getName(){
+ return (String) this.get("name");
+ }
+
+ public String getPath(){
+ return (String) this.get("path");
+ }
+
+
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/e276e4fa/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Role.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Role.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Role.java
new file mode 100644
index 0000000..d318d72
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/model/Role.java
@@ -0,0 +1,28 @@
+package org.apache.usergrid.rest.test.resource2point0.model;
+
+/**
+ * Created by rockerston on 12/16/14.
+ */
+public class Role extends Entity{
+
+ public Role(){}
+
+ public Role(String name, String path) {
+
+ this.put("name", name);
+ this.put("path", path);
+ }
+
+ public Role (ApiResponse response){
+ setResponse( response,"owner" );
+ }
+
+ public String getName(){
+ return (String) this.get("name");
+ }
+
+ public String getPath(){
+ return (String) this.get("path");
+ }
+
+}