[jackson-jaxrs-providers] 122/162: Try to add baseline provider tests for backends other than JSON

Timo Aaltonen tjaalton at moszumanska.debian.org
Mon Sep 8 22:16:35 UTC 2014


This is an automated email from the git hooks/post-receive script.

tjaalton pushed a commit to branch master
in repository jackson-jaxrs-providers.

commit dc829f08d26e5d7f416c2ab36f604d5b47ef4b10
Author: Tatu Saloranta <tatu.saloranta at iki.fi>
Date:   Fri Feb 7 21:05:05 2014 -0800

    Try to add baseline provider tests for backends other than JSON
---
 .../jackson/jaxrs/cbor/JacksonCBORProvider.java    |   7 +-
 .../jackson/jaxrs/cbor}/JaxrsTestBase.java         |  26 +++++-
 .../jackson/jaxrs/cbor/TestCBORVersions.java       |  28 ++++++
 .../jackson/jaxrs/cbor/TestCanDeserialize.java     |  25 ++++++
 .../jackson/jaxrs/cbor/dw/ResourceTestBase.java    |  94 +++++++++++++++++++
 .../jaxrs/cbor/dw/SimpleEndpointTestBase.java      | 100 +++++++++++++++++++++
 .../jaxrs/cbor/jersey/SimpleEndpointTest.java      |  11 +++
 .../jackson/jaxrs/smile/JacksonSmileProvider.java  |   7 +-
 .../jackson/jaxrs/smile/JaxrsTestBase.java         |  24 +++++
 .../jackson/jaxrs/smile/dw/ResourceTestBase.java   |  94 +++++++++++++++++++
 .../jaxrs/smile/dw/SimpleEndpointTestBase.java     | 100 +++++++++++++++++++++
 .../jaxrs/smile/jersey/SimpleEndpointTest.java     |  11 +++
 12 files changed, 524 insertions(+), 3 deletions(-)

diff --git a/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java b/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java
index df8b421..6078374 100644
--- a/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java
+++ b/cbor/src/main/java/com/fasterxml/jackson/jaxrs/cbor/JacksonCBORProvider.java
@@ -8,6 +8,7 @@ import javax.ws.rs.ext.*;
 
 import com.fasterxml.jackson.core.*;
 import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.dataformat.cbor.CBORFactory;
 import com.fasterxml.jackson.jaxrs.base.ProviderBase;
 import com.fasterxml.jackson.jaxrs.cfg.Annotations;
 
@@ -200,7 +201,11 @@ extends ProviderBase<JacksonCBORProvider,
                 resolver = _providers.getContextResolver(ObjectMapper.class, null);
             }
             if (resolver != null) {
-                return resolver.getContext(type);
+                ObjectMapper mapper = resolver.getContext(type);
+                // 07-Feb-2014, tatu: just in case, ensure we have correct type
+                if (mapper.getFactory() instanceof CBORFactory) {
+                    return mapper;
+                }
             }
         }
         return null;
diff --git a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/JaxrsTestBase.java
similarity index 79%
copy from smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java
copy to cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/JaxrsTestBase.java
index fc977b6..86fac51 100644
--- a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/JaxrsTestBase.java
@@ -1,6 +1,8 @@
-package com.fasterxml.jackson.jaxrs.smile;
+package com.fasterxml.jackson.jaxrs.cbor;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Arrays;
 
 import org.junit.Assert;
@@ -88,4 +90,26 @@ public abstract class JaxrsTestBase
     public String quote(String str) {
         return '"'+str+'"';
     }
+
+    protected String aposToQuotes(String json) {
+        return json.replace("'", "\"");
+    }
+    
+    protected String readUTF8(InputStream in) throws IOException
+    {
+        return new String(readAll(in), "UTF-8");
+    }
+    
+    protected byte[] readAll(InputStream in) throws IOException
+    {
+        ByteArrayOutputStream bytes = new ByteArrayOutputStream(100);
+        byte[] buffer = new byte[500];
+        int count;
+
+        while ((count = in.read(buffer)) > 0) {
+            bytes.write(buffer, 0, count);
+        }
+        in.close();
+        return bytes.toByteArray();
+    }
 }
