package org.ovirt.engine.api.restapi.types; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.ovirt.engine.api.restapi.test.mappers.api.IBar; import org.ovirt.engine.api.restapi.test.mappers.api.IFoo; import org.ovirt.engine.api.restapi.test.mappers.impl.BarImpl; import org.ovirt.engine.api.restapi.test.mappers.impl.FooImpl; public class MappingLocatorTest extends Assert { private static final String PACKAGE_NAME = "org.ovirt.engine.api.restapi.test.mapping"; private MappingLocator mappingLocator; @Before public void setUp() { mappingLocator = new MappingLocator(PACKAGE_NAME); mappingLocator.populate(); } @Test public void testStaticFooToBarInterfaceMapper() { Mapper<IFoo, IBar> mapper = mappingLocator.getMapper(IFoo.class, IBar.class); assertNotNull(mapper); IBar bar = mapper.map(new FooImpl("foo"), null); assertEquals("foo", bar.get()); } @Test public void testStaticBarToFooInterfaceMapper() { Mapper<IBar, IFoo> mapper = mappingLocator.getMapper(IBar.class, IFoo.class); assertNotNull(mapper); IFoo foo = mapper.map(new BarImpl("bar"), null); assertEquals("bar", foo.get()); } @Test public void testStaticFooToBarClassMapper() { Mapper<FooImpl, BarImpl> mapper = mappingLocator.getMapper(FooImpl.class, BarImpl.class); assertNotNull(mapper); IBar bar = mapper.map(new FooImpl("foo"), null); assertEquals("foo", bar.get()); } @Test public void testStaticBarToFooClassMapper() { Mapper<BarImpl, FooImpl> mapper = mappingLocator.getMapper(BarImpl.class, FooImpl.class); assertNotNull(mapper); IFoo foo = mapper.map(new BarImpl("bar"), null); assertEquals("bar", foo.get()); } @Test public void testStaticTemplatedFooToBarClassMapper() { Mapper<FooImpl, BarImpl> mapper = mappingLocator.getMapper(FooImpl.class, BarImpl.class); assertNotNull(mapper); BarImpl bar = mapper.map(new FooImpl("foo"), new BarImpl("overwrite", "keep")); assertEquals("foo", bar.get()); assertEquals("keep", bar.other()); } @Test public void testStaticTemplatedBarToFooClassMapper() { Mapper<BarImpl, FooImpl> mapper = mappingLocator.getMapper(BarImpl.class, FooImpl.class); assertNotNull(mapper); FooImpl foo = mapper.map(new BarImpl("bar"), new FooImpl("overwrite", "keep")); assertEquals("bar", foo.get()); assertEquals("keep", foo.other()); } @Test public void testSelfMapper() { Mapper<IFoo, IFoo> mapper = mappingLocator.getMapper(IFoo.class, IFoo.class); assertNull(mapper); } }