You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by bl...@apache.org on 2010/04/06 17:41:26 UTC

svn commit: r931188 - in /incubator/wink/trunk/wink-client/src: main/java/org/apache/wink/client/ClientResponse.java main/java/org/apache/wink/client/internal/handlers/ClientResponseImpl.java test/java/org/apache/wink/client/ClientTest.java

Author: bluk
Date: Tue Apr  6 15:41:26 2010
New Revision: 931188

URL: http://svn.apache.org/viewvc?rev=931188&view=rev
Log:
Add ClientResponse.getStatusType()

Modified:
    incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/ClientResponse.java
    incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/handlers/ClientResponseImpl.java
    incubator/wink/trunk/wink-client/src/test/java/org/apache/wink/client/ClientTest.java

Modified: incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/ClientResponse.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/ClientResponse.java?rev=931188&r1=931187&r2=931188&view=diff
==============================================================================
--- incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/ClientResponse.java (original)
+++ incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/ClientResponse.java Tue Apr  6 15:41:26 2010
@@ -20,6 +20,8 @@
 
 package org.apache.wink.client;
 
+import javax.ws.rs.core.Response.StatusType;
+
 import org.apache.wink.client.internal.BaseRequestResponse;
 
 /**
@@ -31,6 +33,13 @@ import org.apache.wink.client.internal.B
 public interface ClientResponse extends BaseRequestResponse {
 
     /**
+     * Gets the response status as a status type
+     * 
+     * @return the response status
+     */
+    public StatusType getStatusType();
+
+    /**
      * Get the response status code
      * 
      * @return response status code

Modified: incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/handlers/ClientResponseImpl.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/handlers/ClientResponseImpl.java?rev=931188&r1=931187&r2=931188&view=diff
==============================================================================
--- incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/handlers/ClientResponseImpl.java (original)
+++ incubator/wink/trunk/wink-client/src/main/java/org/apache/wink/client/internal/handlers/ClientResponseImpl.java Tue Apr  6 15:41:26 2010
@@ -27,6 +27,8 @@ import java.lang.reflect.Type;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response.StatusType;
+import javax.ws.rs.core.Response.Status.Family;
 import javax.ws.rs.ext.MessageBodyReader;
 
 import org.apache.wink.client.ClientResponse;
@@ -147,4 +149,34 @@ public class ClientResponseImpl extends 
         return contentConsumer;
     }
 
+    public StatusType getStatusType() {
+        final int statusCode = status;
+        final String reasonPhrase = message;
+        return new StatusType() {
+
+            public int getStatusCode() {
+                return statusCode;
+            }
+
+            public String getReasonPhrase() {
+                return reasonPhrase;
+            }
+
+            public Family getFamily() {
+                int family = statusCode / 100;
+                if(family == 1) {
+                    return Family.INFORMATIONAL;
+                } else if (family == 2) {
+                    return Family.SUCCESSFUL;
+                } else if (family == 3) {
+                    return Family.REDIRECTION;
+                } else if (family == 4) {
+                    return Family.CLIENT_ERROR;
+                } else if (family == 5) {
+                    return Family.SERVER_ERROR;
+                }
+                return Family.OTHER;
+            }
+        };
+    }
 }

Modified: incubator/wink/trunk/wink-client/src/test/java/org/apache/wink/client/ClientTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-client/src/test/java/org/apache/wink/client/ClientTest.java?rev=931188&r1=931187&r2=931188&view=diff
==============================================================================
--- incubator/wink/trunk/wink-client/src/test/java/org/apache/wink/client/ClientTest.java (original)
+++ incubator/wink/trunk/wink-client/src/test/java/org/apache/wink/client/ClientTest.java Tue Apr  6 15:41:26 2010
@@ -34,6 +34,7 @@ import javax.ws.rs.WebApplicationExcepti
 import javax.ws.rs.core.Application;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Response.Status.Family;
 import javax.ws.rs.ext.MessageBodyReader;
 import javax.ws.rs.ext.MessageBodyWriter;
 import javax.ws.rs.ext.Provider;
@@ -148,6 +149,9 @@ public class ClientTest extends BaseTest
         TestGenerics<String> tg = resource.get(new EntityType<TestGenerics<String>>() {
         });
         assertEquals(RECEIVED_MESSAGE, tg.getT());
+        assertEquals(200, clientResponse.getStatusType().getStatusCode());
+        assertEquals(Family.SUCCESSFUL, clientResponse.getStatusType().getFamily());
+        assertEquals("OK", clientResponse.getStatusType().getReasonPhrase());
     }
 
     public void testResourcePut() throws IOException {
@@ -168,6 +172,9 @@ public class ClientTest extends BaseTest
         }, SENT_MESSAGE);
         assertEquals(RECEIVED_MESSAGE, tg.getT());
 
+        assertEquals(200, clientResponse.getStatusType().getStatusCode());
+        assertEquals(Family.SUCCESSFUL, clientResponse.getStatusType().getFamily());
+        assertEquals("OK", clientResponse.getStatusType().getReasonPhrase());
     }
 
     public void testResourcePost() throws IOException {
@@ -188,6 +195,10 @@ public class ClientTest extends BaseTest
         TestGenerics<String> tg = resource.post(new EntityType<TestGenerics<String>>() {
         }, SENT_MESSAGE);
         assertEquals(RECEIVED_MESSAGE, tg.getT());
+
+        assertEquals(200, clientResponse.getStatusType().getStatusCode());
+        assertEquals(Family.SUCCESSFUL, clientResponse.getStatusType().getFamily());
+        assertEquals("OK", clientResponse.getStatusType().getReasonPhrase());
     }
 
     public void testResourceDelete() {
@@ -205,6 +216,10 @@ public class ClientTest extends BaseTest
         TestGenerics<String> tg = resource.delete(new EntityType<TestGenerics<String>>() {
         });
         assertEquals(RECEIVED_MESSAGE, tg.getT());
+
+        assertEquals(200, clientResponse.getStatusType().getStatusCode());
+        assertEquals(Family.SUCCESSFUL, clientResponse.getStatusType().getFamily());
+        assertEquals("OK", clientResponse.getStatusType().getReasonPhrase());
     }
 
     public void testInvoke() {
@@ -240,6 +255,10 @@ public class ClientTest extends BaseTest
         try {
             ClientResponse res = resource.accept("text/plain").get();
             assertTrue(res.getStatusCode() == 400);
+
+            assertEquals(400, res.getStatusType().getStatusCode());
+            assertEquals(Family.CLIENT_ERROR, res.getStatusType().getFamily());
+            assertEquals("Bad Request", res.getStatusType().getReasonPhrase());
         } catch (Exception e) {
             fail("Exception must not be thrown");
         }