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 2009/09/24 02:05:28 UTC

svn commit: r818322 - in /incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers: ProvidersContextResolverTest.java entity/ProvidersMessageBodyTest.java

Author: bluk
Date: Thu Sep 24 00:05:28 2009
New Revision: 818322

URL: http://svn.apache.org/viewvc?rev=818322&view=rev
Log:
Change Providers unit test to setup priorities

Thanks Mike Rheinheimer for the tests
and initial implementation and Michael Elman
for the generalized implementation.

See [WINK-193] and [WINK-167]

Modified:
    incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/ProvidersContextResolverTest.java
    incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/entity/ProvidersMessageBodyTest.java

Modified: incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/ProvidersContextResolverTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/ProvidersContextResolverTest.java?rev=818322&r1=818321&r2=818322&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/ProvidersContextResolverTest.java (original)
+++ incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/ProvidersContextResolverTest.java Thu Sep 24 00:05:28 2009
@@ -42,6 +42,10 @@
     private static final String  STRING2 = "String2";
     private static final String  STRING3 = "String3";
     private static final String  STRING4 = "String4";
+    private static final String  STRING5 = "String5";
+    private static final String  STRING6 = "String6";
+    private static final String  STRING7 = "String7";
+
     private static final String  ATOM    = "Atom";
     private static final byte[]  BYTE    = new byte[0];
     private static final Integer _12345  = new Integer(12345);
@@ -84,6 +88,30 @@
     }
 
     @Provider
+    public static class StringContextResolver5 implements ContextResolver<String> {
+
+        public String getContext(Class<?> type) {
+            return STRING5;
+        }
+    }
+
+    @Provider
+    public static class StringContextResolver6 implements ContextResolver<String> {
+
+        public String getContext(Class<?> type) {
+            return STRING6;
+        }
+    }
+
+    @Provider
+    public static class StringContextResolver7 implements ContextResolver<String> {
+
+        public String getContext(Class<?> type) {
+            return STRING7;
+        }
+    }
+
+    @Provider
     @Produces(MediaType.APPLICATION_FORM_URLENCODED)
     // intentionally using a MediaType with a '-' to exercise regex code
     public static class MyContextResolver implements ContextResolver<MyClass> {
@@ -271,4 +299,18 @@
             .getContext(String.class));
     }
 
+    public void testContextResolverPrioritySort() {
+        ProvidersRegistry providers = createProvidersRegistryImpl();
+        // note: the order these are added is important to the test
+        assertTrue(providers.addProvider(new StringContextResolver5(), 0.5));
+        assertTrue(providers.addProvider(new StringContextResolver6(), 0.6));
+        assertTrue(providers.addProvider(new StringContextResolver7(), 0.4));
+
+        // StringContextResolver3 has the highest priority (0.2) even though
+        // StringContextResolver2
+        // more closely matches based on the media type in @Produces
+
+        assertSame(STRING6, providers.getContextResolver(String.class, null, null)
+            .getContext(String.class));
+    }
 }

Modified: incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/entity/ProvidersMessageBodyTest.java
URL: http://svn.apache.org/viewvc/incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/entity/ProvidersMessageBodyTest.java?rev=818322&r1=818321&r2=818322&view=diff
==============================================================================
--- incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/entity/ProvidersMessageBodyTest.java (original)
+++ incubator/wink/trunk/wink-common/src/test/java/org/apache/wink/common/internal/providers/entity/ProvidersMessageBodyTest.java Thu Sep 24 00:05:28 2009
@@ -35,6 +35,7 @@
 import javax.ws.rs.ext.MessageBodyWriter;
 import javax.ws.rs.ext.Provider;
 
+import org.apache.wink.common.WinkApplication;
 import org.apache.wink.common.annotations.Scope;
 import org.apache.wink.common.annotations.Scope.ScopeType;
 import org.apache.wink.common.internal.application.ApplicationValidator;
@@ -118,16 +119,16 @@
         FileProvider fileProvider = new FileProvider();
         IntegerMessageBodyProvider objectMessageBodyProvider = new IntegerMessageBodyProvider();
 
-        providers.addProvider(byteArrayProvider);
-        providers.addProvider(inputStreamProvider);
+        providers.addProvider(byteArrayProvider, WinkApplication.SYSTEM_PRIORITY);
+        providers.addProvider(inputStreamProvider, WinkApplication.SYSTEM_PRIORITY);
         providers.addProvider(string2Provider);
-        providers.addProvider(stringProvider);
-        providers.addProvider(fileProvider);
+        providers.addProvider(stringProvider, WinkApplication.SYSTEM_PRIORITY);
+        providers.addProvider(fileProvider, WinkApplication.SYSTEM_PRIORITY);
         providers.addProvider(objectMessageBodyProvider);
 
         assertEquals(byteArrayProvider, providers
             .getMessageBodyReader(byte[].class, null, null, MediaType.APPLICATION_JSON_TYPE, null));
-        assertEquals(stringProvider, providers.getMessageBodyReader(String.class,
+        assertEquals(string2Provider, providers.getMessageBodyReader(String.class,
                                                                     null,
                                                                     null,
                                                                     MediaType.WILDCARD_TYPE,
@@ -141,12 +142,13 @@
                                   null,
                                   MediaType.APPLICATION_ATOM_XML_TYPE,
                                   null));
-        // string2Provider is favored over stringProvider because it is a user-defined provider
-//        assertEquals(string2Provider, providers.getMessageBodyWriter(String.class,
-//                                                                    null,
-//                                                                    null,
-//                                                                    MediaType.WILDCARD_TYPE,
-//                                                                    null));
+        // string2Provider is favored over stringProvider because it is a
+        // user-defined provider
+        assertEquals(string2Provider, providers.getMessageBodyWriter(String.class,
+                                                                     null,
+                                                                     null,
+                                                                     MediaType.WILDCARD_TYPE,
+                                                                     null));
         assertEquals(fileProvider, providers
             .getMessageBodyWriter(File.class, null, null, MediaType.APPLICATION_SVG_XML_TYPE, null));