Added fixes and corresponding changes to AdminUsersIT.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/ce6626d4 Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/ce6626d4 Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/ce6626d4 Branch: refs/heads/two-dot-o-dev Commit: ce6626d4ec7626525b16f77c0450dfc9993d965b Parents: ee21606 Author: GERey <[email protected]> Authored: Thu Mar 19 13:01:39 2015 -0700 Committer: GERey <[email protected]> Committed: Thu Mar 19 13:01:39 2015 -0700 ---------------------------------------------------------------------- .../usergrid/rest/management/AdminUsersIT.java | 30 ++++++++++++++------ .../rest/test/resource2point0/ClientSetup.java | 15 ++++++++-- .../rest/test/resource2point0/RestClient.java | 1 + .../endpoints/NamedResource.java | 13 ++++++++- .../endpoints/mgmt/TokenResource.java | 6 ++++ 5 files changed, 54 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ce6626d4/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java index 973ed7d..36a9400 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/management/AdminUsersIT.java @@ -41,6 +41,7 @@ import org.apache.usergrid.persistence.index.utils.UUIDUtils; import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT; import org.apache.usergrid.rest.test.resource2point0.endpoints.mgmt.ManagementResource; import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse; +import org.apache.usergrid.rest.test.resource2point0.model.Credentials; 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.Token; @@ -58,6 +59,7 @@ import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TES import static org.apache.usergrid.management.AccountCreationProps.PROPERTIES_TEST_ACCOUNT_ADMIN_USER_PASSWORD; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -98,7 +100,8 @@ public class AdminUsersIT extends AbstractRestIT { this.refreshIndex(); //Get the token using the new password - management.token().post( Token.class, new Token( username, "testPassword" ) ); + Token adminToken = management.token().post( Token.class, new Token( username, "testPassword" ) ); + management.token().setToken( adminToken ); //Check that we cannot get the token using the old password try { @@ -131,7 +134,8 @@ public class AdminUsersIT extends AbstractRestIT { //Get the token using the new password - management.token().post( Token.class, new Token( username, "testPassword" ) ); + Token adminToken = management.token().post( Token.class, new Token( username, "testPassword" ) ); + management.token().setToken( adminToken ); @@ -184,7 +188,7 @@ public class AdminUsersIT extends AbstractRestIT { */ @Test public void mgmtUserFeed() throws Exception { - + //TODO: fix or establish what the user feed should do Entity mgmtUserFeedEntity = management.users().user( clientSetup.getUsername() ).feed().get(); String correctValue= "<a href=mailto:"+clientSetup.getUsername(); //user_org.apache.usergrid.rest.management.adminusersit.mgmtuserfeed4c3e53e0-acc7-11e4-b527-0b8af3c58...@usergrid.com">user_org.apache.usergrid.rest.management.AdminUsersIT.mgmtUserFeed4c3e53e0-acc7-11e4-b527-0b8af3c5813f (user_org.apache.usergrid.rest.management.adminusersit.mgmtuserfeed4c3e53e0-acc7-11e4-b527-0b8af3c58...@usergrid.com)</a> created a new organization account named org_org.apache.usergrid.rest.management.AdminUsersIT.mgmtUserFeed4c3ec910-acc7-11e4-94c8-33f0d48a5559 @@ -192,6 +196,7 @@ public class AdminUsersIT extends AbstractRestIT { ArrayList<Map<String,Object>> feedEntityMap = ( ArrayList ) mgmtUserFeedEntity.get( "entities" ); assertNotNull( feedEntityMap ); + assertNotEquals( 0,feedEntityMap.size() ); assertNotNull( feedEntityMap.get( 0 ).get( "title" ) ); assertTrue("Needs to contain the feed of the specific management user", ((String)(feedEntityMap.get( 0 ).get( "title" ))).contains(clientSetup.getUsername() )); @@ -600,20 +605,29 @@ public class AdminUsersIT extends AbstractRestIT { Entity adminUserPayload = new Entity(); String username = "listOrgUsersByName"+UUIDUtils.newTimeUUID(); + Credentials orgCredentials = clientSetup.getClientCredentials(); adminUserPayload.put( "username", username ); adminUserPayload.put( "name", username ); adminUserPayload.put( "email", username+"@usergrid.com" ); adminUserPayload.put( "password", username ); - //post new admin user besides the default - management().orgs().organization( clientSetup.getOrganizationName() ).users().post(ApiResponse.class ,adminUserPayload ); +// //If we comment this out it works, shouldn't using an organization Token for an endpoint + //with organization access work? + //TODO:investigate above comment +// Token organizationToken = +// management().token().post( Token.class, +// new Token( "client_credentials", orgCredentials.getClientId(), orgCredentials.getClientSecret() ) ); +// management().token().setToken( organizationToken ); + + //Create admin user + management().orgs().organization( clientSetup.getOrganizationName() ).users().postWithToken(ApiResponse.class ,adminUserPayload ); refreshIndex(); //Retrieves the admin users - Entity adminUsers = management().orgs().organization( clientSetup.getOrganizationName() ).users().get(Entity.class); + ApiResponse adminUsers = management().orgs().organization( clientSetup.getOrganizationName() ).users().get(ApiResponse.class); - assertEquals("There need to be 2 admin users",2,( ( ArrayList ) adminUsers.getResponse().getData() ).size()); + assertEquals("There need to be 2 admin users",2,( ( ArrayList ) adminUsers.getData() ).size()); } @@ -627,7 +641,7 @@ public class AdminUsersIT extends AbstractRestIT { public void createOrgFromUserConnectionFail() throws Exception { Token token = management().token().post(Token.class ,new Token( clientSetup.getUsername(),clientSetup.getPassword() ) ); - + management().token().setToken( token ); // try to create the same org again off the connection try { management().users().user( clientSetup.getUsername() ).organizations().post( clientSetup.getOrganization(),token ); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ce6626d4/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/ClientSetup.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/ClientSetup.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/ClientSetup.java index e68cee5..252f212 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/ClientSetup.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/ClientSetup.java @@ -24,6 +24,8 @@ package org.apache.usergrid.rest.test.resource2point0; import java.io.IOException; import org.apache.usergrid.rest.test.resource2point0.model.Application; +import org.apache.usergrid.rest.test.resource2point0.model.Credentials; +import org.apache.usergrid.rest.test.resource2point0.model.Entity; import org.apache.usergrid.rest.test.resource2point0.model.Token; import org.junit.rules.TestRule; import org.junit.runner.Description; @@ -49,6 +51,7 @@ public class ClientSetup implements TestRule { protected Token superuserToken; protected String superuserName = "superuser"; protected String superuserPassword = "superpassword"; + protected Credentials clientCredentials; protected Organization organization; protected Application application; @@ -92,6 +95,8 @@ public class ClientSetup implements TestRule { restClient.superuserSetup(); superuserToken = restClient.management().token().post(Token.class, new Token( superuserName, superuserPassword ) ); + restClient.management().token().setToken( superuserToken ); + username = "user_"+name + UUIDUtils.newTimeUUID(); password = username; @@ -99,10 +104,12 @@ public class ClientSetup implements TestRule { appName = "app_"+name+UUIDUtils.newTimeUUID(); organization = restClient.management().orgs() - .post(new Organization( - orgName,username,username+"@usergrid.com",username,username, null )); + .post( new Organization( orgName, username, username + "@usergrid.com", username, + username, null ) ); + clientCredentials = restClient.management().orgs().organization( orgName ).credentials().get(); Token token = restClient.management().token().post(Token.class,new Token(username,username)); + restClient.management().token().setToken( token ); restClient.management().orgs().organization(organization.getName()).app().post(new Application(appName)); @@ -132,6 +139,10 @@ public class ClientSetup implements TestRule { return superuserPassword; } + public Credentials getClientCredentials() { + return clientCredentials; + } + public void refreshIndex() { this.restClient.refreshIndex(getOrganizationName(),getAppName()); } http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ce6626d4/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/RestClient.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/RestClient.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/RestClient.java index ed7057f..5e6c5d5 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/RestClient.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/RestClient.java @@ -115,6 +115,7 @@ public class RestClient implements UrlResource { this.getResource().path( "system/superuser/setup" ) .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON ).get( JsonNode.class ); + client.removeFilter( httpBasicAuthFilter ); } //todo:fix this method for the client. http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ce6626d4/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java index c2d0cf3..fc610bd 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/NamedResource.java @@ -71,7 +71,10 @@ public abstract class NamedResource implements UrlResource { public WebResource getResource(boolean useToken,Token token) { WebResource resource = parent.getResource().path( getPath() ); token = token !=null ? token : this.context.getToken(); - return useToken ? resource.queryParam("access_token",token.getAccessToken()) : parent.getResource().path( getPath() ); + //error checking + if(token == null) + return resource; + return useToken ? resource.queryParam("access_token",token.getAccessToken()) : resource; } protected WebResource addParametersToResource(WebResource resource, final QueryParameters parameters){ @@ -147,6 +150,14 @@ public abstract class NamedResource implements UrlResource { } + public <T> T postWithToken(Class<T> type, Object requestEntity) { + GenericType<T> gt = new GenericType<>((Class) type); + return getResource(true).type(MediaType.APPLICATION_JSON_TYPE) + .accept( MediaType.APPLICATION_JSON ) + .post(gt.getRawClass(), requestEntity); + + } + //For edge cases like Organizations and Tokens without any payload public <T> T post(Class<T> type) { GenericType<T> gt = new GenericType<>((Class) type); http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/ce6626d4/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java ---------------------------------------------------------------------- diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java index cdd6663..6a0c5d6 100644 --- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java +++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/TokenResource.java @@ -50,6 +50,12 @@ public class TokenResource extends NamedResource { return token; } + + /** + * Convinece method to set the token needed for each call. + * @param token + * @return + */ public TokenResource setToken(Token token) { this.context.setToken(token); return this;
