package test.org.korsakow.domain; import org.dsrg.soenea.domain.DomainObject; import org.dsrg.soenea.domain.MapperException; import org.dsrg.soenea.domain.mapper.GenericOutputMapper; import org.dsrg.soenea.domain.proxy.DomainObjectProxy; import org.dsrg.soenea.uow.MapperFactory; import org.dsrg.soenea.uow.UoW; import org.junit.Test; public class TestProxy extends AbstractDomainObjectTestCase { @Test public void testUoWRegisterProxyDirtyAndCommit() { final long ID = 0; ProxyBaseClass proxy = new ProxyBaseClass(ID); MapperFactory fac = new MapperFactory(); fac.addMapping(MyDomainObject.class, MyOutputMapper.class); UoW.initMapperFactory(fac); UoW.getCurrent().registerDirty(proxy); } @Test public void testUoWRegisterProxySubclassDirtyAndCommit() { final long ID = 0; ProxySubClass proxy = new ProxySubClass(ID); MapperFactory fac = new MapperFactory(); fac.addMapping(MyDomainObject.class, MyOutputMapper.class); UoW.initMapperFactory(fac); UoW.getCurrent().registerDirty(proxy); } private static class MyOutputMapper implements GenericOutputMapper<Long, MyDomainObject> { @Override public void delete(MyDomainObject d) throws MapperException { } @Override public void insert(MyDomainObject d) throws MapperException { } @Override public void update(MyDomainObject d) throws MapperException { } } private static class ProxyBaseClass extends DomainObjectProxy<Long, MyDomainObject> { protected ProxyBaseClass(Long id) { super(id); } @Override protected MyDomainObject getFromMapper(Long id) throws MapperException { return new MyDomainObject( id ); } } private static class ProxySubClass extends ProxyBaseClass { protected ProxySubClass(Long id) { super(id); } } private static class MyDomainObject extends DomainObject<Long> { protected MyDomainObject(Long id) { super(id); } } }