You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2013/02/07 15:51:18 UTC
svn commit: r1443515 -
/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
Author: sergeyb
Date: Thu Feb 7 14:51:17 2013
New Revision: 1443515
URL: http://svn.apache.org/viewvc?rev=1443515&view=rev
Log:
[CXF-4799] Adding a test
Modified:
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java?rev=1443515&r1=1443514&r2=1443515&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/provider/JAXBElementProviderTest.java Thu Feb 7 14:51:17 2013
@@ -207,6 +207,43 @@ public class JAXBElementProviderTest ext
testXmlList(provider);
}
+ @Test
+ public void testGenericsAndSingleContext2() throws Exception {
+ ClassResourceInfo cri =
+ ResourceUtils.createClassResourceInfo(XmlListResource.class, XmlListResource.class, true, true);
+ JAXBElementProvider<?> provider = new JAXBElementProvider<Object>();
+ provider.setSingleJaxbContext(true);
+ provider.init(Collections.singletonList(cri));
+
+ List<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> list =
+ new ArrayList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook>();
+ for (int i = 0; i < 10; i++) {
+ org.apache.cxf.jaxrs.fortest.jaxb.SuperBook o =
+ new org.apache.cxf.jaxrs.fortest.jaxb.SuperBook();
+ o.setName("name #" + i);
+ list.add(o);
+ }
+ XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> xmlList =
+ new XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook>(list);
+
+ Method m = XmlListResource.class.getMethod("testJaxb2", new Class[]{});
+ JAXBContext context = provider.getJAXBContext(m.getReturnType(), m.getGenericReturnType());
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ context.createMarshaller().marshal(xmlList, os);
+ @SuppressWarnings("unchecked")
+ XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> list2 =
+ (XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook>)context.createUnmarshaller()
+ .unmarshal(new ByteArrayInputStream(os.toByteArray()));
+
+ List<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> actualList = list2.getList();
+ assertEquals(10, actualList.size());
+ for (int i = 0; i < 10; i++) {
+ org.apache.cxf.jaxrs.fortest.jaxb.SuperBook object = actualList.get(i);
+ assertEquals("name #" + i, object.getName());
+ }
+ }
+
@SuppressWarnings("unchecked")
private void testXmlList(JAXBElementProvider<?> provider) throws Exception {
@@ -218,7 +255,8 @@ public class JAXBElementProviderTest ext
}
XmlList<XmlObject> xmlList = new XmlList<XmlObject>(list);
- JAXBContext context = provider.getJAXBContext(XmlList.class, XmlList.class);
+ Method m = XmlListResource.class.getMethod("testJaxb", new Class[]{});
+ JAXBContext context = provider.getJAXBContext(m.getReturnType(), m.getGenericReturnType());
ByteArrayOutputStream os = new ByteArrayOutputStream();
context.createMarshaller().marshal(xmlList, os);
@@ -1587,6 +1625,12 @@ public class JAXBElementProviderTest ext
public XmlList<XmlObject> testJaxb() {
return null;
}
+
+ @GET
+ @Path("/jaxb2")
+ public XmlList<org.apache.cxf.jaxrs.fortest.jaxb.SuperBook> testJaxb2() {
+ return null;
+ }
}
private Message createMessage() {