diff --git a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/TestCBORVersions.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/TestCBORVersions.java
new file mode 100644
index 0000000..ad2c662
--- /dev/null
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/TestCBORVersions.java
@@ -0,0 +1,28 @@
+package com.fasterxml.jackson.jaxrs.cbor;
+
+import com.fasterxml.jackson.core.Version;
+import com.fasterxml.jackson.core.Versioned;
+
+public class TestCBORVersions extends JaxrsTestBase
+{
+    public void testMapperVersions()
+    {
+        assertVersion(new JacksonCBORProvider());
+    }
+
+    /*
+    /**********************************************************
+    /* Helper methods
+    /**********************************************************
+     */
+    
+    private void assertVersion(Versioned vers)
+    {
+        final Version v = vers.version();
+        assertFalse("Should find version information (got "+v+")", v.isUknownVersion());
+        Version exp = PackageVersion.VERSION;
+        assertEquals(exp.toFullString(), v.toFullString());
+        assertEquals(exp, v);
+    }
+}
+
diff --git a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/TestCanDeserialize.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/TestCanDeserialize.java
new file mode 100644
index 0000000..4b950ff
--- /dev/null
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/TestCanDeserialize.java
@@ -0,0 +1,25 @@
+package com.fasterxml.jackson.jaxrs.cbor;
+
+import java.io.*;
+import java.lang.annotation.Annotation;
+
+import javax.ws.rs.core.MediaType;
+
+/**
+ * Unit test to check [JACKSON-540]
+ */
+public class TestCanDeserialize extends JaxrsTestBase
+{
+    static class Bean {
+        public int x;
+    }
+
+    // [Issue#1]: exception for no content
+    public void testCanSerializeEmpty() throws IOException
+    {
+        JacksonCBORProvider prov = new JacksonCBORProvider();
+        Bean b = (Bean) prov.readFrom(Object.class, Bean.class, new Annotation[0],
+                MediaType.APPLICATION_XML_TYPE, null, new ByteArrayInputStream(new byte[0]));
+        assertNull(b);
+    }
+}
diff --git a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/ResourceTestBase.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/ResourceTestBase.java
new file mode 100644
index 0000000..13bded1
--- /dev/null
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/ResourceTestBase.java
@@ -0,0 +1,94 @@
+package com.fasterxml.jackson.jaxrs.cbor.dw;
+
+import java.io.*;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.servlet.DispatcherType;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+import javax.ws.rs.core.Application;
+
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.ContextHandlerCollection;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+
+import com.fasterxml.jackson.jaxrs.cbor.JacksonCBORProvider;
+import com.fasterxml.jackson.jaxrs.cbor.JaxrsTestBase;
+
+/**
+ * Intermediate base for tests that run actual full JAX-RS resource.
+ */
+public abstract class ResourceTestBase extends JaxrsTestBase
+{
+    protected static abstract class CBORApplication extends Application
+    {
+        protected final Object _provider;
+        protected final Object _resource;
+
+        protected CBORApplication(Object provider, Object resource) {
+            _provider = provider;
+            _resource = resource;
+        }
+        
+        @Override
+        public Set<Object> getSingletons() {
+            HashSet<Object> singletons = new HashSet<Object>();
+            singletons.add(_provider);
+            singletons.add(_resource);
+            return singletons;
+        }
+    }
+
+    protected static abstract class CBORApplicationWithJackson extends CBORApplication
+    {
+        public CBORApplicationWithJackson(Object resource) {
+            super(new JacksonCBORProvider(), resource);
+        }
+    }
+    
+    /*
+    /**********************************************************
+    /* Abstract and overridable config methods
+    /**********************************************************
+     */
+
+    protected abstract Class<? extends Servlet> servletContainerClass();
+
+    /*
+    /**********************************************************
+    /* Starting actual JAX-RS container
+    /**********************************************************
+     */
+    
+    protected Server startServer(int port, Class<? extends Application> appClass) {
+        return startServer(port, appClass, null);
+    }
+    
+    protected Server startServer(int port, Class<? extends Application> appClass,
+            Class<? extends Filter> filterClass)
+    {
+        Server server = new Server(port);
+        final ContextHandlerCollection contexts = new ContextHandlerCollection();
+        server.setHandler(contexts);
+        ServletHolder jaxrs = new ServletHolder(servletContainerClass());
+        jaxrs.setInitParameter("javax.ws.rs.Application", appClass.getName());
+        final ServletContextHandler mainHandler = new ServletContextHandler(contexts, "/", true, false);
+        mainHandler.addServlet(jaxrs, "/*");
+
+        if (filterClass != null) {
+            mainHandler.addFilter(filterClass, "/*", java.util.EnumSet.allOf(DispatcherType.class));
+        }
+        
+        server.setHandler(mainHandler);
+        try {
+            server.start();
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return server;
+    }
+}
diff --git a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java
new file mode 100644
index 0000000..87881d4
--- /dev/null
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/dw/SimpleEndpointTestBase.java
@@ -0,0 +1,100 @@
+package com.fasterxml.jackson.jaxrs.cbor.dw;
+
+import java.io.*;
+import java.net.*;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.eclipse.jetty.server.Server;
+import org.junit.Assert;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.cbor.CBORFactory;
+import com.fasterxml.jackson.jaxrs.cbor.CBORMediaTypes;
+
+public abstract class SimpleEndpointTestBase extends ResourceTestBase
+{
+    final static int TEST_PORT = 6011;
+    
+    static class Point {
+        public int x, y;
+
+        protected Point() { }
+        public Point(int x, int y) {
+            this.x = x;
+            this.y = y;
+        }
+    }
+
+    @Path("/point")
+    public static class SimpleResource
+    {
+        @GET
+        @Produces({ CBORMediaTypes.APPLICATION_JACKSON_CBOR })
+        public Point getPoint() {
+            return new Point(1, 2);
+        }
+    }
+
+    public static class SimpleResourceApp extends CBORApplicationWithJackson {
+        public SimpleResourceApp() { super(new SimpleResource()); }
+    }
+
+    private final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
+
+    @Path("/raw")
+    public static class RawResource
+    {
+        @GET
+        @Path("bytes")
+        @Produces({ CBORMediaTypes.APPLICATION_JACKSON_CBOR })
+        public byte[] getBytes() throws IOException {
+            return UNTOUCHABLE_RESPONSE;
+        }
+    }
+
+    public static class SimpleRawApp extends CBORApplicationWithJackson {
+        public SimpleRawApp() { super(new RawResource()); }
+    }
+
+    /*
+    /**********************************************************
+    /* Test methods
+    /**********************************************************
+     */
+
+    public void testStandardSmile() throws Exception
+    {
+        final ObjectMapper mapper = new ObjectMapper(new CBORFactory());
+        Server server = startServer(TEST_PORT, SimpleResourceApp.class);
+        Point p;
+
+        try {
+            InputStream in = new URL("http://localhost:"+TEST_PORT+"/point").openStream();
+            p = mapper.readValue(in, Point.class);
+            in.close();
+        } finally {
+            server.stop();
+        }
+        // ensure we got a valid Point
+        assertNotNull(p);
+        assertEquals(1, p.x);
+        assertEquals(2, p.y);
+    }
+
+    // [Issue#34] Verify that Untouchables act the way as they should
+    @SuppressWarnings("resource")
+    public void testUntouchables() throws Exception
+    {
+        Server server = startServer(TEST_PORT, SimpleRawApp.class);
+        try {
+            InputStream in = new URL("http://localhost:"+TEST_PORT+"/raw/bytes").openStream();
+            Assert.assertArrayEquals(UNTOUCHABLE_RESPONSE, readAll(in));
+        } finally {
+            server.stop();
+        }
+    }
+}
diff --git a/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/jersey/SimpleEndpointTest.java b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/jersey/SimpleEndpointTest.java
new file mode 100644
index 0000000..92c14ca
--- /dev/null
+++ b/cbor/src/test/java/com/fasterxml/jackson/jaxrs/cbor/jersey/SimpleEndpointTest.java
@@ -0,0 +1,11 @@
+package com.fasterxml.jackson.jaxrs.cbor.jersey;
+
+import javax.servlet.Servlet;
+
+import com.fasterxml.jackson.jaxrs.cbor.dw.SimpleEndpointTestBase;
+import com.sun.jersey.spi.container.servlet.ServletContainer;
+
+public class SimpleEndpointTest extends SimpleEndpointTestBase {
+    @Override
+    protected Class<? extends Servlet> servletContainerClass() { return ServletContainer.class; }
+}
diff --git a/smile/src/main/java/com/fasterxml/jackson/jaxrs/smile/JacksonSmileProvider.java b/smile/src/main/java/com/fasterxml/jackson/jaxrs/smile/JacksonSmileProvider.java
index 76138b7..1ace7b4 100644
--- a/smile/src/main/java/com/fasterxml/jackson/jaxrs/smile/JacksonSmileProvider.java
+++ b/smile/src/main/java/com/fasterxml/jackson/jaxrs/smile/JacksonSmileProvider.java
@@ -8,6 +8,7 @@ import javax.ws.rs.ext.*;
 
 import com.fasterxml.jackson.core.*;
 import com.fasterxml.jackson.databind.*;
+import com.fasterxml.jackson.dataformat.smile.SmileFactory;
 import com.fasterxml.jackson.jaxrs.base.ProviderBase;
 import com.fasterxml.jackson.jaxrs.cfg.Annotations;
 
@@ -200,7 +201,11 @@ extends ProviderBase<JacksonSmileProvider,
                 resolver = _providers.getContextResolver(ObjectMapper.class, null);
             }
             if (resolver != null) {
-                return resolver.getContext(type);
+                ObjectMapper mapper = resolver.getContext(type);
+                // 07-Feb-2014, tatu: just in case, ensure we have correct type
+                if (mapper.getFactory() instanceof SmileFactory) {
+                    return mapper;
+                }
             }
         }
         return null;
