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

📄 maptypetest.java

📁 Xfire文件 用于开发web service 的一个开源工具 很好用的
💻 JAVA
字号:
package org.codehaus.xfire.aegis.type.collection;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import javax.xml.namespace.QName;import org.codehaus.xfire.MessageContext;import org.codehaus.xfire.aegis.AbstractXFireAegisTest;import org.codehaus.xfire.aegis.jdom.JDOMWriter;import org.codehaus.xfire.aegis.stax.ElementReader;import org.codehaus.xfire.aegis.type.DefaultTypeMappingRegistry;import org.codehaus.xfire.aegis.type.Type;import org.codehaus.xfire.aegis.type.TypeCreator;import org.codehaus.xfire.aegis.type.TypeMapping;import org.codehaus.xfire.aegis.type.TypeMappingRegistry;import org.codehaus.xfire.aegis.type.basic.BeanType;import org.codehaus.xfire.aegis.type.basic.SimpleBean;import org.codehaus.xfire.aegis.type.basic.StringType;import org.codehaus.xfire.aegis.type.collection.bean.MapBean;import org.codehaus.xfire.client.XFireProxyFactory;import org.codehaus.xfire.service.Service;import org.codehaus.xfire.service.invoker.ObjectInvoker;import org.codehaus.xfire.soap.SoapConstants;import org.jdom.Document;import org.jdom.Element;import org.jdom.Namespace;public class MapTypeTest    extends AbstractXFireAegisTest{    TypeMapping mapping;        public void setUp() throws Exception    {        super.setUp();                addNamespace("t", "urn:test");        addNamespace("xsd", SoapConstants.XSD);        addNamespace("xsi", SoapConstants.XSI_NS);                TypeMappingRegistry reg = new DefaultTypeMappingRegistry(true);        mapping = reg.createTypeMapping(true);        mapping.setEncodingStyleURI("urn:test");    }    public void testBean()        throws Exception    {        Type stringType = mapping.getTypeCreator().createType(String.class);                MapType type = new MapType(new QName("urn:test", "map"), stringType, stringType);        type.setTypeClass(Map.class);        type.setTypeMapping(mapping);                assertNotNull(type.getSchemaType());        assertEquals("entry", type.getEntryName().getLocalPart());        assertEquals("urn:test", type.getEntryName().getNamespaceURI());        assertEquals("key", type.getKeyName().getLocalPart());        assertEquals("urn:test", type.getKeyName().getNamespaceURI());        assertEquals("value", type.getValueName().getLocalPart());        assertEquals("urn:test", type.getValueName().getNamespaceURI());        assertTrue(type.isComplex());                Set deps = type.getDependencies();        assertEquals(1, deps.size());        Type stype = (Type) deps.iterator().next();        assertTrue(stype instanceof StringType);                // Test reading        ElementReader reader = new ElementReader(getResourceAsStream("/org/codehaus/xfire/aegis/type/collection/Map.xml"));        //MessageReader creader = reader.getNextElementReader();                Map m = (Map) type.readObject(reader, new MessageContext());        assertEquals(2, m.size());        assertEquals("value1", m.get("key1"));        assertEquals("value2", m.get("key2"));                reader.getXMLStreamReader().close();                // Test writing        Element element = new Element("map", "urn:test");        Document doc = new Document(element);        JDOMWriter writer = new JDOMWriter(element);        type.writeObject(m, writer, new MessageContext());        writer.close();        assertValid("/t:map/t:entry[1]/t:key[text()='key1']", element);        assertValid("/t:map/t:entry[1]/t:value[text()='value1']", element);        assertValid("/t:map/t:entry[2]/t:key[text()='key2']", element);        assertValid("/t:map/t:entry[2]/t:value[text()='value2']", element);        Element types = new Element("types", Namespace.getNamespace("xsd", SoapConstants.XSD));        Element schema = new Element("schema", Namespace.getNamespace("xsd", SoapConstants.XSD));        types.addContent(schema);                doc = new Document(types);                type.writeSchema(schema);        assertValid("//xsd:complexType[@name='map']", doc);        assertValid("//xsd:complexType[@name='map']/xsd:sequence/xsd:element[@name='entry']", doc);        assertValid("//xsd:complexType[@name='map']/xsd:sequence/xsd:element[@name='entry']" +                    "/xsd:complexType/xsd:sequence/xsd:element[@name='key'][@type='xsd:string']", doc);        assertValid("//xsd:complexType[@name='map']/xsd:sequence/xsd:element[@name='entry']" +                    "/xsd:complexType/xsd:sequence/xsd:element[@name='value'][@type='xsd:string']", doc);    }        public void testTypeCreator()    {        TypeCreator creator = mapping.getTypeCreator();        BeanType beanType = (BeanType) creator.createType(MapBean.class);                QName mapName = (QName) beanType.getTypeInfo().getElements().next();                Type type = beanType.getTypeInfo().getType(mapName);        assertTrue(type instanceof MapType);        assertEquals(new QName(mapping.getEncodingStyleURI(), "string2SimpleBeanMap"), type.getSchemaType());                MapType mapType = (MapType) type;        assertEquals(SimpleBean.class, mapType.getValueType().getTypeClass());        assertEquals(String.class, mapType.getKeyType().getTypeClass());    }    public void testService() throws Exception    {        Service service = getServiceFactory().create(MapService.class, null, "urn:MapService", null);        getServiceRegistry().register(service);        service.setProperty(ObjectInvoker.SERVICE_IMPL_CLASS, MapServiceImpl.class);                XFireProxyFactory factory = new XFireProxyFactory(getXFire());        MapService client = (MapService) factory.create(service, "xfire.local://MapService");        // this fails when we do it... Woodstox bug?//        Client xclient = Client.getInstance(client);//        xclient.addOutHandler(new DOMOutHandler());//        xclient.addOutHandler(new LoggingHandler());//                Map map = new HashMap();        SimpleBean bean = new SimpleBean();        bean.setHowdy("howdy");        map.put("test", bean);        map = client.echoMap(map);        assertNotNull(map);        assertEquals(1, map.size());        bean = (SimpleBean) map.get("test");        assertNotNull(bean);        assertEquals("howdy", bean.getHowdy());                MapBean mapBean = new MapBean();        mapBean.setMap(map);        MapBean mapBean2 = client.echoMapBean(mapBean);        assertEquals(1, mapBean2.getMap().size());                map = new HashMap();        List keyList = new ArrayList();        keyList.add("key");        List valueList = new ArrayList();        valueList.add("value");        map.put(keyList, valueList);                Map map2 = client.echoMapOfCollections(map);        assertEquals(1, map2.size());    }}

⌨️ 快捷键说明

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