⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 descriptortest.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.aegis.type.basic;import java.lang.reflect.Method;import java.math.BigDecimal;import java.util.Calendar;import java.util.Collection;import java.util.Date;import java.util.Iterator;import javax.xml.namespace.QName;import org.codehaus.xfire.XFireRuntimeException;import org.codehaus.xfire.aegis.AbstractXFireAegisTest;import org.codehaus.xfire.aegis.type.Configuration;import org.codehaus.xfire.aegis.type.CustomTypeMapping;import org.codehaus.xfire.aegis.type.DefaultTypeCreator;import org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry;import org.codehaus.xfire.aegis.type.Type;import org.codehaus.xfire.aegis.type.XMLTypeCreator;import org.codehaus.xfire.aegis.type.collection.CollectionType;import org.codehaus.xfire.soap.SoapConstants;import org.jdom.Document;import org.jdom.Element;import org.jdom.Namespace;public class DescriptorTest    extends AbstractXFireAegisTest{    CustomTypeMapping tm;    private DefaultTypeMappingRegistry reg;    protected void setUp()        throws Exception    {        super.setUp();        reg = new DefaultTypeMappingRegistry(true);        tm = (CustomTypeMapping) reg.getDefaultTypeMapping();                XMLTypeCreator creator = new XMLTypeCreator();        creator.setConfiguration(reg.getConfiguration());        DefaultTypeCreator next = new DefaultTypeCreator();        next.setConfiguration(reg.getConfiguration());        creator.setNextCreator(next);        tm.setTypeCreator(creator);    }    public void testMapping() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator elItr = info.getElements();        assertTrue(elItr.hasNext());        QName el = (QName) elItr.next();        assertEquals("Prop1", el.getLocalPart());        Iterator attItr = info.getAttributes();        assertTrue(attItr.hasNext());        QName att = (QName) attItr.next();        assertEquals("Prop2", att.getLocalPart());    }    public void testMapping2() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean2");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator elItr = info.getElements();        assertTrue(elItr.hasNext());        QName el = (QName) elItr.next();        assertEquals("Prop1", el.getLocalPart());        assertTrue(elItr.hasNext());        QName el2 = (QName) elItr.next();        assertEquals("Prop2", el2.getLocalPart());    }        public void testParentWithMapping2() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean2");        Type type = tm.getTypeCreator().createType(ParentOfMyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator elItr = info.getElements();        assertTrue(elItr.hasNext());        QName el = (QName) elItr.next();        assertEquals("Prop1", el.getLocalPart());        assertTrue(elItr.hasNext());        QName el2 = (QName) elItr.next();        assertEquals("Prop2", el2.getLocalPart());    }    public void testListHolder() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean");        Type type = tm.getTypeCreator().createType(ListHolderBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator elItr = info.getElements();        assertTrue(elItr.hasNext());        QName el = (QName) elItr.next();        assertEquals("Beans", el.getLocalPart());        Type beanList = info.getType(el);        assertTrue( beanList instanceof CollectionType );    }    public void testListHolderNoName() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean2");        Type type = tm.getTypeCreator().createType(ListHolderBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator elItr = info.getElements();        assertTrue(elItr.hasNext());        QName el = (QName) elItr.next();        assertEquals("beans", el.getLocalPart());        Type beanList = info.getType(el);        assertTrue( beanList instanceof CollectionType );    }    public void testDefaultName() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean4");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator attItr = info.getAttributes();        assertTrue(attItr.hasNext());        QName el = (QName) attItr.next();        assertEquals("prop2", el.getLocalPart());    }    public void testNillable() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean-nillable");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        assertFalse(info.isNillable(new QName(info.getDefaultNamespace(), "prop1")));        assertTrue(info.isNillable(new QName(info.getDefaultNamespace(), "prop2")));    }        public void testMinOccurs() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean-minoccurs");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        assertEquals(info.getMinOccurs(new QName(info.getDefaultNamespace(), "prop1")), 1);        assertEquals(info.getMinOccurs(new QName(info.getDefaultNamespace(), "prop2")), 0);    }        public void testExtensible() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean-extensible");        reg.getConfiguration().setDefaultExtensibleAttributes(true);        reg.getConfiguration().setDefaultExtensibleElements(true);                Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        assertTrue(info.isExtensibleElements());        assertTrue(info.isExtensibleAttributes());    }        public void testExtensibleOff() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean-extensibleoff");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        assertFalse(info.isExtensibleElements());        assertFalse(info.isExtensibleAttributes());    }    public void testCustomType() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:custom-type");        BeanType type = (BeanType) tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = type.getTypeInfo();        QName name = (QName) info.getElements().next();        Type custom = info.getType(name);        assertTrue(custom instanceof MyStringType);    }    public void testSimpleXMLMapping() throws Exception    {        XMLTypeCreator creator = new XMLTypeCreator();        creator.setNextCreator(new DefaultTypeCreator());        creator.setConfiguration(new Configuration());        tm = new CustomTypeMapping(new DefaultTypeMappingRegistry().createDefaultMappings());        creator.setTypeMapping(tm);        Type type = creator.createType(MyService1.class.getDeclaredMethod("getCollection", new Class[0]), -1);        assertTrue("type is not a collection", type instanceof CollectionType);        assertEquals("unexpected collection type", Double.class, ((CollectionType)type).getComponentType().getTypeClass());        try        {            creator.createType(MyService1.class.getDeclaredMethod("getUnmapped", new Class[]{java.util.List.class}), 0);            fail("Unmapped collection did not throw an exception");        }        catch(XFireRuntimeException ex)        {        }                // assertEquals(new QName(tm.getEncodingStyleURI(), "doubles"), type.getSchemaType());    }    public void testBestMatch() throws Exception    {        XMLTypeCreator creator = new XMLTypeCreator();        creator.setNextCreator(new DefaultTypeCreator());        creator.setConfiguration(new Configuration());        tm = new CustomTypeMapping(new DefaultTypeMappingRegistry().createDefaultMappings());        creator.setTypeMapping(tm);        Method method = MyService1.class.getDeclaredMethod("getCollection", new Class[0]);        Type type = creator.createType(method, -1);        assertTrue("type is not a collection", type instanceof CollectionType);        assertEquals("unexpected collection return type for method " + method, Double.class, ((CollectionType)type).getComponentType().getTypeClass());                method = MyService1.class.getDeclaredMethod("getCollection", new Class[]{Integer.TYPE});        type = creator.createType(method, -1);        assertEquals("unexpected collection return type for method " + method, Float.class, ((CollectionType)type).getComponentType().getTypeClass());                type = creator.createType(method, 0);        // assertEquals(new QName("urn:foo:bar", "int"), type.getSchemaType());                method = MyService1.class.getDeclaredMethod("getCollectionForValues", new Class[]{Integer.TYPE, Collection.class});        type = creator.createType(method, -1);        assertEquals("unexpected collection return type for method " + method, Calendar.class, ((CollectionType)type).getComponentType().getTypeClass());                method = MyService1.class.getDeclaredMethod("getCollectionForValues", new Class[]{String.class, Collection.class});        type = creator.createType(method, -1);        assertEquals("unexpected collection return type for method " + method, BigDecimal.class, ((CollectionType)type).getComponentType().getTypeClass());        type = creator.createType(method, 1);        assertEquals("unexpected collection parameter type for method " + method, Date.class, ((CollectionType)type).getComponentType().getTypeClass());        try        {            creator.createType(method, 2);            fail("Expected exception when requesting type for non-existent parameter index");        }        catch(Exception ex)        {}    }        public void testMapping5() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:bean5");        Type type = tm.getTypeCreator().createType(MyBean.class);        BeanTypeInfo info = ((BeanType) type).getTypeInfo();        Iterator elItr = info.getElements();        assertFalse(elItr.hasNext());        Iterator attItr = info.getAttributes();        assertFalse(attItr.hasNext());    }        public void testCustomName() throws Exception    {        tm.setEncodingStyleURI("urn:xfire:custom-ns");        BeanType type = (BeanType) tm.getTypeCreator().createType(MyBean.class);                assertEquals(new QName("urn:Bean", "Bean"), type.getSchemaType());                BeanTypeInfo info = type.getTypeInfo();        assertEquals("urn:Bean", info.getDefaultNamespace());                Iterator elItr = info.getElements();        assertTrue(elItr.hasNext());        QName prop1 = (QName) elItr.next();        assertEquals(new QName("urn:Bean", "prop1"), prop1);        System.out.println(info.getType(prop1));        assertTrue(info.getType(prop1) instanceof StringType);                Element root = new Element("root", Namespace.getNamespace("xsd", SoapConstants.XSD));        new Document(root);        Element schema = new Element("schema", Namespace.getNamespace("xsd", SoapConstants.XSD));        root.addContent(schema);        type.writeSchema(schema);        addNamespace("xsd", SoapConstants.XSD);        assertValid("//xsd:element[@name='prop1'][@type='xsd:string']", root);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -