You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sn...@apache.org on 2015/06/18 22:09:40 UTC
incubator-usergrid git commit: Rewrote all six tests in
AssetResourceIT to use the new test framework,
and made some small additions to the framework to support assets.
Repository: incubator-usergrid
Updated Branches:
refs/heads/USERGRID=745 47db44c89 -> 242384064
Rewrote all six tests in AssetResourceIT to use the new test framework, and made some small additions to the framework to support assets.
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/24238406
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/24238406
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/24238406
Branch: refs/heads/USERGRID=745
Commit: 2423840642a58365b3c57c1d6fd4b71e3d242c7c
Parents: 47db44c
Author: Dave Johnson <dm...@apigee.com>
Authored: Thu Jun 18 16:09:23 2015 -0400
Committer: Dave Johnson <dm...@apigee.com>
Committed: Thu Jun 18 16:09:23 2015 -0400
----------------------------------------------------------------------
.../applications/assets/AssetResourceIT.java | 407 +++++--------------
.../endpoints/NamedResource.java | 48 ++-
.../endpoints/mgmt/OrgResource.java | 5 -
.../endpoints/mgmt/OrganizationResource.java | 15 +-
4 files changed, 161 insertions(+), 314 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24238406/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AssetResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AssetResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AssetResourceIT.java
index 2b0cbf7..493d140 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AssetResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/applications/assets/AssetResourceIT.java
@@ -17,15 +17,14 @@
package org.apache.usergrid.rest.applications.assets;
-import com.fasterxml.jackson.databind.JsonNode;
import com.sun.jersey.multipart.FormDataMultiPart;
import org.apache.commons.io.IOUtils;
-import org.apache.usergrid.rest.applications.utils.UserRepo;
import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT;
+import org.apache.usergrid.rest.test.resource2point0.model.ApiResponse;
+import org.apache.usergrid.rest.test.resource2point0.model.Entity;
import org.apache.usergrid.services.assets.data.AssetUtils;
import org.junit.Assert;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -36,9 +35,7 @@ import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import java.util.concurrent.TimeoutException;
-import static org.apache.usergrid.utils.JsonUtils.mapToFormattedJsonString;
import static org.apache.usergrid.utils.MapUtils.hashMap;
import static org.junit.Assert.*;
@@ -47,111 +44,49 @@ public class AssetResourceIT extends AbstractRestIT {
private String access_token;
private Logger LOG = LoggerFactory.getLogger( AssetResourceIT.class );
- UserRepo userRepo;
@Before
public void setup(){
- userRepo = new UserRepo(this.clientSetup);
access_token = this.getAdminToken().getAccessToken();
}
- /** @Deprecated Tests legacy API */
- @Test
- public void verifyBinaryCrud() throws Exception {
-
- userRepo.load();
-
- this.refreshIndex();
-
- UUID userId = userRepo.getByUserName( "user1" );
- Map<String, String> payload =
- hashMap( "path", "my/clean/path" ).map( "owner", userId.toString() ).map( "someprop", "somevalue" );
-
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
-
- JsonNode node =
- mapper.readTree( resource().path( orgAppPath + "/assets" ).queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON ).type( MediaType.APPLICATION_JSON_TYPE )
- .post( String.class, payload ) );
- JsonNode idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- UUID id = UUID.fromString( idNode.textValue() );
- assertNotNull( idNode.textValue() );
-
- byte[] data = IOUtils.toByteArray( this.getClass().getResourceAsStream( "/cassandra_eye.jpg" ) );
- resource().path( orgAppPath + "/assets/" + id.toString() + "/data" )
- .queryParam( "access_token", access_token ).type( MediaType.APPLICATION_OCTET_STREAM_TYPE ).put( data );
-
- refreshIndex();
- InputStream is = resource().path( orgAppPath + "/assets/" + id.toString() + "/data" )
- .queryParam( "access_token", access_token ).get( InputStream.class );
-
- byte[] foundData = IOUtils.toByteArray( is );
- assertEquals( 7979, foundData.length );
-
- refreshIndex();
-
- node = mapper.readTree( resource().path( orgAppPath + "/assets/my/clean/path" )
- .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON_TYPE )
- .get( String.class ) );
-
- idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- assertEquals( id.toString(), idNode.textValue() );
- }
-
-
@Test
public void octetStreamOnDynamicEntity() throws Exception {
this.refreshIndex();
+ // post an asset entity
+
Map<String, String> payload = hashMap( "name", "assetname" );
+ ApiResponse postResponse = pathResource( getOrgAppPath( "foos" )).post( payload );
+ UUID assetId = postResponse.getEntities().get(0).getUuid();
+ assertNotNull(assetId);
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
+ // post a binary asset to that entity
- JsonNode node = mapper.readTree( resource().path( orgAppPath + "/foos" )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.APPLICATION_JSON_TYPE )
- .post( String.class, payload ) );
+ byte[] data = IOUtils.toByteArray( getClass().getResourceAsStream( "/cassandra_eye.jpg" ) );
+ ApiResponse putResponse = pathResource( getOrgAppPath("foos/" + assetId) )
+ .put( data, MediaType.APPLICATION_OCTET_STREAM_TYPE );
- JsonNode idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- String uuid = idNode.textValue();
- assertNotNull( uuid );
+ // check that the asset entity has asset metadata
- byte[] data = IOUtils.toByteArray( this.getClass().getResourceAsStream( "/cassandra_eye.jpg" ) );
- resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .type( MediaType.APPLICATION_OCTET_STREAM_TYPE )
- .put( data );
-
- // get entity
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON_TYPE )
- .get( String.class ));
- LOG.info( "Node: " + mapToFormattedJsonString( node ) );
-
- Assert.assertEquals( "image/jpeg", node.findValue( AssetUtils.CONTENT_TYPE ).textValue() );
- Assert.assertEquals( 7979, node.findValue( "content-length" ).intValue() );
- idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- assertEquals( uuid, idNode.textValue() );
-
- // get data by UUID
- InputStream is = resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_OCTET_STREAM_TYPE )
- .get( InputStream.class );
+ ApiResponse getResponse = pathResource( getOrgAppPath( "foos/" + assetId) ).get( ApiResponse.class );
+ Entity entity = getResponse.getEntities().get(0);
+ Map<String, Object> fileMetadata = (Map<String, Object>)entity.get("file-metadata");
+ Assert.assertEquals( "image/jpeg", fileMetadata.get( "content-type" ) );
+ Assert.assertEquals( 7979, fileMetadata.get( "content-length" ));
+ assertEquals( assetId, entity.getUuid() );
+
+ // get binary asset by UUID
+ InputStream is = pathResource( getOrgAppPath("foos/" + assetId) ).getAssetAsStream();
byte[] foundData = IOUtils.toByteArray( is );
assertEquals( 7979, foundData.length );
- refreshIndex();
-
- // get data by name
- is = resource().path( orgAppPath + "/foos/assetname" ).queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_OCTET_STREAM_TYPE ).get( InputStream.class );
+ // get binary asset by name
+ is = pathResource( getOrgAppPath("foos/assetname") ).getAssetAsStream();
foundData = IOUtils.toByteArray( is );
assertEquals( 7979, foundData.length );
}
@@ -162,37 +97,25 @@ public class AssetResourceIT extends AbstractRestIT {
this.refreshIndex();
+ // post data larger than 5M
+
byte[] data = IOUtils.toByteArray( this.getClass().getResourceAsStream( "/file-bigger-than-5M" ) );
FormDataMultiPart form = new FormDataMultiPart().field( "file", data, MediaType.MULTIPART_FORM_DATA_TYPE );
+ ApiResponse putResponse = pathResource(getOrgAppPath("foos")).post(form);
+ this.refreshIndex();
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
-
- JsonNode node = mapper.readTree( resource().path( orgAppPath + "/foos" )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.MULTIPART_FORM_DATA )
- .post( String.class, form ));
-
- JsonNode idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- String uuid = idNode.textValue();
- assertNotNull(uuid);
+ UUID assetId = putResponse.getEntities().get(0).getUuid();
+ assertNotNull(assetId);
- this.refreshIndex();
+ // retry until upload complete and we can get the data
int retries = 0;
boolean done = false;
byte[] foundData = new byte[0];
-
- // retry until upload complete
while ( !done && retries < 30 ) {
- // get data
try {
- InputStream is = resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_OCTET_STREAM_TYPE )
- .get( InputStream.class );
-
+ InputStream is = pathResource( getOrgAppPath( "foos/" + assetId ) ).getAssetAsStream();
foundData = IOUtils.toByteArray( is );
done = true;
@@ -202,13 +125,11 @@ public class AssetResourceIT extends AbstractRestIT {
retries++;
}
+ // did we get expected number of bytes of data?
+
assertEquals( 5324800, foundData.length );
- // delete
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON_TYPE )
- .delete( String.class ));
+ pathResource( getOrgAppPath( "foos/" + assetId ) ).delete();
}
@@ -217,66 +138,47 @@ public class AssetResourceIT extends AbstractRestIT {
this.refreshIndex();
- Map<String, String> payload = hashMap( "foo", "bar" );
+ // post an entity
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
-
- JsonNode node = mapper.readTree( resource().path( orgAppPath + "/foos" )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.APPLICATION_JSON_TYPE )
- .post( String.class, payload ));
+ Map<String, String> payload = hashMap( "foo", "bar" );
+ ApiResponse postResponse = pathResource( getOrgAppPath( "foos" ) ).post( payload );
+ UUID assetId = postResponse.getEntities().get(0).getUuid();
+ assertNotNull( assetId );
- JsonNode idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- String uuid = idNode.textValue();
- assertNotNull( uuid );
+ // post asset to that entity
- // set file & assetname
byte[] data = IOUtils.toByteArray( this.getClass().getResourceAsStream( "/cassandra_eye.jpg" ) );
- FormDataMultiPart form = new FormDataMultiPart().field( "foo", "bar2" )
- .field( "file", data, MediaType.MULTIPART_FORM_DATA_TYPE );
+ FormDataMultiPart form = new FormDataMultiPart()
+ .field( "foo", "bar2" )
+ .field( "file", data, MediaType.MULTIPART_FORM_DATA_TYPE );
+ ApiResponse putResponse = pathResource( getOrgAppPath( "foos/" + assetId ) ).put( form );
+ this.refreshIndex();
- long created = System.currentTimeMillis();
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.MULTIPART_FORM_DATA )
- .put( String.class, form ));
+ // get entity and check asset metadata
- this.refreshIndex();
+ ApiResponse getResponse = pathResource( getOrgAppPath( "foos/" + assetId ) ).get( ApiResponse.class );
+ Entity entity = getResponse.getEntities().get( 0 );
+ Map<String, Object> fileMetadata = (Map<String, Object>)entity.get("file-metadata");
+ long lastModified = Long.parseLong( fileMetadata.get( AssetUtils.LAST_MODIFIED ).toString() );
- // get entity
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON_TYPE )
- .get( String.class ));
- LOG.debug( mapToFormattedJsonString(node) );
-
- assertEquals( "image/jpeg", node.findValue( AssetUtils.CONTENT_TYPE ).textValue() );
- assertEquals( 7979, node.findValue( AssetUtils.CONTENT_LENGTH ).intValue() );
- idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- assertEquals( uuid, idNode.textValue() );
- JsonNode nameNode = node.get( "entities" ).get( 0 ).get( "foo" );
- assertEquals( "bar2", nameNode.textValue() );
- long lastModified = node.findValue( AssetUtils.LAST_MODIFIED ).longValue();
- Assert.assertEquals( created, lastModified, 500 );
-
- // get data
- InputStream is = resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( "image/jpeg" )
- .get( InputStream.class );
+ assertEquals( assetId, entity.getUuid() );
+ assertEquals( "bar2", entity.get("foo") );
+ assertEquals( "image/jpeg", fileMetadata.get( AssetUtils.CONTENT_TYPE ) );
+ assertEquals( 7979, fileMetadata.get( AssetUtils.CONTENT_LENGTH ));
+ // get asset and check size
+
+ InputStream is = pathResource( getOrgAppPath( "foos/" + assetId ) ).getAssetAsStream();
byte[] foundData = IOUtils.toByteArray( is );
assertEquals( 7979, foundData.length );
- // post new data
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.MULTIPART_FORM_DATA )
- .put( String.class, form ) );
- Assert.assertTrue( lastModified != node.findValue( AssetUtils.LAST_MODIFIED ).longValue() );
+ // upload new asset to entity, then check that it was updated
+
+ ApiResponse putResponse2 = pathResource( getOrgAppPath( "foos/" + assetId ) ).put( form );
+ entity = putResponse2.getEntities().get( 0 );
+ fileMetadata = (Map<String, Object>)entity.get("file-metadata");
+ long justModified = Long.parseLong( fileMetadata.get( AssetUtils.LAST_MODIFIED ).toString() );
+ assertNotEquals( lastModified, justModified );
}
@@ -285,45 +187,26 @@ public class AssetResourceIT extends AbstractRestIT {
this.refreshIndex();
+ // upload file larger than 5MB
+
byte[] data = IOUtils.toByteArray( this.getClass().getResourceAsStream( "/file-bigger-than-5M" ) );
FormDataMultiPart form = new FormDataMultiPart().field( "file", data, MediaType.MULTIPART_FORM_DATA_TYPE );
+ ApiResponse postResponse = pathResource( getOrgAppPath( "foos" ) ).post( form );
+ UUID assetId = postResponse.getEntities().get(0).getUuid();
+ LOG.info( "Waiting for upload to finish..." );
+ Thread.sleep( 2000 );
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
-
- // send data
- JsonNode node = mapper.readTree( resource().path( orgAppPath + "/foos" )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.MULTIPART_FORM_DATA )
- .post( String.class, form ) );
- JsonNode idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- String uuid = idNode.textValue();
-
- // get entity
- //TODO: seperate tests for s3 and local system property tests.
- LOG.info( "Waiting for upload to finish..." );
- Thread.sleep( 2000 );
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON_TYPE )
- .get( String.class ) );
+ // check that entire file was uploaded
+ ApiResponse getResponse = pathResource( getOrgAppPath( "foos/" +assetId ) ).get( ApiResponse.class );
LOG.info( "Upload complete!" );
-
- // get data
- InputStream is = resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_OCTET_STREAM_TYPE )
- .get( InputStream.class );
-
+ InputStream is = pathResource( getOrgAppPath( "foos/" + assetId ) ).getAssetAsStream();
byte[] foundData = IOUtils.toByteArray( is );
assertEquals( data.length, foundData.length );
- // delete
- node = mapper.readTree( resource().path( orgAppPath + "/foos/" + uuid )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON_TYPE )
- .delete( String.class ) );
+ // delete file
+
+ pathResource( getOrgAppPath( "foos/" + assetId ) ).delete();
}
@Test
@@ -331,53 +214,37 @@ public class AssetResourceIT extends AbstractRestIT {
this.refreshIndex();
+ // set max file size down to 6mb
+
Map<String, String> props = new HashMap<String, String>();
props.put( "usergrid.binary.max-size-mb", "6" );
- resource().path( "/testproperties" )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.APPLICATION_JSON_TYPE ).post( props );
+ pathResource( "testproperties" ).post( props );
try {
- //UserRepo.INSTANCE.load( resource(), access_token );
+ // upload a file larger than 6mb
byte[] data = IOUtils.toByteArray( this.getClass().getResourceAsStream( "/cat-larger-than-6mb.jpg" ) );
FormDataMultiPart form = new FormDataMultiPart().field( "file", data, MediaType.MULTIPART_FORM_DATA_TYPE );
+ ApiResponse postResponse = pathResource( getOrgAppPath( "bars" ) ).post( form );
+ UUID assetId = postResponse.getEntities().get(0).getUuid();
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
-
- // send data
- JsonNode node = resource().path( orgAppPath + "/bars" ).queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON ).type( MediaType.MULTIPART_FORM_DATA )
- .post( JsonNode.class, form );
- //logNode( node );
- JsonNode idNode = node.get( "entities" ).get( 0 ).get( "uuid" );
- String uuid = idNode.textValue();
-
- // get entity
String errorMessage = null;
- //TODO: seperate tests for s3 and local system property tests.
- LOG.info( "Waiting for upload to finish..." );
- Thread.sleep( 2000 );
- node = resource().path( orgAppPath + "/bars/" + uuid )
- .queryParam( "access_token", access_token ).accept( MediaType.APPLICATION_JSON_TYPE )
- .get( JsonNode.class );
+ LOG.info( "Waiting for upload to finish..." );
+ Thread.sleep( 2000 );
- // check for the error
- if (node.findValue( "error" ) != null) {
- errorMessage = node.findValue("error").asText();
- }
+ // attempt to get asset entity, it should contain error
- assertTrue( errorMessage.startsWith("Asset size "));
+ ApiResponse getResponse = pathResource( getOrgAppPath( "bars/" +assetId ) ).get( ApiResponse.class );
+ Map<String, Object> fileMetadata = (Map<String, Object>)getResponse.getEntities().get(0).get("file-metadata");
+ assertTrue( fileMetadata.get( "error" ).toString().startsWith( "Asset size " ) );
} finally {
- props = new HashMap<String, String>();
+
+ // set max upload size back to default 25mb
+
props.put( "usergrid.binary.max-size-mb", "25" );
- resource().path( "/testproperties" )
- .queryParam( "access_token", access_token )
- .accept( MediaType.APPLICATION_JSON )
- .type( MediaType.APPLICATION_JSON_TYPE ).post( props );
+ pathResource( "testproperties" ).post( props );
}
}
@@ -389,108 +256,60 @@ public class AssetResourceIT extends AbstractRestIT {
this.refreshIndex();
- final String uuid;
-
- access_token = this.getAdminToken().getAccessToken();
-
- String orgAppPath = clientSetup.getOrganizationName() + "/" + clientSetup.getAppName();
-
// create the entity that will be the asset, an image
Map<String, String> payload = hashMap("name", "cassandra_eye.jpg");
-
- JsonNode node = resource().path(orgAppPath + "/foos")
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .post(JsonNode.class, payload);
-
- JsonNode idNode = node.get("entities").get(0).get("uuid");
- uuid = idNode.textValue();
+ ApiResponse postReponse = pathResource( getOrgAppPath( "foos" ) ).post( payload );
+ final UUID uuid = postReponse.getEntities().get(0).getUuid();
// post image data to the asset entity
byte[] data = IOUtils.toByteArray(this.getClass().getResourceAsStream("/cassandra_eye.jpg"));
- resource().path(orgAppPath + "/foos/" + uuid)
- .queryParam("access_token", access_token)
- .type(MediaType.APPLICATION_OCTET_STREAM_TYPE)
- .put(data);
+ pathResource( getOrgAppPath( "foos/" + uuid ) ).put( data, MediaType.APPLICATION_OCTET_STREAM_TYPE );
// create an imagegallery entity
Map<String, String> imageGalleryPayload = hashMap("name", "my image gallery");
- JsonNode imageGalleryNode = resource().path(orgAppPath + "/imagegalleries")
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .post(JsonNode.class, imageGalleryPayload);
-
- JsonNode imageGalleryIdNode = imageGalleryNode.get("entities").get(0).get("uuid");
- String imageGalleryId = imageGalleryIdNode.textValue();
+ ApiResponse postResponse2 = pathResource( getOrgAppPath( "imagegalleries" ) ).post( imageGalleryPayload );
+ UUID imageGalleryId = postResponse2.getEntities().get(0).getUuid();
// connect imagegallery to asset
- JsonNode connectNode = resource()
- .path(orgAppPath + "/imagegalleries/" + imageGalleryId + "/contains/" + uuid)
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .post(JsonNode.class);
- LOG.debug( mapToFormattedJsonString(connectNode) );
-
+ ApiResponse connectResponse = pathResource(
+ getOrgAppPath( "imagegalleries/" + imageGalleryId + "/contains/" + uuid ) ).post( ApiResponse.class );
this.refreshIndex();
// verify connection from imagegallery to asset
- JsonNode listConnectionsNode = resource()
- .path(orgAppPath + "/imagegalleries/" + imageGalleryId + "/contains/")
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .get(JsonNode.class);
- LOG.debug( mapToFormattedJsonString(listConnectionsNode) );
- assertEquals(uuid, listConnectionsNode.get("entities").get(0).get("uuid").textValue());
+ ApiResponse containsResponse = pathResource(
+ getOrgAppPath( "imagegalleries/" + imageGalleryId + "/contains/" ) ).get( ApiResponse.class );
+ assertEquals( uuid, containsResponse.getEntities().get(0).getUuid() );
// delete the connection
- resource().path(orgAppPath + "/imagegalleries/" + imageGalleryId + "/contains/" + uuid)
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .delete();
-
+ pathResource( getOrgAppPath( "imagegalleries/" + imageGalleryId + "/contains/" + uuid ) ).delete();
this.refreshIndex();
// verify that connection is gone
- listConnectionsNode = resource()
- .path(orgAppPath + "/imagegalleries/" + imageGalleryId + "/contains/")
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON)
- .type(MediaType.APPLICATION_JSON_TYPE)
- .get(JsonNode.class);
- assertFalse(listConnectionsNode.get("entities").elements().hasNext());
+ ApiResponse listResponse = pathResource(
+ getOrgAppPath( "imagegalleries/" + imageGalleryId + "/contains/" )).get( ApiResponse.class );
+ assertEquals( 0, listResponse.getEntityCount() );
// asset should still be there
- JsonNode assetNode = resource().path(orgAppPath + "/foos/" + uuid)
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_JSON_TYPE)
- .get(JsonNode.class);
+ ApiResponse getResponse2 = pathResource( getOrgAppPath( "foos/" + uuid ) ).get( ApiResponse.class );
+ Entity entity = getResponse2.getEntities().get(0);
+ Map<String, Object> fileMetadata = (Map<String, Object>)entity.get("file-metadata");
- Assert.assertEquals("image/jpeg", assetNode.findValue(AssetUtils.CONTENT_TYPE).textValue());
- Assert.assertEquals(7979, assetNode.findValue("content-length").intValue());
- JsonNode assetIdNode = assetNode.get("entities").get(0).get("uuid");
- assertEquals(uuid, assetIdNode.textValue());
+ Assert.assertEquals("image/jpeg", fileMetadata.get( AssetUtils.CONTENT_TYPE ));
+ Assert.assertEquals(7979, fileMetadata.get( AssetUtils.CONTENT_LENGTH ));
+ assertEquals(uuid, entity.getUuid());
// asset data should still be there
- InputStream assetIs = resource().path(orgAppPath + "/foos/" + uuid)
- .queryParam("access_token", access_token)
- .accept(MediaType.APPLICATION_OCTET_STREAM_TYPE)
- .get(InputStream.class);
-
+ InputStream assetIs = pathResource( getOrgAppPath( "foos/" + uuid ) ).getAssetAsStream();
byte[] foundData = IOUtils.toByteArray(assetIs);
assertEquals(7979, foundData.length);
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24238406/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 69d2fcf..7e717b7 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
@@ -17,6 +17,7 @@
package org.apache.usergrid.rest.test.resource2point0.endpoints;
+import com.sun.jersey.multipart.FormDataMultiPart;
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;
@@ -26,6 +27,7 @@ import org.apache.usergrid.rest.test.resource2point0.state.ClientContext;
import com.sun.jersey.api.client.GenericType;
import com.sun.jersey.api.client.WebResource;
+import java.io.InputStream;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -283,10 +285,10 @@ public class NamedResource implements UrlResource {
//For edge cases like Organizations and Tokens without any payload
public <T> T get(Class<T> type, boolean useToken) {
return get(type,null,useToken);
-
}
+
public <T> T get(Class<T> type,QueryParameters queryParameters) {
return get(type,queryParameters,true);
}
@@ -306,4 +308,48 @@ public class NamedResource implements UrlResource {
public String getMatrix() {
return "";
}
+
+ public ApiResponse post( boolean useToken, FormDataMultiPart multiPartForm ) {
+ WebResource resource = getResource( useToken );
+ return resource.type( MediaType.MULTIPART_FORM_DATA_TYPE ).post( ApiResponse.class, multiPartForm );
+ }
+
+ public ApiResponse post( FormDataMultiPart multiPartForm ) {
+ return post( true, multiPartForm );
+ }
+
+ public ApiResponse put( boolean useToken, byte[] data, MediaType type ) {
+ WebResource resource = getResource(useToken);
+ return resource.type( type ).put( ApiResponse.class, data );
+ }
+
+ public ApiResponse put( byte[] data, MediaType type ) {
+ return put( true, data, type );
+ }
+
+ public ApiResponse put( boolean useToken, FormDataMultiPart multiPartForm ) {
+ WebResource resource = getResource(useToken);
+ return resource.type( MediaType.MULTIPART_FORM_DATA_TYPE ).put( ApiResponse.class, multiPartForm );
+ }
+
+ public ApiResponse put( FormDataMultiPart multiPartForm ) {
+ return put( true, multiPartForm );
+ }
+
+ public InputStream getAssetAsStream( boolean useToken ) {
+ WebResource resource = getResource(useToken);
+ return resource.accept( MediaType.APPLICATION_OCTET_STREAM_TYPE ).get( InputStream.class );
+ }
+
+ public InputStream getAssetAsStream() {
+ return getAssetAsStream( true );
+ }
+
+ public ApiResponse delete( ) {
+ return delete(true);
+ }
+
+ public ApiResponse delete( boolean useToken ) {
+ return getResource(useToken).delete( ApiResponse.class );
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24238406/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
index cd7165c..9f99e25 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrgResource.java
@@ -160,11 +160,6 @@ public class OrgResource extends NamedResource {
throw new UnsupportedOperationException("service doesn't exist");
}
- public void delete(){
- ApiResponse response = getResource().type( MediaType.APPLICATION_JSON_TYPE )
- .accept(MediaType.APPLICATION_JSON)
- .delete(ApiResponse.class);
- }
public CredentialsResource credentials(){
return new CredentialsResource( context ,this );
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/24238406/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrganizationResource.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrganizationResource.java b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrganizationResource.java
index eb0a4fd..128c3ff 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrganizationResource.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/test/resource2point0/endpoints/mgmt/OrganizationResource.java
@@ -52,20 +52,7 @@ public class OrganizationResource extends NamedResource {
return org;
}
-
- /**
- * This has not been implemented and will return an error.
- *
- * @return
- */
- public Organization delete() {
- Map<String, Object> response = getResource(true).type(MediaType.APPLICATION_JSON_TYPE)
- .accept(MediaType.APPLICATION_JSON).delete(Organization.class);
- Organization org = new Organization().mapOrgResponse(response);
- return org;
- }
-
- //Doesn't return anything useful server side so this was made as a void. .
+ // Doesn't return anything useful server side so this was made as a void. .
public void put(Organization organization) {
Map<String, Object> response = getResource(true).type(MediaType.APPLICATION_JSON_TYPE)
.accept(MediaType.APPLICATION_JSON).put(Organization.class,