Package org.codehaus.xfire.aegis.type.java5

Source Code of org.codehaus.xfire.aegis.type.java5.MapTest$MapService

package org.codehaus.xfire.aegis.type.java5;

import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.Method;
import java.util.Collection;
import java.util.Map;
import java.util.Set;

import javax.xml.namespace.QName;

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.Type;
import org.codehaus.xfire.aegis.type.collection.CollectionType;
import org.codehaus.xfire.aegis.type.collection.MapType;
import org.codehaus.xfire.aegis.type.java5.dto.MapDTO;
import org.codehaus.xfire.aegis.type.java5.dto.MapDTOService;
import org.codehaus.xfire.service.Service;

public class MapTest
    extends AbstractXFireAegisTest
{
    private CustomTypeMapping tm;
    private Java5TypeCreator creator;

    public void setUp() throws Exception
    {
        super.setUp();
       
        tm = new CustomTypeMapping();
        creator = new Java5TypeCreator();
        creator.setConfiguration(new Configuration());
        tm.setTypeCreator(creator);
    }

    public void testType() throws Exception
    {
        Method m = MapService.class.getMethod("getMap", new Class[0]);
       
        Type type = creator.createType(m, -1);
        tm.register(type);
        assertTrue( type instanceof MapType );
       
        MapType mapType = (MapType) type;
        QName keyName = mapType.getKeyName();
       
        type = mapType.getKeyType();
        assertNotNull(type);
        assertTrue(type.getTypeClass().isAssignableFrom(String.class));
       
        type = mapType.getValueType();
        assertNotNull(type);
        assertTrue(type.getTypeClass().isAssignableFrom(Integer.class));
    }

    public void testRecursiveType() throws Exception
    {
        Method m = MapService.class.getMethod("getMapOfCollections", new Class[0]);
       
        Type type = creator.createType(m, -1);
        tm.register(type);
        assertTrue( type instanceof MapType );
       
        MapType mapType = (MapType) type;
        QName keyName = mapType.getKeyName();
       
        type = mapType.getKeyType();
        assertNotNull(type);
        assertTrue(type instanceof CollectionType);
        assertEquals(String.class, ((CollectionType) type).getComponentType().getTypeClass());
       
        type = mapType.getValueType();
        assertNotNull(type);
        assertTrue(type instanceof CollectionType);
        assertEquals(Double.class, ((CollectionType) type).getComponentType().getTypeClass());
    }
   
    public void testPDType() throws Exception
    {
        PropertyDescriptor pd =
            Introspector.getBeanInfo(MapDTO.class, Object.class).getPropertyDescriptors()[0];
        Type type = creator.createType(pd);
        tm.register(type);
        assertTrue( type instanceof MapType );
       
        MapType mapType = (MapType) type;
        QName keyName = mapType.getKeyName();
       
        type = mapType.getKeyType();
        assertNotNull(type);
        assertTrue(type.getTypeClass().isAssignableFrom(String.class));
       
        type = mapType.getValueType();
        assertNotNull(type);
        assertTrue(type.getTypeClass().isAssignableFrom(Integer.class));
    }

    public void testMapDTO()
    {
        CustomTypeMapping tm = new CustomTypeMapping();
        Java5TypeCreator creator = new Java5TypeCreator();
        creator.setConfiguration(new Configuration());
        tm.setTypeCreator(creator);
       
        Type dto = creator.createType(MapDTO.class);
        Set deps = dto.getDependencies();
       
        Type type = (Type) deps.iterator().next();
        assertTrue( type instanceof MapType );
       
        MapType mapType = (MapType) type;
       
        deps = dto.getDependencies();
        assertEquals(1, deps.size());
       
        type = mapType.getKeyType();
        assertNotNull(type);
        assertTrue(type.getTypeClass().isAssignableFrom(String.class));
       
        type = mapType.getValueType();
        assertNotNull(type);
        assertTrue(type.getTypeClass().isAssignableFrom(Integer.class));
    }
   
    public void testMapDTOService() throws Exception
    {
        Service service = getServiceFactory().create(MapDTOService.class);
        getServiceRegistry().register(service);
       
        invokeService(service.getSimpleName(), "/org/codehaus/xfire/aegis/type/java5/dto/GetDTO.xml");
    }
   
    public void testMapServiceWSDL() throws Exception
    {
        Service service = getServiceFactory().create(MapDTOService.class);
        getServiceRegistry().register(service);
       
        getWSDLDocument(service.getSimpleName());
    }
   
    public class MapService
    {
        public Map<String,Integer> getMap()
        {
          return null;
        }
       
        public void setMap(Map<String,Integer> strings) {
         
        }
       
        public Map<Collection<String>,Collection<Double>> getMapOfCollections()
        {
            return null;
        }
    }
}
TOP

Related Classes of org.codehaus.xfire.aegis.type.java5.MapTest$MapService

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.