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/05/28 21:42:39 UTC
[03/50] [abbrv] incubator-usergrid git commit: [USERGRID-336]
Updating ContentTypeResourceIT
[USERGRID-336] Updating ContentTypeResourceIT
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/9c81a980
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/9c81a980
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/9c81a980
Branch: refs/heads/two-dot-o-dev
Commit: 9c81a980dbe488b19f5d18638c4b1465427f6a8e
Parents: 8eda8be
Author: ryan bridges <ry...@apache.org>
Authored: Thu Apr 2 02:29:05 2015 -0400
Committer: ryan bridges <ry...@apache.org>
Committed: Fri Apr 17 10:05:17 2015 -0400
----------------------------------------------------------------------
.../rest/filters/ContentTypeResourceIT.java | 290 +++++++------------
1 file changed, 97 insertions(+), 193 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/9c81a980/stack/rest/src/test/java/org/apache/usergrid/rest/filters/ContentTypeResourceIT.java
----------------------------------------------------------------------
diff --git a/stack/rest/src/test/java/org/apache/usergrid/rest/filters/ContentTypeResourceIT.java b/stack/rest/src/test/java/org/apache/usergrid/rest/filters/ContentTypeResourceIT.java
index 5671249..10909b4 100644
--- a/stack/rest/src/test/java/org/apache/usergrid/rest/filters/ContentTypeResourceIT.java
+++ b/stack/rest/src/test/java/org/apache/usergrid/rest/filters/ContentTypeResourceIT.java
@@ -17,52 +17,31 @@
package org.apache.usergrid.rest.filters;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-
-import org.junit.Ignore;
-import org.junit.Rule;
-import org.junit.Test;
-
-import org.apache.usergrid.rest.AbstractRestIT;
-import org.apache.usergrid.rest.TestContextSetup;
+import com.sun.jersey.api.client.ClientResponse;
+import com.sun.jersey.api.client.WebResource;
+import com.sun.jersey.api.representation.Form;
+import org.apache.usergrid.rest.test.resource2point0.AbstractRestIT;
import org.apache.usergrid.utils.JsonUtils;
import org.apache.usergrid.utils.UUIDUtils;
+import org.junit.Ignore;
+import org.junit.Test;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpHost;
-import org.apache.http.HttpResponse;
-import org.apache.http.NameValuePair;
-import org.apache.http.ParseException;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.StringEntity;
-import org.apache.http.impl.client.DefaultHttpClient;
-import org.apache.http.message.BasicNameValuePair;
-import org.apache.http.params.BasicHttpParams;
-import org.apache.http.util.EntityUtils;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import java.util.List;
-import static org.junit.Assert.assertEquals;
import static org.apache.usergrid.utils.MapUtils.hashMap;
+import static org.junit.Assert.assertEquals;
-/** @author tnine */
+/**
+ * @author tnine
+ */
// @Ignore("Client login is causing tests to fail due to socket closure by grizzly. Need to re-enable once we're not
// using grizzly to test")
public class ContentTypeResourceIT extends AbstractRestIT {
- @Rule
- public TestContextSetup context = new TestContextSetup( this );
-
-
/**
* Creates a simple entity of type game. Does not set the content type. The type should be set to json to match the
* body
@@ -70,32 +49,22 @@ public class ContentTypeResourceIT extends AbstractRestIT {
@Test
public void correctHeaders() throws Exception {
+ String json = JsonUtils.mapToFormattedJsonString(hashMap("name", "Solitaire1"));
- Map<String, String> data = hashMap( "name", "Solitaire1" );
+ WebResource.Builder builder = app().collection("games").getResource(true)
+ .queryParam("access_token", this.getAdminToken().getAccessToken())
+ .type(MediaType.APPLICATION_JSON_TYPE)
+ .accept(MediaType.APPLICATION_JSON);
- String json = JsonUtils.mapToFormattedJsonString( data );
+ ClientResponse clientResponse = builder.post(ClientResponse.class, json);
- DefaultHttpClient client = new DefaultHttpClient();
+ assertEquals(200, clientResponse.getStatus());
- HttpHost host = new HttpHost( super.getBaseURI().getHost(), super.getBaseURI().getPort() );
+ MultivaluedMap<String, String> headers = clientResponse.getHeaders();
- HttpPost post = new HttpPost( String.format( "/%s/%s/games", context.getOrgUuid(), context.getAppUuid() ) );
- post.setEntity( new StringEntity( json ) );
- post.setHeader( HttpHeaders.AUTHORIZATION, "Bearer " + context.getActiveUser().getToken() );
- post.setHeader( HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON );
- post.setHeader( HttpHeaders.CONTENT_TYPE, "*/*" );
-
- HttpResponse rsp = client.execute( host, post );
-
- printResponse( rsp );
-
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
-
- Header[] headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
-
- assertEquals( 1, headers.length );
-
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
+ List<String> contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
}
@@ -105,106 +74,83 @@ public class ContentTypeResourceIT extends AbstractRestIT {
*/
@Test
public void textPlainContentType() throws Exception {
- Map<String, String> data = hashMap( "name", "Solitaire2" );
-
- String json = JsonUtils.mapToFormattedJsonString( data );
-
- DefaultHttpClient client = new DefaultHttpClient();
+ String json = JsonUtils.mapToFormattedJsonString(hashMap("name", "Solitaire2"));
+ WebResource.Builder builder = app().getResource(true)
+ .queryParam("access_token", this.getAdminToken().getAccessToken())
+ .accept(MediaType.APPLICATION_JSON)
+ .type(MediaType.TEXT_PLAIN_TYPE);
- HttpHost host = new HttpHost( super.getBaseURI().getHost(), super.getBaseURI().getPort() );
+ ClientResponse clientResponse = builder.post(ClientResponse.class, json);
- HttpPost post = new HttpPost( String.format( "/%s/%s/games", context.getOrgUuid(), context.getAppUuid() ) );
- post.setEntity( new StringEntity( json ) );
- post.setHeader( HttpHeaders.AUTHORIZATION, "Bearer " + context.getActiveUser().getToken() );
- post.setHeader( HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON );
- post.setHeader( HttpHeaders.CONTENT_TYPE, MediaType.TEXT_PLAIN );
+ assertEquals(200, clientResponse.getStatus());
- HttpResponse rsp = client.execute( host, post );
+ MultivaluedMap<String, String> headers = clientResponse.getHeaders();
- printResponse( rsp );
+ List<String> contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
-
- Header[] headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
-
- assertEquals( 1, headers.length );
-
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
}
- /** Tests that application/x-www-url-form-encoded works correctly */
+ /**
+ * Tests that application/x-www-url-form-encoded works correctly
+ */
@Test
public void formEncodedContentType() throws Exception {
- List<NameValuePair> pairs = new ArrayList<NameValuePair>();
-
- pairs.add( new BasicNameValuePair( "organization", "formContentOrg" ) );
- pairs.add( new BasicNameValuePair( "username", "formContentOrg" ) );
- pairs.add( new BasicNameValuePair( "name", "Test User" ) );
- pairs.add( new BasicNameValuePair( "email", UUIDUtils.newTimeUUID() + "@usergrid.org" ) );
- pairs.add( new BasicNameValuePair( "password", "foobar" ) );
-
- UrlEncodedFormEntity entity = new UrlEncodedFormEntity( pairs, "UTF-8" );
- DefaultHttpClient client = new DefaultHttpClient();
+ Form payload = new Form();
+ payload.add("organization", "formContentOrg");
+ payload.add("username", "formContentOrg");
+ payload.add("name", "Test User");
+ payload.add("email", UUIDUtils.newTimeUUID() + "@usergrid.org");
+ payload.add("password", "foobar");
- HttpHost host = new HttpHost( super.getBaseURI().getHost(), super.getBaseURI().getPort() );
+ WebResource.Builder builder = app().getResource(true, this.getAdminToken(clientSetup.getSuperuserName(), clientSetup.getSuperuserPassword()))
+ .accept(MediaType.APPLICATION_JSON)
+ .type(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
- HttpPost post = new HttpPost( "/management/orgs" );
- post.setEntity( entity );
- // post.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + context.getActiveUser().getToken());
+ ClientResponse clientResponse = builder.post(ClientResponse.class, payload);
- post.setHeader( HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED );
+ assertEquals(200, clientResponse.getStatus());
- HttpResponse rsp = client.execute( host, post );
+ MultivaluedMap<String, String> headers = clientResponse.getHeaders();
- printResponse( rsp );
-
- // should be an error, no content type was set
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
-
- Header[] headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
-
- assertEquals( 1, headers.length );
-
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
+ List<String> contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
}
- /** Tests that application/x-www-url-form-encoded works correctly */
+ /**
+ * Tests that application/x-www-url-form-encoded works correctly
+ */
@Test
@Ignore("This will only pass in tomcat, and shouldn't pass in grizzly")
public void formEncodedUrlContentType() throws Exception {
- BasicHttpParams params = new BasicHttpParams();
-
- params.setParameter( "organization", "formUrlContentOrg" );
- params.setParameter( "username", "formUrlContentOrg" );
- params.setParameter( "name", "Test User" );
- params.setParameter( "email", UUIDUtils.newTimeUUID() + "@usergrid.org" );
- params.setParameter( "password", "foobar" );
- params.setParameter( "grant_type", "password" );
-
- DefaultHttpClient client = new DefaultHttpClient();
+ String orgName = clientSetup.getOrganizationName().toLowerCase();
+ String appName = clientSetup.getAppName().toLowerCase();
- HttpHost host = new HttpHost( super.getBaseURI().getHost(), super.getBaseURI().getPort() );
+ WebResource.Builder builder = resource().path(String.format("/%s/%s", orgName, appName))
+ .queryParam("organization", "formUrlContentOrg")
+ .queryParam("username", "formUrlContentOrg")
+ .queryParam("name", "Test User")
+ .queryParam("email", UUIDUtils.newTimeUUID() + "@usergrid.org")
+ .queryParam("password", "foobar")
+ .queryParam("grant_type", "password")
+ .type(MediaType.APPLICATION_FORM_URLENCODED_TYPE);
- HttpPost post = new HttpPost( "/management/orgs" );
- post.setParams( params );
+ ClientResponse clientResponse = builder.post(ClientResponse.class);
- post.setHeader( HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED );
+ assertEquals(200, clientResponse.getStatus());
- HttpResponse rsp = client.execute( host, post );
+ MultivaluedMap<String, String> headers = clientResponse.getHeaders();
- printResponse( rsp );
+ List<String> contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
-
- Header[] headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
-
- assertEquals( 1, headers.length );
-
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
}
@@ -215,96 +161,54 @@ public class ContentTypeResourceIT extends AbstractRestIT {
@Test
public void missingAcceptAndContent() throws Exception {
- Map<String, String> data = hashMap( "name", "Solitaire3" );
-
- String json = JsonUtils.mapToFormattedJsonString( data );
-
- DefaultHttpClient client = new DefaultHttpClient();
-
- HttpHost host = new HttpHost( super.getBaseURI().getHost(), super.getBaseURI().getPort() );
-
- HttpPost post = new HttpPost( String.format( "/%s/%s/games", context.getOrgUuid(), context.getAppUuid() ) );
- post.setEntity( new StringEntity( json ) );
- post.setHeader( HttpHeaders.AUTHORIZATION, "Bearer " + context.getActiveUser().getToken() );
+ WebResource.Builder builder = app().collection("games").getResource(true)
+ .queryParam("access_token", this.getAdminToken().getAccessToken())
+ .type(MediaType.APPLICATION_JSON_TYPE);
- HttpResponse rsp = client.execute( host, post );
+ ClientResponse clientResponse = builder.post(ClientResponse.class, JsonUtils.mapToJsonString(hashMap("name", "bar")));
- printResponse( rsp );
+ assertEquals(200, clientResponse.getStatus());
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
+ MultivaluedMap<String, String> headers = clientResponse.getHeaders();
- Header[] headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
-
- assertEquals( 1, headers.length );
-
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
+ List<String> contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
}
/**
- * Creates a simple entity of type game. Does not set the content type. The type should be set to json to match the
+ * Creates a simple entity of type game. Does not set the Accepts header. The type should be set to json to match the
* body. Then does a get without Accept type, it should return application/json, not text/csv
*/
@Test
public void noAcceptGet() throws Exception {
- Map<String, String> data = hashMap( "name", "bar" );
-
- String json = JsonUtils.mapToFormattedJsonString( data );
-
- DefaultHttpClient client = new DefaultHttpClient();
-
- HttpHost host = new HttpHost( super.getBaseURI().getHost(), super.getBaseURI().getPort() );
-
- HttpPost post = new HttpPost( String.format( "/%s/%s/games", context.getOrgUuid(), context.getAppUuid() ) );
- post.setEntity( new StringEntity( json ) );
- post.setHeader( HttpHeaders.AUTHORIZATION, "Bearer " + context.getActiveUser().getToken() );
- post.setHeader( HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON );
- post.setHeader( HttpHeaders.CONTENT_TYPE, "*/*" );
-
- HttpResponse rsp = client.execute( host, post );
- printResponse( rsp );
+ WebResource.Builder builder = app().collection("games").getResource(true)
+ .queryParam("access_token", this.getAdminToken().getAccessToken())
+ .type(MediaType.APPLICATION_JSON_TYPE);
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
+ ClientResponse clientResponse = builder.post(ClientResponse.class, JsonUtils.mapToJsonString(hashMap("name", "bar")));
- Header[] headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
+ assertEquals(200, clientResponse.getStatus());
- assertEquals( 1, headers.length );
+ MultivaluedMap<String, String> headers = clientResponse.getHeaders();
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
+ List<String> contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
//do the get with no content type, it should get set to application/json
- HttpGet get = new HttpGet( String.format( "/%s/%s/games", context.getOrgUuid(), context.getAppUuid() ) );
- get.setHeader( HttpHeaders.AUTHORIZATION, "Bearer " + context.getActiveUser().getToken() );
+ clientResponse = builder.get(ClientResponse.class);
- rsp = client.execute( host, get );
+ assertEquals(200, clientResponse.getStatus());
- printResponse( rsp );
+ headers = clientResponse.getHeaders();
- assertEquals( 200, rsp.getStatusLine().getStatusCode() );
-
- headers = rsp.getHeaders( HttpHeaders.CONTENT_TYPE );
-
- assertEquals( 1, headers.length );
-
- assertEquals( MediaType.APPLICATION_JSON, headers[0].getValue() );
+ contentType = headers.get("Content-Type");
+ assertEquals(1, contentType.size());
+ assertEquals(MediaType.APPLICATION_JSON, contentType.get(0));
}
- private void printResponse( HttpResponse rsp ) throws ParseException, IOException {
- HttpEntity entity = rsp.getEntity();
-
- System.out.println( "----------------------------------------" );
- System.out.println( rsp.getStatusLine() );
-
- Header[] headers = rsp.getAllHeaders();
- for ( int i = 0; i < headers.length; i++ ) {
- System.out.println( headers[i] );
- }
- System.out.println( "----------------------------------------" );
-
- if ( entity != null ) {
- System.out.println( EntityUtils.toString( entity ) );
- }
- }
}