diff --git a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java
index fc977b6..b340976 100644
--- a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java
+++ b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/JaxrsTestBase.java
@@ -1,6 +1,8 @@
 package com.fasterxml.jackson.jaxrs.smile;
 
+import java.io.ByteArrayOutputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.util.Arrays;
 
 import org.junit.Assert;
@@ -88,4 +90,26 @@ public abstract class JaxrsTestBase
     public String quote(String str) {
         return '"'+str+'"';
     }
+
+    protected String aposToQuotes(String json) {
+        return json.replace("'", "\"");
+    }
+    
+    protected String readUTF8(InputStream in) throws IOException
+    {
+        return new String(readAll(in), "UTF-8");
+    }
+    
+    protected byte[] readAll(InputStream in) throws IOException
+    {
+        ByteArrayOutputStream bytes = new ByteArrayOutputStream(100);
+        byte[] buffer = new byte[500];
+        int count;
+
+        while ((count = in.read(buffer)) > 0) {
+            bytes.write(buffer, 0, count);
+        }
+        in.close();
+        return bytes.toByteArray();
+    }
 }
diff --git a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/ResourceTestBase.java b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/ResourceTestBase.java
new file mode 100644
index 0000000..5100483
--- /dev/null
+++ b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/ResourceTestBase.java
@@ -0,0 +1,94 @@
+package com.fasterxml.jackson.jaxrs.smile.dw;
+
+import java.io.*;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.servlet.DispatcherType;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+import javax.ws.rs.core.Application;
+
+import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.server.handler.ContextHandlerCollection;
+import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
+
+import com.fasterxml.jackson.jaxrs.smile.JacksonSmileProvider;
+import com.fasterxml.jackson.jaxrs.smile.JaxrsTestBase;
+
+/**
+ * Intermediate base for tests that run actual full JAX-RS resource.
+ */
+public abstract class ResourceTestBase extends JaxrsTestBase
+{
+    protected static abstract class SmileApplication extends Application
+    {
+        protected final Object _smileProvider;
+        protected final Object _resource;
+
+        protected SmileApplication(Object smileProvider, Object resource) {
+            _smileProvider = smileProvider;
+            _resource = resource;
+        }
+        
+        @Override
+        public Set<Object> getSingletons() {
+            HashSet<Object> singletons = new HashSet<Object>();
+            singletons.add(_smileProvider);
+            singletons.add(_resource);
+            return singletons;
+        }
+    }
+
+    protected static abstract class SmileApplicationWithJackson extends SmileApplication
+    {
+        public SmileApplicationWithJackson(Object resource) {
+            super(new JacksonSmileProvider(), resource);
+        }
+    }
+    
+    /*
+    /**********************************************************
+    /* Abstract and overridable config methods
+    /**********************************************************
+     */
+
+    protected abstract Class<? extends Servlet> servletContainerClass();
+
+    /*
+    /**********************************************************
+    /* Starting actual JAX-RS container
+    /**********************************************************
+     */
+    
+    protected Server startServer(int port, Class<? extends Application> appClass) {
+        return startServer(port, appClass, null);
+    }
+    
+    protected Server startServer(int port, Class<? extends Application> appClass,
+            Class<? extends Filter> filterClass)
+    {
+        Server server = new Server(port);
+        final ContextHandlerCollection contexts = new ContextHandlerCollection();
+        server.setHandler(contexts);
+        ServletHolder jaxrs = new ServletHolder(servletContainerClass());
+        jaxrs.setInitParameter("javax.ws.rs.Application", appClass.getName());
+        final ServletContextHandler mainHandler = new ServletContextHandler(contexts, "/", true, false);
+        mainHandler.addServlet(jaxrs, "/*");
+
+        if (filterClass != null) {
+            mainHandler.addFilter(filterClass, "/*", java.util.EnumSet.allOf(DispatcherType.class));
+        }
+        
+        server.setHandler(mainHandler);
+        try {
+            server.start();
+        } catch (RuntimeException e) {
+            throw e;
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        return server;
+    }
+}
diff --git a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java
new file mode 100644
index 0000000..4df493b
--- /dev/null
+++ b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/dw/SimpleEndpointTestBase.java
@@ -0,0 +1,100 @@
+package com.fasterxml.jackson.jaxrs.smile.dw;
+
+import java.io.*;
+import java.net.*;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.eclipse.jetty.server.Server;
+import org.junit.Assert;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.dataformat.smile.SmileFactory;
+import com.fasterxml.jackson.jaxrs.smile.SmileMediaTypes;
+
+public abstract class SimpleEndpointTestBase extends ResourceTestBase
+{
+    final static int TEST_PORT = 6011;
+    
+    static class Point {
+        public int x, y;
+
+        protected Point() { }
+        public Point(int x, int y) {
+            this.x = x;
+            this.y = y;
+        }
+    }
+
+    @Path("/point")
+    public static class SimpleResource
+    {
+        @GET
+        @Produces({ SmileMediaTypes.APPLICATION_JACKSON_SMILE })
+        public Point getPoint() {
+            return new Point(1, 2);
+        }
+    }
+
+    public static class SimpleResourceApp extends SmileApplicationWithJackson {
+        public SimpleResourceApp() { super(new SimpleResource()); }
+    }
+
+    private final static byte[] UNTOUCHABLE_RESPONSE = new byte[] { 1, 2, 3, 4 };
+
+    @Path("/raw")
+    public static class RawResource
+    {
+        @GET
+        @Path("bytes")
+        @Produces({ SmileMediaTypes.APPLICATION_JACKSON_SMILE })
+        public byte[] getBytes() throws IOException {
+            return UNTOUCHABLE_RESPONSE;
+        }
+    }
+
+    public static class SimpleRawApp extends SmileApplicationWithJackson {
+        public SimpleRawApp() { super(new RawResource()); }
+    }
+
+    /*
+    /**********************************************************
+    /* Test methods
+    /**********************************************************
+     */
+
+    public void testStandardSmile() throws Exception
+    {
+        final ObjectMapper mapper = new ObjectMapper(new SmileFactory());
+        Server server = startServer(TEST_PORT, SimpleResourceApp.class);
+        Point p;
+
+        try {
+            InputStream in = new URL("http://localhost:"+TEST_PORT+"/point").openStream();
+            p = mapper.readValue(in, Point.class);
+            in.close();
+        } finally {
+            server.stop();
+        }
+        // ensure we got a valid Point
+        assertNotNull(p);
+        assertEquals(1, p.x);
+        assertEquals(2, p.y);
+    }
+
+    // [Issue#34] Verify that Untouchables act the way as they should
+    @SuppressWarnings("resource")
+    public void testUntouchables() throws Exception
+    {
+        Server server = startServer(TEST_PORT, SimpleRawApp.class);
+        try {
+            InputStream in = new URL("http://localhost:"+TEST_PORT+"/raw/bytes").openStream();
+            Assert.assertArrayEquals(UNTOUCHABLE_RESPONSE, readAll(in));
+        } finally {
+            server.stop();
+        }
+    }
+}
diff --git a/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/jersey/SimpleEndpointTest.java b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/jersey/SimpleEndpointTest.java
new file mode 100644
index 0000000..cad898f
--- /dev/null
+++ b/smile/src/test/java/com/fasterxml/jackson/jaxrs/smile/jersey/SimpleEndpointTest.java
@@ -0,0 +1,11 @@
+package com.fasterxml.jackson.jaxrs.smile.jersey;
+
+import javax.servlet.Servlet;
+
+import com.fasterxml.jackson.jaxrs.smile.dw.SimpleEndpointTestBase;
+import com.sun.jersey.spi.container.servlet.ServletContainer;
+
+public class SimpleEndpointTest extends SimpleEndpointTestBase {
+    @Override
+    protected Class<? extends Servlet> servletContainerClass() { return ServletContainer.class; }
+}

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/jackson-jaxrs-providers.git



More information about the pkg-java-commits mailing list