Package ma.glasnost.orika.test.community

Source Code of ma.glasnost.orika.test.community.Issue24TestCase$B

package ma.glasnost.orika.test.community;

import ma.glasnost.orika.MapperFactory;
import ma.glasnost.orika.MappingContext;
import ma.glasnost.orika.metadata.ClassMapBuilder;
import ma.glasnost.orika.metadata.Type;
import ma.glasnost.orika.metadata.TypeFactory;
import ma.glasnost.orika.test.MappingUtil;
import org.junit.Assert;
import org.junit.Test;

/**
* Issue 24:   
*      lookupConcreteDestinationType should return the most specific type,
*      not the first that is assignable
*
* @author mattdeboer
*
*/
public class Issue24TestCase {
   
    @Test
    public void testLookupDestinationGetsMostSpecific() {
        MapperFactory factory = MappingUtil.getMapperFactory();

        factory.registerClassMap(ClassMapBuilder.map(A.class, BSub.class).byDefault().toClassMap());
        factory.registerClassMap(ClassMapBuilder.map(A.class, B.class).byDefault().toClassMap());
        factory.registerClassMap(ClassMapBuilder.map(A.class, BSuper.class).byDefault().toClassMap());
        factory.getMapperFacade();

        Type bsuper = factory.lookupConcreteDestinationType(TypeFactory.valueOf(A.class), TypeFactory.valueOf(BSuper.class), null);
        Assert.assertEquals(BSuper.class, bsuper.getRawType());
        Type b = factory.lookupConcreteDestinationType(TypeFactory.valueOf(A.class), TypeFactory.valueOf(B.class), null);
        Assert.assertEquals(B.class, b.getRawType());
        Type bsub = factory.lookupConcreteDestinationType(TypeFactory.valueOf(A.class), TypeFactory.valueOf(BSub.class), null);
        Assert.assertEquals(BSub.class, bsub.getRawType());
    }

    public class A {

    }

    public class BSuper extends B {

    }

    public class B extends BSub {

    }

    public class BSub {

    }
}
TOP

Related Classes of ma.glasnost.orika.test.community.Issue24TestCase$B

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.