You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by to...@apache.org on 2014/09/29 22:52:42 UTC

[03/52] [abbrv] organized rest IT

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
new file mode 100644
index 0000000..25bc33b
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/MatrixQueryTests.java
@@ -0,0 +1,202 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.rest.applications.queries;
+
+import java.util.Map;
+import java.util.UUID;
+import org.apache.usergrid.rest.AbstractRestIT;
+import org.apache.usergrid.rest.TestContextSetup;
+import org.apache.usergrid.rest.test.resource.CustomCollection;
+import org.apache.usergrid.rest.test.resource.app.UsersCollection;
+import static org.apache.usergrid.utils.MapUtils.hashMap;
+import org.junit.Rule;
+import org.junit.Test;
+
+
+public class MatrixQueryTests extends AbstractRestIT {
+
+    @Rule
+    public TestContextSetup context = new TestContextSetup( this );
+
+
+    @Test
+    public void simpleMatrix() throws Exception {
+
+        /**
+         * Create 3 users which we will use for sub searching
+         */
+        UsersCollection users = context.users();
+
+        Map user1 =
+                hashMap( "username", "user1" ).map( "email", "testuser1@usergrid.com" ).map( "fullname", "Bob Smith" );
+
+        users.create( user1 );
+
+
+        Map user2 =
+                hashMap( "username", "user2" ).map( "email", "testuser2@usergrid.com" ).map( "fullname", "Fred Smith" );
+
+        users.create( user2 );
+
+
+        Map user3 = hashMap( "username", "user3" ).map( "email", "testuser3@usergrid.com" )
+                .map( "fullname", "Frank Grimes" );
+
+        users.create( user3 );
+
+
+        //now create 4 restaurants
+
+        CustomCollection restaurants = context.collection( "restaurants" );
+
+
+        Map restaurant1 = hashMap( "name", "Old Major" );
+
+        UUID restaurant1Id = getEntityId( restaurants.create( restaurant1 ), 0 );
+
+        Map restaurant2 = hashMap( "name", "tag" );
+
+        UUID restaurant2Id = getEntityId( restaurants.create( restaurant2 ), 0 );
+
+        Map restaurant3 = hashMap( "name", "Squeaky Bean" );
+
+        UUID restaurant3Id = getEntityId( restaurants.create( restaurant3 ), 0 );
+
+        Map restaurant4 = hashMap( "name", "Lola" );
+
+        UUID restaurant4Id = getEntityId( restaurants.create( restaurant4 ), 0 );
+
+
+        //now like our 3 users
+
+
+        //user 1 likes old major
+        users.user( "user1" ).connection( "likes" ).entity( restaurant1Id ).post();
+
+        users.user( "user1" ).connection( "likes" ).entity( restaurant2Id ).post();
+
+
+        //user 2 likes tag and squeaky bean
+        users.user( "user2" ).connection( "likes" ).entity( restaurant2Id ).post();
+
+        users.user( "user2" ).connection( "likes" ).entity( restaurant3Id ).post();
+
+        //user 3 likes  Lola (it shouldn't appear in the results)
+
+        users.user( "user3" ).connection( "likes" ).entity( restaurant4Id ).post();
+
+
+        //now query with matrix params
+
+
+//        JsonNode testGetUsers = context.collection( "users" ).get().get( "entities" );
+//
+//        JsonNode likesNode =
+//                context.collection( "users" ).entity( "user1" ).connection( "likes" ).get().get( "entities" );
+//
+//
+//        JsonNode queryResponse = context.collection( "users" ).withMatrix(
+//                hashMap( "ql", "where fullname contains 'Smith'" ).map( "limit", "1000" ) ).connection( "likes" ).get();
+//
+//        assertEquals( "Old Major", getEntityName( queryResponse, 0 ) );
+//
+//        assertEquals( "tag", getEntityName( queryResponse, 1 ) );
+//
+//        assertEquals( "Squeaky Bean", getEntityName( queryResponse, 2 ) );
+//
+//        /**
+//         * No additional elements in the response
+//         */
+//        assertNull( getEntity( queryResponse, 3 ) );
+    }
+
+
+//    @Test
+//    public void largeRootElements() {
+//
+//
+//        // create 4 restaurants
+//
+//        CustomCollection restaurants = context.collection( "restaurants" );
+//
+//
+//        Map restaurant1 = hashMap( "name", "Old Major" );
+//
+//        UUID restaurant1Id = getEntityId( restaurants.create( restaurant1 ), 0 );
+//
+//        Map restaurant2 = hashMap( "name", "tag" );
+//
+//        UUID restaurant2Id = getEntityId( restaurants.create( restaurant2 ), 0 );
+//
+//        Map restaurant3 = hashMap( "name", "Squeaky Bean" );
+//
+//        UUID restaurant3Id = getEntityId( restaurants.create( restaurant3 ), 0 );
+//
+//
+//        /**
+//         * Create 3 users which we will use for sub searching
+//         */
+//        UsersCollection users = context.users();
+//
+//
+//        int max = 1000;
+//        int count = ( int ) (max * 1.1);
+//
+//        for ( int i = 0; i < count; i++ ) {
+//
+//            String username = "user" + i;
+//            String email = username + "@usergrid.com";
+//
+//            Map user1 = hashMap( "username", username ).map( "email", email ).map( "fullname", i + " Smith" );
+//
+//            users.create( user1 );
+//
+//            /**
+//             * Change our links every other time.  This way we should get all 3
+//             */
+//
+//            if ( i % 2 == 0 ) {
+//                users.user( username ).connection( "likes" ).entity( restaurant1Id ).post();
+//
+//                users.user( username ).connection( "likes" ).entity( restaurant2Id ).post();
+//            }
+//            else {
+//
+//                users.user( username ).connection( "likes" ).entity( restaurant2Id ).post();
+//
+//                users.user( username ).connection( "likes" ).entity( restaurant3Id ).post();
+//            }
+//        }
+//
+//
+//
+//        //set our limit to 1k.  We should get only 3 results, but this should run
+//        JsonNode queryResponse = context.collection( "users" ).withMatrix(
+//                hashMap( "ql", "where fullname contains 'Smith'" ).map( "limit", "1000" ) ).connection( "likes" ).get();
+//
+//        assertEquals( "Old Major", getEntityName( queryResponse, 0 ) );
+//
+//        assertEquals( "tag", getEntityName( queryResponse, 1 ) );
+//
+//        assertEquals( "Squeaky Bean", getEntityName( queryResponse, 2 ) );
+//
+//        /**
+//         * No additional elements in the response
+//         */
+//        assertNull( getEntity( queryResponse, 3 ) );
+//    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
new file mode 100644
index 0000000..481f753
--- /dev/null
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/queries/OrderByTest.java
@@ -0,0 +1,172 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.usergrid.rest.applications.queries;
+
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.databind.JsonNode;
+import java.io.IOException;
+import org.junit.Rule;
+import org.junit.Test;
+import org.apache.usergrid.rest.AbstractRestIT;
+import org.apache.usergrid.rest.TestContextSetup;
+import org.apache.usergrid.rest.test.resource.CustomCollection;
+
+import static org.junit.Assert.assertEquals;
+import static org.apache.usergrid.utils.MapUtils.hashMap;
+
+
+/**
+ * // TODO: Document this
+ *
+ * @author ApigeeCorporation
+ * @since 4.0
+ */
+public class OrderByTest extends AbstractRestIT {
+
+    @Rule
+    public TestContextSetup context = new TestContextSetup( this );
+
+
+    @Test
+    // USERGRID-1400
+    public void orderByShouldNotAffectResults() throws IOException {
+
+        CustomCollection activities = context.collection( "activities" );
+
+        long created = 0;
+        Map actor = hashMap( "displayName", "Erin" );
+        Map props = new HashMap();
+        props.put( "actor", actor );
+        props.put( "verb", "go" );
+        props.put( "content", "bragh" );
+        for ( int i = 0; i < 20; i++ ) {
+            props.put( "ordinal", i );
+            JsonNode activity = activities.create( props );
+            if ( i == 5 ) {
+                created = activity.findValue( "created" ).longValue();
+            }
+        }
+
+        refreshIndex(context.getOrgName(), context.getAppName());
+
+        String query = "select * where created > " + created;
+        JsonNode node = activities.withQuery( query ).get();
+        assertEquals( 10, node.get( "entities" ).size() );
+
+        query = query + " order by created desc";
+        node = activities.withQuery( query ).get();
+        assertEquals( 10, node.get( "entities" ).size() );
+    }
+
+
+    @Test
+    // USERGRID-1520
+    public void orderByComesBeforeLimitResult() throws IOException {
+
+        CustomCollection activities = context.collection( "activities" );
+
+        Map actor = hashMap( "displayName", "Erin" );
+        Map props = new HashMap();
+        int checkResultsNum = 0;
+
+        props.put( "actor", actor );
+        props.put( "verb", "go" );
+        props.put( "content", "bragh" );
+
+        for ( int i = 0; i < 20; i++ ) {
+            props.put( "ordinal", i );
+            JsonNode activity = activities.create( props );
+        }
+
+        refreshIndex(context.getOrgName(), context.getAppName());
+
+        String query = "select * where created > " + 1 + " order by created desc";
+
+        JsonNode incorrectNode = activities.withQuery( query ).withLimit( 5 ).get();
+
+        assertEquals( 5, incorrectNode.get( "entities" ).size() );
+
+        while ( checkResultsNum < 5 ) {
+            assertEquals( activities.entityIndex( query, checkResultsNum ),
+                    activities.entityIndexLimit( query, 5, checkResultsNum ) );
+            checkResultsNum++;
+        }
+    }
+
+  /*
+   * public JsonNode entityIndex(JsonNode container, int index) { return
+   * container.get("entities").get(index); }
+   */
+
+
+    @Test
+    // USERGRID-1521
+    public void orderByReturnCorrectResults() throws IOException {
+
+        CustomCollection activities = context.collection( "activities" );
+
+        int size = 200;
+
+        Map<String, String> actor = hashMap( "displayName", "Erin" );
+        Map<String, Object> props = new HashMap<String, Object>();
+
+        props.put( "actor", actor );
+        props.put( "verb", "go" );
+        props.put( "content", "bragh" );
+
+        List<JsonNode> activites = new ArrayList<JsonNode>( size );
+
+        for ( int i = 0; i < size; i++ ) {
+            props.put( "ordinal", i );
+            JsonNode activity = activities.create( props ).get( "entities" ).get( 0 );
+            activites.add( activity );
+        }
+
+        refreshIndex(context.getOrgName(), context.getAppName());
+
+        long lastCreated = activites.get( activites.size() - 1 ).get( "created" ).asLong();
+
+        String errorQuery = String.format( "select * where created <= %d order by created desc", lastCreated );
+        String cursor = null;
+        int index = size - 1;
+
+        do {
+            JsonNode response = activities.withQuery( errorQuery ).get();
+            JsonNode cursorNode = response.get( "cursor" );
+
+            cursor = cursorNode != null ? cursorNode.asText() : null;
+
+            JsonNode entities = response.get( "entities" );
+
+            int returnSize = entities.size();
+
+            for ( int i = 0; i < returnSize; i++, index-- ) {
+                assertEquals( activites.get( index ), entities.get( i ) );
+            }
+
+            activities = activities.withCursor( cursor );
+        }
+        while ( cursor != null && cursor.length() > 0 );
+
+        assertEquals( "Paged to last result", -1, index );
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ActivityResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ActivityResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ActivityResourceIT.java
deleted file mode 100644
index 0a9b23d..0000000
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ActivityResourceIT.java
+++ /dev/null
@@ -1,188 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.rest.applications.users;
-
-
-import org.junit.Before;
-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.entities.Entity;
-import org.apache.usergrid.java.client.entities.User;
-import org.apache.usergrid.java.client.response.ApiResponse;
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.utils.UUIDUtils;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-
-/** @author tnine */
-@Concurrent()
-public class ActivityResourceIT extends AbstractRestIT {
-    private static Logger log = LoggerFactory.getLogger( ActivityResourceIT.class );
-
-    private static final String GROUP = "testGroup";
-
-    private static final String USER = "edanuff";
-
-    private static boolean groupCreated = false;
-
-
-    public ActivityResourceIT() throws Exception {
-
-    }
-
-
-    @Before
-    public void setupGroup() {
-        if ( groupCreated ) {
-            return;
-        }
-
-        client.createGroup( GROUP );
-
-        refreshIndex("test-organization", "test-app");
-
-        groupCreated = true;
-    }
-
-
-    @Test
-    public void postNullActivityToGroup() {
-
-        boolean fail = false;
-        try {
-            ApiResponse groupActivity = client.postGroupActivity( GROUP, null );
-            fail = (groupActivity.getError() != null);
-            
-        }
-        catch ( Exception e ) {
-            fail = true;
-        }
-        assertTrue( fail );
-    }
-
-
-    @Test
-    public void postGroupActivity() {
-
-        // don't populate the user, it will use the currently authenticated user.
-
-        String activityTitle = "testTitle" + UUIDUtils.newTimeUUID();
-        String activityDesc = "testActivity" + UUIDUtils.newTimeUUID();
-
-        client.postGroupActivity( GROUP, "POST", 
-            activityTitle, activityDesc, "testCategory", null, null, null, null, null );
-
-        refreshIndex("test-organization", "test-app");
-
-        Query results = client.queryActivityFeedForGroup( GROUP );
-
-        ApiResponse response = results.getResponse();
-
-        Entity result = response.getEntities().get( 0 );
-
-        assertEquals( "POST", result.getProperties().get( "verb" ).asText() );
-        assertEquals( activityTitle, result.getProperties().get( "title" ).asText() );
-        assertEquals( activityDesc, result.getProperties().get( "content" ).asText() );
-
-        // now pull the activity directly, we should find it
-
-        results = client.queryActivity();
-
-        response = results.getResponse();
-
-        result = response.getEntities().get( 0 );
-
-        assertEquals( "POST", result.getProperties().get( "verb" ).asText() );
-        assertEquals( activityTitle, result.getProperties().get( "title" ).asText() );
-        assertEquals( activityDesc, result.getProperties().get( "content" ).asText() );
-    }
-
-
-    @Test
-    public void postUserActivity() {
-
-        // don't populate the user, it will use the currently authenticated
-        // user.
-
-        User current = client.getLoggedInUser();
-
-        String activityTitle = "testTitle" + UUIDUtils.newTimeUUID();
-        String activityDesc = "testActivity" + UUIDUtils.newTimeUUID();
-
-        client.postUserActivity( "POST", activityTitle, activityDesc, "testCategory", current, null, null, null, null );
-
-        refreshIndex("test-organization", "test-app");
-
-        Query results = client.queryActivityFeedForUser( USER );
-
-        ApiResponse response = results.getResponse();
-
-        Entity result = response.getEntities().get( 0 );
-
-        assertEquals( "POST", result.getProperties().get( "verb" ).asText() );
-        assertEquals( activityTitle, result.getProperties().get( "title" ).asText() );
-        assertEquals( activityDesc, result.getProperties().get( "content" ).asText() );
-        assertEquals( current.getUuid().toString(), result.getProperties().get( "actor" ).get( "uuid" ).asText() );
-
-        // now pull the activity directly, we should find it
-
-        results = client.queryActivity();
-
-        response = results.getResponse();
-
-        result = response.getEntities().get( 0 );
-
-        assertEquals( "POST", result.getProperties().get( "verb" ).asText() );
-        assertEquals( activityTitle, result.getProperties().get( "title" ).asText() );
-        assertEquals( activityDesc, result.getProperties().get( "content" ).asText() );
-    }
-
-
-    @Test
-    public void postActivity() {
-
-        // don't populate the user, it will use the currently authenticated
-        // user.
-
-        User current = client.getLoggedInUser();
-
-        String activityTitle = "testTitle" + UUIDUtils.newTimeUUID();
-        String activityDesc = "testActivity" + UUIDUtils.newTimeUUID();
-
-        client.postActivity( "POST", activityTitle, activityDesc, "testCategory", current, null, null, null, null );
-
-        refreshIndex("test-organization", "test-app");
-
-        Query results = client.queryActivity();
-
-        ApiResponse response = results.getResponse();
-
-        Entity result = response.getEntities().get( 0 );
-
-        assertEquals( "POST", result.getProperties().get( "verb" ).asText() );
-        assertEquals( activityTitle, result.getProperties().get( "title" ).asText() );
-        assertEquals( activityDesc, result.getProperties().get( "content" ).asText() );
-
-        //ACTOR isn't coming back, why?
-        assertEquals( current.getUuid().toString(), result.getProperties().get( "actor" ).get( "uuid" ).asText() );
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/CollectionsResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/CollectionsResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/CollectionsResourceIT.java
deleted file mode 100644
index 0027f2e..0000000
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/CollectionsResourceIT.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.rest.applications.users;
-
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.ws.rs.core.MediaType;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import org.junit.Assert;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.usergrid.cassandra.Concurrent;
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.utils.UUIDUtils;
-
-import com.sun.jersey.api.client.UniformInterfaceException;
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.apache.usergrid.utils.MapUtils.hashMap;
-
-
-/**
- * @author zznate
- * @author tnine
- */
-@Concurrent()
-public class CollectionsResourceIT extends AbstractRestIT {
-
-    private static Logger log = LoggerFactory.getLogger( CollectionsResourceIT.class );
-
-
-    @Test
-    public void postToBadPath() throws IOException {
-        Map<String, String> payload = hashMap( "name", "Austin" ).map( "state", "TX" );
-        JsonNode node = null;
-        try {
-            node = mapper.readTree( resource().path( "/test-organization/test-organization/test-app/cities" )
-                    .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                    .type( MediaType.APPLICATION_JSON_TYPE ).post( String.class, payload ));
-        }
-        catch ( UniformInterfaceException e ) {
-            assertEquals( "Should receive a 400 Not Found", 400, e.getResponse().getStatus() );
-        }
-    }
-
-
-    @Test
-    public void postToEmptyCollection() throws IOException {
-        Map<String, String> payload = new HashMap<String, String>();
-
-        JsonNode node = mapper.readTree( resource().path( "/test-organization/test-app/cities" ).queryParam( "access_token", access_token )
-                        .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                        .post( String.class, payload ));
-        assertNull( getEntity( node, 0 ) );
-        assertNull( node.get( "count" ) );
-    }
-
-
-    /**
-     * emails with "me" in them are causing errors. Test we can post to a colleciton after creating a user with this
-     * email
-     * <p/>
-     * USERGRID-689
-     */
-    @Test
-    public void permissionWithMeInString() throws Exception {
-        // user is created get a token
-        createUser( "sumeet.agarwal@usergrid.com", "sumeet.agarwal@usergrid.com", "secret", "Sumeet Agarwal" );
-        refreshIndex("test-organization", "test-app");
-
-        String token = userToken( "sumeet.agarwal@usergrid.com", "secret" );
-
-
-        //create a permission with the path "me" in it
-        Map<String, String> data = new HashMap<String, String>();
-
-        data.put( "permission", "get,post,put,delete:/users/sumeet.agarwal@usergrid.com/**" );
-
-        String path = "/test-organization/test-app/users/sumeet.agarwal@usergrid.com/permissions";
-        JsonNode posted = mapper.readTree( resource().path( path ).queryParam( "access_token", token ).accept( MediaType.APPLICATION_JSON )
-                        .type( MediaType.APPLICATION_JSON_TYPE ).post( String.class, data ));
-
-
-        //now post data
-        data = new HashMap<String, String>();
-
-        data.put( "name", "profile-sumeet" );
-        data.put( "firstname", "sumeet" );
-        data.put( "lastname", "agarwal" );
-        data.put( "mobile", "122" );
-
-
-        posted = mapper.readTree( resource().path( "/test-organization/test-app/nestprofiles" ).queryParam( "access_token", token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                .post( String.class, data ));
-
-        refreshIndex("test-organization", "test-app");
-
-        JsonNode response = mapper.readTree( resource().path( "/test-organization/test-app/nestprofiles" ).queryParam( "access_token", token )
-                        .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                        .get( String.class ));
-
-        assertNotNull( getEntity( response, 0 ) );
-        assertNotNull( response.get( "count" ) );
-    }
-
-
-    @Test
-    public void stringWithSpaces() throws IOException {
-        Map<String, String> payload = hashMap( "summaryOverview", "My Summary" ).map( "caltype", "personal" );
-
-        JsonNode node = mapper.readTree( resource().path( "/test-organization/test-app/calendarlists" )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).post( String.class, payload ));
-
-
-        UUID id = getEntityId( node, 0 );
-
-        //post a second entity
-
-
-        payload = hashMap( "summaryOverview", "Your Summary" ).map( "caltype", "personal" );
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/calendarlists" ).queryParam( "access_token", access_token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                .post( String.class, payload ));
-
-
-        refreshIndex("test-organization", "test-app");
-
-        //query for the first entity
-
-        String query = "summaryOverview = 'My Summary'";
-
-
-        JsonNode queryResponse = mapper.readTree( resource().path( "/test-organization/test-app/calendarlists" )
-                .queryParam( "access_token", access_token ).queryParam( "ql", query )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-
-
-        UUID returnedId = getEntityId( queryResponse, 0 );
-
-        assertEquals( id, returnedId );
-
-        assertEquals( 1, queryResponse.get( "entities" ).size() );
-    }
-
-
-    /**
-     * Test to verify "name property returns twice in AppServices response" is fixed.
-     * https://apigeesc.atlassian.net/browse/USERGRID-2318
-     */
-    @Test
-    public void testNoDuplicateFields() throws Exception {
-
-        {
-            // create an "app_user" object with name fred
-            Map<String, String> payload = hashMap( "type", "app_user" ).map( "name", "fred" );
-
-            JsonNode node = mapper.readTree( resource().path( "/test-organization/test-app/app_users" )
-                    .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                    .type( MediaType.APPLICATION_JSON_TYPE ).post( String.class, payload ));
-
-            String uuidString = node.get( "entities" ).get( 0 ).get( "uuid" ).asText();
-            UUID entityId = UUIDUtils.tryGetUUID( uuidString );
-            Assert.assertNotNull( entityId );
-        }
-
-        refreshIndex("test-organization", "test-app");
-
-        {
-            // check REST API response for duplicate name property
-            // have to look at raw response data, Jackson will remove dups
-            String s = resource().path( "/test-organization/test-app/app_users/fred" )
-                    .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                    .type( MediaType.APPLICATION_JSON_TYPE ).get( String.class );
-
-            int firstFred = s.indexOf( "fred" );
-            int secondFred = s.indexOf( "fred", firstFred + 4 );
-            Assert.assertEquals( "Should not be more than one name property", -1, secondFred );
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ConnectionResourceTest.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ConnectionResourceTest.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ConnectionResourceTest.java
deleted file mode 100644
index 5ab5ccd..0000000
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/ConnectionResourceTest.java
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.rest.applications.users;
-
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.ws.rs.core.MediaType;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import org.junit.Rule;
-import org.junit.Test;
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.rest.TestContextSetup;
-import org.apache.usergrid.rest.test.resource.CustomCollection;
-
-import com.sun.jersey.api.client.ClientResponse;
-import com.sun.jersey.api.client.UniformInterfaceException;
-import java.io.IOException;
-
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.apache.usergrid.utils.MapUtils.hashMap;
-
-
-/**
- * // TODO: Document this
- *
- * @author ApigeeCorporation
- * @since 4.0
- */
-public class ConnectionResourceTest extends AbstractRestIT {
-    @Rule
-    public TestContextSetup context = new TestContextSetup( this );
-
-
-    @Test
-    public void connectionsQueryTest() throws IOException {
-
-
-        CustomCollection activities = context.collection( "peeps" );
-
-        Map stuff = hashMap( "type", "chicken" );
-
-        activities.create( stuff );
-
-
-        Map<String, Object> payload = new LinkedHashMap<String, Object>();
-        payload.put( "username", "todd" );
-
-        Map<String, Object> objectOfDesire = new LinkedHashMap<String, Object>();
-        objectOfDesire.put( "codingmunchies", "doritoes" );
-
-        resource().path( "/test-organization/test-app/users" ).queryParam( "access_token", access_token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                .post( String.class, payload );
-
-        payload.put( "username", "scott" );
-
-
-        resource().path( "/test-organization/test-app/users" ).queryParam( "access_token", access_token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                .post( String.class, payload );
-    /*finish setting up the two users */
-
-
-        refreshIndex("test-organization", "test-app");
-
-        ClientResponse toddWant = resource().path( "/test-organization/test-app/users/todd/likes/peeps" )
-                .queryParam( "access_token", access_token ).accept( MediaType.TEXT_HTML )
-                .type( MediaType.APPLICATION_JSON_TYPE ).post( ClientResponse.class, objectOfDesire );
-
-        assertEquals( 200, toddWant.getStatus() );
-
-        refreshIndex("test-organization", "test-app");
-
-        JsonNode node = mapper.readTree( resource().path( "/test-organization/test-app/peeps" ).queryParam( "access_token", access_token )
-                        .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                        .get( String.class ));
-
-        String uuid = node.get( "entities" ).get( 0 ).get( "uuid" ).textValue();
-
-
-        try {
-            node = mapper.readTree( resource().path( "/test-organization/test-app/users/scott/likes/" + uuid )
-                    .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                    .type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-            assert ( false );
-        }
-        catch ( UniformInterfaceException uie ) {
-            assertEquals( 404, uie.getResponse().getClientResponseStatus().getStatusCode() );
-        }
-    }
-
-
-    @Test
-    public void connectionsLoopbackTest() throws IOException {
-
-        CustomCollection things = context.collection( "things" );
-
-        UUID thing1Id = getEntityId( things.create( hashMap( "name", "thing1" ) ), 0 );
-
-        UUID thing2Id = getEntityId( things.create( hashMap( "name", "thing2" ) ), 0 );
-
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        //create the connection
-        things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).post();
-
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        //test we have the "likes" in our connection meta data response
-
-        JsonNode response = things.entity( "thing1" ).get();
-
-        String url = getEntity( response, 0 ).get( "metadata" ).get( "connections" ).get( "likes" ).asText();
-
-
-        assertNotNull( "Connection url returned in entity", url );
-
-        //trim off the start /
-        url = url.substring( 1 );
-
-
-        //now that we know the URl is correct, follow it
-
-        response = context.collection( url ).get();
-
-        UUID returnedUUID = getEntityId( response, 0 );
-
-        assertEquals( thing2Id, returnedUUID );
-
-
-        //now follow the loopback, which should be pointers to the other entity
-
-        url = getEntity( response, 0 ).get( "metadata" ).get( "connecting" ).get( "likes" ).asText();
-
-        assertNotNull( "Incoming edge URL provited", url );
-
-        //trim off the start /
-        url = url.substring( 1 );
-
-        //now we should get thing1 from the loopback url
-
-        response = context.collection( url ).get();
-
-        UUID returned = getEntityId( response, 0 );
-
-        assertEquals( "Should point to thing1 as an incoming entity connection", thing1Id, returned );
-    }
-
-
-    @Test
-    public void connectionsUUIDTest() throws IOException {
-
-        CustomCollection things = context.collection( "things" );
-
-        UUID thing1Id = getEntityId( things.create( hashMap( "name", "thing1" ) ), 0 );
-
-        UUID thing2Id = getEntityId( things.create( hashMap( "name", "thing2" ) ), 0 );
-
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        //create the connection
-        things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).post();
-
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        //test we have the "likes" in our connection meta data response
-
-        JsonNode response = things.entity( "thing1" ).get();
-
-        String url = getEntity( response, 0 ).get( "metadata" ).get( "connections" ).get( "likes" ).asText();
-
-
-        assertNotNull( "Connection url returned in entity", url );
-
-        //trim off the start /
-        url = url.substring( 1 );
-
-
-        //now that we know the URl is correct, follow it
-
-        response = context.collection( url ).get();
-
-        UUID returnedUUID = getEntityId( response, 0 );
-
-        assertEquals( thing2Id, returnedUUID );
-
-        //get on the collection works, now get it directly by uuid
-
-        //now we should get thing1 from the loopback url
-
-        response = things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).get();
-
-        UUID returned = getEntityId( response, 0 );
-
-        assertEquals( "Should point to thing2 as an entity connection", thing2Id, returned );
-    }
-
-    @Test //USERGRID-3011
-    public void connectionsDeleteSecondEntityInConnectionTest() throws IOException {
-
-        CustomCollection things = context.collection( "things" );
-
-        UUID thing1Id = getEntityId( things.create( hashMap( "name", "thing1" ) ), 0 );
-
-        UUID thing2Id = getEntityId( things.create( hashMap( "name", "thing2" ) ), 0 );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        //create the connection
-        things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).post();
-
-        JsonNode response = things.entity( "thing2" ).delete();
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        JsonNode node = things.entity ( "thing2" ).get();
-
-        assertNull(node);
-
-    }
-
-    @Test //USERGRID-3011
-    public void connectionsDeleteFirstEntityInConnectionTest() throws IOException {
-
-        CustomCollection things = context.collection( "things" );
-
-        UUID thing1Id = getEntityId( things.create( hashMap( "name", "thing1" ) ), 0 );
-
-        UUID thing2Id = getEntityId( things.create( hashMap( "name", "thing2" ) ), 0 );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        //create the connection
-        things.entity( thing1Id ).connection( "likes" ).entity( thing2Id ).post();
-
-        JsonNode response = things.entity( "thing1" ).delete();
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        JsonNode node = things.entity ( "thing1" ).get();
-
-        assertNull(node);
-
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/GroupResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/GroupResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/GroupResourceIT.java
deleted file mode 100644
index 6278067..0000000
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/GroupResourceIT.java
+++ /dev/null
@@ -1,295 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.rest.applications.users;
-
-
-import java.util.UUID;
-
-import javax.ws.rs.core.MediaType;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import java.io.IOException;
-import org.junit.Before;
-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.utils.UUIDUtils;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-
-/** @author tnine */
-@Concurrent()
-public class GroupResourceIT extends AbstractRestIT {
-    private static Logger log = LoggerFactory.getLogger( GroupResourceIT.class );
-
-    private static final String GROUP = "testGroup";
-
-    private static final String USER = "edanuff";
-
-    private static boolean groupCreated = false;
-
-
-    public GroupResourceIT() throws Exception {
-
-    }
-
-
-    @Before
-    public void setupGroup() {
-        if ( groupCreated ) {
-            return;
-        }
-
-        try {
-            client.createGroup( GROUP );
-            groupCreated = true;
-        }
-        catch ( Exception e ) {
-            log.error( "Error creating group " + GROUP, e );
-        }
-        refreshIndex("test-organization", "test-app");
-
-    }
-
-
-    @Test
-    public void failGroupNameValidation() {
-
-        ApiResponse response = client.createGroup( "groupName/withslash" );
-        assertNull( response.getError() );
-
-        refreshIndex("test-organization", "test-app");
-
-        {
-            boolean failed = false;
-            try {
-                ApiResponse groupResponse = client.createGroup( "groupName withspace" );
-                failed = groupResponse.getError() != null;
-            } catch ( Exception e ) {
-                failed = true;
-            }
-            assertTrue( failed );
-        }
-    }
-
-
-    @Test
-    public void postGroupActivity() {
-
-        // don't populate the user, it will use the currently authenticated
-        // user.
-
-        UUID id = UUIDUtils.newTimeUUID();
-
-        String groupPath = "groupPath" + id;
-        String groupTitle = "groupTitle " + id;
-        String groupName = "groupName" + id;
-
-        ApiResponse response = client.createGroup( groupPath, groupTitle, groupName );
-
-        assertNull( "Error was: " + response.getErrorDescription(), response.getError() );
-
-        refreshIndex("test-organization", "test-app");
-
-        UUID newId = response.getEntities().get( 0 ).getUuid();
-
-        Query results = client.queryGroups( String.format( "name='%s'", groupName ) );
-
-        response = results.getResponse();
-
-        UUID entityId = response.getEntities().get( 0 ).getUuid();
-
-        assertEquals( newId, entityId );
-
-        results = client.queryGroups( String.format( "title='%s'", groupTitle ) );
-
-        response = results.getResponse();
-
-        entityId = response.getEntities().get( 0 ).getUuid();
-
-        assertEquals( newId, entityId );
-
-        results = client.queryGroups( String.format( "title contains '%s'", id ) );
-
-        response = results.getResponse();
-
-        entityId = response.getEntities().get( 0 ).getUuid();
-
-        assertEquals( newId, entityId );
-
-        results = client.queryGroups( String.format( "path='%s'", groupPath ) );
-
-        response = results.getResponse();
-
-        entityId = response.getEntities().get( 0 ).getUuid();
-
-        assertEquals( newId, entityId );
-    }
-
-
-    @Test
-    public void addRemovePermission() throws IOException {
-
-        UUID id = UUIDUtils.newTimeUUID();
-
-        String groupName = "groupname" + id;
-
-        ApiResponse response = client.createGroup( groupName );
-        assertNull( "Error was: " + response.getErrorDescription(), response.getError() );
-
-        refreshIndex("test-organization", "test-app");
-
-        UUID createdId = response.getEntities().get( 0 ).getUuid();
-
-        // add Permission
-
-        String json = "{\"permission\":\"delete:/test\"}";
-        JsonNode node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/permissions" )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).post( String.class, json ));
-
-        // check it
-        assertNull( node.get( "errors" ) );
-        assertEquals( node.get( "data" ).get( 0 ).asText(), "delete:/test" );
-
-        refreshIndex("test-organization", "test-app");
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/permissions" )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertEquals( node.get( "data" ).get( 0 ).asText(), "delete:/test" );
-
-
-        // remove Permission
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/permissions" )
-                .queryParam( "access_token", access_token ).queryParam( "permission", "delete%3A%2Ftest" )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ).delete( String.class ));
-
-        // check it
-        assertNull( node.get( "errors" ) );
-        assertTrue( node.get( "data" ).size() == 0 );
-
-        refreshIndex("test-organization", "test-app");
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/permissions" )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertTrue( node.get( "data" ).size() == 0 );
-    }
-
-
-    @Test
-    public void addRemoveRole() throws IOException {
-
-        UUID id = UUIDUtils.newTimeUUID();
-
-        String groupName = "groupname" + id;
-        String roleName = "rolename" + id;
-
-        ApiResponse response = client.createGroup( groupName );
-        assertNull( "Error was: " + response.getErrorDescription(), response.getError() );
-
-        UUID createdId = response.getEntities().get( 0 ).getUuid();
-
-        refreshIndex("test-organization", "test-app");
-
-        // create Role
-
-        String json = "{\"title\":\"" + roleName + "\",\"name\":\"" + roleName + "\"}";
-        JsonNode node = mapper.readTree( resource().path( "/test-organization/test-app/roles" ).queryParam( "access_token", access_token )
-                        .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
-                        .post( String.class, json ));
-
-        // check it
-        assertNull( node.get( "errors" ) );
-
-
-        refreshIndex("test-organization", "test-app");
-
-        // add Role
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/roles/" + roleName )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).post( String.class ));
-
-        refreshIndex("test-organization", "test-app");
-
-        // check it
-        assertNull( node.get( "errors" ) );
-        assertEquals( node.get( "entities" ).get( 0 ).get( "name" ).asText(), roleName );
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/roles" )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertEquals( node.get( "entities" ).get( 0 ).get( "name" ).asText(), roleName );
-
-        // check root roles
-        node = mapper.readTree( resource().path( "/test-organization/test-app/roles" ).queryParam( "access_token", access_token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertTrue( node.get( "entities" ).findValuesAsText( "name" ).contains( roleName ) );
-
-        refreshIndex("test-organization", "test-app");
-
-        // remove Role
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/roles/" + roleName )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).delete( String.class ));
-        assertNull( node.get( "errors" ) );
-
-        refreshIndex("test-organization", "test-app");
-
-        node = mapper.readTree( resource().path( "/test-organization/test-app/groups/" + createdId + "/roles" )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertTrue( node.get( "entities" ).size() == 0 );
-
-        // check root roles - role should remain
-        node = mapper.readTree( resource().path( "/test-organization/test-app/roles" ).queryParam( "access_token", access_token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertTrue( node.get( "entities" ).findValuesAsText( "name" ).contains( roleName ) );
-
-        // now kill the root role
-        node = mapper.readTree( resource().path( "/test-organization/test-app/roles/" + roleName )
-                .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON )
-                .type( MediaType.APPLICATION_JSON_TYPE ).delete( String.class ));
-        assertNull( node.get( "errors" ) );
-
-        refreshIndex("test-organization", "test-app");
-
-        // now it should be gone
-        node = mapper.readTree( resource().path( "/test-organization/test-app/roles" ).queryParam( "access_token", access_token )
-                .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE ).get( String.class ));
-        assertNull( node.get( "errors" ) );
-        assertFalse( node.get( "entities" ).findValuesAsText( "name" ).contains( roleName ) );
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/MatrixQueryTests.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/MatrixQueryTests.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/MatrixQueryTests.java
deleted file mode 100644
index 475c8fb..0000000
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/MatrixQueryTests.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.rest.applications.users;
-
-import java.util.Map;
-import java.util.UUID;
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.rest.TestContextSetup;
-import org.apache.usergrid.rest.test.resource.CustomCollection;
-import org.apache.usergrid.rest.test.resource.app.UsersCollection;
-import static org.apache.usergrid.utils.MapUtils.hashMap;
-import org.junit.Rule;
-import org.junit.Test;
-
-
-public class MatrixQueryTests extends AbstractRestIT {
-
-    @Rule
-    public TestContextSetup context = new TestContextSetup( this );
-
-
-    @Test
-    public void simpleMatrix() throws Exception {
-
-        /**
-         * Create 3 users which we will use for sub searching
-         */
-        UsersCollection users = context.users();
-
-        Map user1 =
-                hashMap( "username", "user1" ).map( "email", "testuser1@usergrid.com" ).map( "fullname", "Bob Smith" );
-
-        users.create( user1 );
-
-
-        Map user2 =
-                hashMap( "username", "user2" ).map( "email", "testuser2@usergrid.com" ).map( "fullname", "Fred Smith" );
-
-        users.create( user2 );
-
-
-        Map user3 = hashMap( "username", "user3" ).map( "email", "testuser3@usergrid.com" )
-                .map( "fullname", "Frank Grimes" );
-
-        users.create( user3 );
-
-
-        //now create 4 restaurants
-
-        CustomCollection restaurants = context.collection( "restaurants" );
-
-
-        Map restaurant1 = hashMap( "name", "Old Major" );
-
-        UUID restaurant1Id = getEntityId( restaurants.create( restaurant1 ), 0 );
-
-        Map restaurant2 = hashMap( "name", "tag" );
-
-        UUID restaurant2Id = getEntityId( restaurants.create( restaurant2 ), 0 );
-
-        Map restaurant3 = hashMap( "name", "Squeaky Bean" );
-
-        UUID restaurant3Id = getEntityId( restaurants.create( restaurant3 ), 0 );
-
-        Map restaurant4 = hashMap( "name", "Lola" );
-
-        UUID restaurant4Id = getEntityId( restaurants.create( restaurant4 ), 0 );
-
-
-        //now like our 3 users
-
-
-        //user 1 likes old major
-        users.user( "user1" ).connection( "likes" ).entity( restaurant1Id ).post();
-
-        users.user( "user1" ).connection( "likes" ).entity( restaurant2Id ).post();
-
-
-        //user 2 likes tag and squeaky bean
-        users.user( "user2" ).connection( "likes" ).entity( restaurant2Id ).post();
-
-        users.user( "user2" ).connection( "likes" ).entity( restaurant3Id ).post();
-
-        //user 3 likes  Lola (it shouldn't appear in the results)
-
-        users.user( "user3" ).connection( "likes" ).entity( restaurant4Id ).post();
-
-
-        //now query with matrix params
-
-
-//        JsonNode testGetUsers = context.collection( "users" ).get().get( "entities" );
-//
-//        JsonNode likesNode =
-//                context.collection( "users" ).entity( "user1" ).connection( "likes" ).get().get( "entities" );
-//
-//
-//        JsonNode queryResponse = context.collection( "users" ).withMatrix(
-//                hashMap( "ql", "where fullname contains 'Smith'" ).map( "limit", "1000" ) ).connection( "likes" ).get();
-//
-//        assertEquals( "Old Major", getEntityName( queryResponse, 0 ) );
-//
-//        assertEquals( "tag", getEntityName( queryResponse, 1 ) );
-//
-//        assertEquals( "Squeaky Bean", getEntityName( queryResponse, 2 ) );
-//
-//        /**
-//         * No additional elements in the response
-//         */
-//        assertNull( getEntity( queryResponse, 3 ) );
-    }
-
-
-//    @Test
-//    public void largeRootElements() {
-//
-//
-//        // create 4 restaurants
-//
-//        CustomCollection restaurants = context.collection( "restaurants" );
-//
-//
-//        Map restaurant1 = hashMap( "name", "Old Major" );
-//
-//        UUID restaurant1Id = getEntityId( restaurants.create( restaurant1 ), 0 );
-//
-//        Map restaurant2 = hashMap( "name", "tag" );
-//
-//        UUID restaurant2Id = getEntityId( restaurants.create( restaurant2 ), 0 );
-//
-//        Map restaurant3 = hashMap( "name", "Squeaky Bean" );
-//
-//        UUID restaurant3Id = getEntityId( restaurants.create( restaurant3 ), 0 );
-//
-//
-//        /**
-//         * Create 3 users which we will use for sub searching
-//         */
-//        UsersCollection users = context.users();
-//
-//
-//        int max = 1000;
-//        int count = ( int ) (max * 1.1);
-//
-//        for ( int i = 0; i < count; i++ ) {
-//
-//            String username = "user" + i;
-//            String email = username + "@usergrid.com";
-//
-//            Map user1 = hashMap( "username", username ).map( "email", email ).map( "fullname", i + " Smith" );
-//
-//            users.create( user1 );
-//
-//            /**
-//             * Change our links every other time.  This way we should get all 3
-//             */
-//
-//            if ( i % 2 == 0 ) {
-//                users.user( username ).connection( "likes" ).entity( restaurant1Id ).post();
-//
-//                users.user( username ).connection( "likes" ).entity( restaurant2Id ).post();
-//            }
-//            else {
-//
-//                users.user( username ).connection( "likes" ).entity( restaurant2Id ).post();
-//
-//                users.user( username ).connection( "likes" ).entity( restaurant3Id ).post();
-//            }
-//        }
-//
-//
-//
-//        //set our limit to 1k.  We should get only 3 results, but this should run
-//        JsonNode queryResponse = context.collection( "users" ).withMatrix(
-//                hashMap( "ql", "where fullname contains 'Smith'" ).map( "limit", "1000" ) ).connection( "likes" ).get();
-//
-//        assertEquals( "Old Major", getEntityName( queryResponse, 0 ) );
-//
-//        assertEquals( "tag", getEntityName( queryResponse, 1 ) );
-//
-//        assertEquals( "Squeaky Bean", getEntityName( queryResponse, 2 ) );
-//
-//        /**
-//         * No additional elements in the response
-//         */
-//        assertNull( getEntity( queryResponse, 3 ) );
-//    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/3993f081/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/OwnershipResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/OwnershipResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/OwnershipResourceIT.java
deleted file mode 100644
index d11f473..0000000
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/users/OwnershipResourceIT.java
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.usergrid.rest.applications.users;
-
-
-import com.fasterxml.jackson.databind.JsonNode;
-import java.io.IOException;
-import org.junit.Rule;
-import org.junit.Test;
-import org.apache.usergrid.cassandra.Concurrent;
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.rest.TestContextSetup;
-import org.apache.usergrid.rest.test.resource.Connection;
-import org.apache.usergrid.rest.test.resource.CustomCollection;
-import org.apache.usergrid.rest.test.resource.app.queue.DevicesCollection;
-import org.apache.usergrid.rest.test.security.TestAppUser;
-import org.apache.usergrid.rest.test.security.TestUser;
-import org.apache.usergrid.utils.MapUtils;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-
-/**
- *
- */
-@Concurrent()
-public class OwnershipResourceIT extends AbstractRestIT {
-
-    @Rule
-    public TestContextSetup context = new TestContextSetup( this );
-
-
-    @Test
-    public void meVerify() throws Exception {
-
-        context.clearUser();
-
-        String email = "testuser1@usergrid.org";
-        TestUser user1 = new TestAppUser( email, "password", email ).create( context );
-        refreshIndex(context.getOrgName(), context.getAppName());
-        user1.login( context ).makeActive( context );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        String token = user1.getToken();
-        JsonNode userNode = context.application().users().user( "me" ).get();
-        assertNotNull( userNode );
-
-        String uuid = userNode.get( "entities" ).get( 0 ).get( "uuid" ).textValue();
-        assertNotNull( uuid );
-
-        setup.getMgmtSvc().revokeAccessTokenForAppUser( token );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        try {
-            context.application().users().user( "me" ).get();
-            fail();
-        }
-        catch ( Exception ex ) {
-            ex.printStackTrace();
-            assertTrue( ex.getMessage().contains( "401" ) );
-        }
-    }
-
-
-    @Test
-    public void contextualPathOwnership() throws IOException {
-
-        // anonymous user
-        context.clearUser();
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        TestUser user1 = new TestAppUser( "testuser1@usergrid.org", "password", "testuser1@usergrid.org" ).create( context );
-        refreshIndex(context.getOrgName(), context.getAppName());
-        user1.login( context );
-        user1.makeActive( context );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        // create device 1 on user1 devices
-        context.application().users().user( "me" ).devices()
-               .create( MapUtils.hashMap( "name", "device1" ).map( "number", "5551112222" ) );
-
-        // anonymous user
-        context.clearUser();
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        // create device 2 on user 2
-        TestUser user2 = new TestAppUser( "testuser2@usergrid.org", "password", "testuser2@usergrid.org" ).create( context );
-        refreshIndex(context.getOrgName(), context.getAppName());
-        user2.login( context );
-        user2.makeActive( context );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        context.application().users().user( "me" ).devices()
-               .create( MapUtils.hashMap( "name", "device2" ).map( "number", "5552223333" ) );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        // now query on user 1.
-
-        DevicesCollection devices = context.withUser( user1 ).application().users().user( "me" ).devices();
-
-        JsonNode data = devices.device( "device1" ).get();
-        assertNotNull( data );
-        assertEquals( "device1", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // check we can't see device2
-        data = devices.device( "device2" ).get();
-        assertNull( data );
-
-        // do a collection load, make sure we're not loading device 2
-        data = devices.get();
-
-        assertEquals( "device1", getEntity( data, 0 ).get( "name" ).asText() );
-        assertNull( getEntity( data, 1 ) );
-
-        // log in as user 2 and check it
-        devices = context.withUser( user2 ).application().users().user( "me" ).devices();
-
-        data = devices.device( "device2" ).get();
-        assertNotNull( data );
-        assertEquals( "device2", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // check we can't see device1
-        data = devices.device( "device1" ).get();
-        assertNull( data );
-
-        // do a collection load, make sure we're not loading device 1
-        data = devices.get();
-
-        assertEquals( "device2", getEntity( data, 0 ).get( "name" ).asText() );
-        assertNull( getEntity( data, 1 ) );
-
-        // we should see both devices when loaded from the root application
-
-        // test for user 1
-
-        devices = context.withUser( user1 ).application().devices();
-        data = devices.device( "device1" ).get();
-
-        assertNotNull( data );
-        assertEquals( "device1", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = devices.device( "device2" ).get();
-
-        assertNotNull( data );
-        assertEquals( "device2", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // test for user 2
-        data = context.withUser( user2 ).application().devices().device( "device1" ).get();
-
-        assertNotNull( data );
-        assertEquals( "device1", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = devices.device( "device2" ).get();
-
-        assertNotNull( data );
-        assertEquals( "device2", getEntity( data, 0 ).get( "name" ).asText() );
-    }
-
-
-    @Test
-    public void contextualConnectionOwnership() throws IOException {
-
-        // anonymous user
-        context.clearUser();
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        String email = "testuser1@usergrid.org";
-        TestUser user1 = new TestAppUser( email, "password", email ).create( context );
-        refreshIndex(context.getOrgName(), context.getAppName());
-        user1.login( context ).makeActive( context );
-
-        // create a 4peaks restaurant
-        JsonNode data = context.application()
-                .collection( "restaurants" ).create( MapUtils.hashMap( "name", "4peaks" ) );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        // create our connection
-        data = context.application().users().user( "me" )
-                .connection( "likes" ).collection( "restaurants" ).entity( "4peaks" ).post();
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-       String peaksId = getEntity( data, 0 ).get( "uuid" ).asText();
-
-        // anonymous user
-        context.clearUser();
-
-        // create a restaurant and link it to user 2
-        email = "testuser2@usergrid.org";
-        TestUser user2 = new TestAppUser( email, "password", email ).create( context );
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        user2.login( context ).makeActive( context );
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        data = context.application().collection( "restaurants" )
-                      .create( MapUtils.hashMap( "name", "arrogantbutcher" ) );
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        data = context.application().users().user( "me" ).connection( "likes" ).collection( "restaurants" )
-                      .entity( "arrogantbutcher" ).post();
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        String arrogantButcherId = getEntity( data, 0 ).get( "uuid" ).asText();
-
-        // now query on user 1.
-
-        CustomCollection likeRestaurants =
-                context.withUser( user1 ).application().users().user( "me" ).connection( "likes" )
-                       .collection( "restaurants" );
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        // check we can get it via id
-        data = likeRestaurants.entity( peaksId ).get();
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // check we can get it by name
-        data = likeRestaurants.entity( "4peaks" ).get();
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // check we can't see arrogantbutcher by name or id
-        data = likeRestaurants.entity( "arrogantbutcher" ).get();
-        assertNull( data );
-
-        data = likeRestaurants.entity( arrogantButcherId ).get();
-        assertNull( data );
-
-        // do a collection load, make sure we're not entities we shouldn't see
-        data = likeRestaurants.get();
-
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-        assertNull( getEntity( data, 1 ) );
-
-        // log in as user 2 and check it
-        likeRestaurants = context.withUser( user2 ).application().users().user( "me" ).connection( "likes" )
-                                 .collection( "restaurants" );
-
-        data = likeRestaurants.entity( arrogantButcherId ).get();
-        assertNotNull( data );
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = likeRestaurants.entity( "arrogantbutcher" ).get();
-        assertNotNull( data );
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // check we can't see 4peaks
-        data = likeRestaurants.entity( "4peaks" ).get();
-        assertNull( data );
-
-        data = likeRestaurants.entity( peaksId ).get();
-        assertNull( data );
-
-        // do a collection load, make sure we're not loading device 1
-        data = likeRestaurants.get();
-
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-        assertNull( getEntity( data, 1 ) );
-
-        // we should see both devices when loaded from the root application
-
-        // test for user 1
-
-        CustomCollection restaurants = context.withUser( user1 ).application().collection( "restaurants" );
-        data = restaurants.entity( "4peaks" ).get();
-
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = restaurants.entity( "arrogantbutcher" ).get();
-
-        assertNotNull( data );
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // test for user 2
-        restaurants = context.withUser( user1 ).application().collection( "restaurants" );
-        data = restaurants.entity( "4peaks" ).get();
-
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = restaurants.entity( "arrogantbutcher" ).get();
-
-        assertNotNull( data );
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-    }
-
-
-    @Test
-    public void contextualConnectionOwnershipGuestAccess() throws IOException {
-
-        //set up full GET,PUT,POST,DELETE access for guests
-        context.application().collection( "roles" ).entity( "guest" ).collection( "permissions" )
-               .create( MapUtils.hashMap( "permission", "get,put,post,delete:/**" ) );
-
-
-        // anonymous user
-        context.clearUser();
-
-
-        JsonNode city = context.application().collection( "cities" ).create( MapUtils.hashMap( "name", "tempe" ) );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        String cityId = getEntity( city, 0 ).get( "uuid" ).asText();
-
-        // create a 4peaks restaurant
-        JsonNode data = context.application().collection( "cities" ).entity( "tempe" ).connection( "likes" )
-                               .collection( "restaurants" ).create( MapUtils.hashMap( "name", "4peaks" ) );
-
-        String peaksId = getEntity( data, 0 ).get( "uuid" ).asText();
-
-        data = context.application().collection( "cities" ).entity( "tempe" ).connection( "likes" )
-                      .collection( "restaurants" ).create( MapUtils.hashMap( "name", "arrogantbutcher" ) );
-
-        String arrogantButcherId = getEntity( data, 0 ).get( "uuid" ).asText();
-
-        // now query on user 1.
-
-        Connection likeRestaurants =
-                context.application().collection( "cities" ).entity( "tempe" ).connection( "likes" );
-
-        refreshIndex(context.getOrgName(), context.getAppName());
-
-        // check we can get it via id with no collection name
-        data = likeRestaurants.entity( peaksId ).get();
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = likeRestaurants.entity( arrogantButcherId ).get();
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // check we can get it via id with a collection name
-        data = likeRestaurants.collection( "restaurants" ).entity( peaksId ).get();
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = likeRestaurants.collection( "restaurants" ).entity( arrogantButcherId ).get();
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-
-        // do a delete either token should work
-        data = likeRestaurants.collection( "restaurants" ).entity( peaksId ).delete();
-
-        assertNotNull( data );
-        assertEquals( "4peaks", getEntity( data, 0 ).get( "name" ).asText() );
-
-        data = likeRestaurants.collection( "restaurants" ).entity( arrogantButcherId ).delete();
-
-        assertNotNull( data );
-        assertEquals( "arrogantbutcher", getEntity( data, 0 ).get( "name" ).asText() );
-    }
-}