package org.hibernate.envers.test.integration.entityNames.singleAssociatedAudited; import org.hibernate.MappingException; import org.hibernate.envers.test.AbstractOneSessionTest; import org.hibernate.envers.test.Priority; import org.hibernate.testing.TestForIssue; import org.junit.Assert; import org.junit.Test; import java.io.File; import java.net.URISyntaxException; import java.net.URL; /** * @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com) */ public class SingleDomainObjectToMultipleTablesTest extends AbstractOneSessionTest { private long carId = 0; private long ownerId = 0; private long driverId = 0; protected void initMappings() throws MappingException, URISyntaxException { URL url = Thread.currentThread().getContextClassLoader().getResource("mappings/entityNames/singleAssociatedAudited/mappings.hbm.xml"); config.addFile(new File(url.toURI())); } @Test @Priority(10) public void initData() { initializeSession(); //REV 1 getSession().getTransaction().begin(); Person owner = new Person("Lukasz", 25); Person driver = new Person("Kinga", 24); Car car = new Car(1, owner, driver); getSession().persist("Personaje", owner); getSession().persist("Driveraje", driver); getSession().persist(car); getSession().getTransaction().commit(); carId = car.getId(); ownerId = owner.getId(); driverId = driver.getId(); } @Test @TestForIssue(jiraKey="HHH-4648") public void testSingleDomainObjectToMultipleTablesMapping() { Car carVer1 = getAuditReader().find(Car.class, carId, 1); Person ownerVer1 = getAuditReader().find(Person.class, "Personaje", ownerId, 1); Person driverVer1 = getAuditReader().find(Person.class, "Driveraje", driverId, 1); /* Check ids. */ Assert.assertEquals(ownerVer1.getId(), carVer1.getOwner().getId()); Assert.assertEquals(driverVer1.getId(), carVer1.getDriver().getId()); /* Check object properties. */ Assert.assertEquals("Lukasz", ownerVer1.getName()); Assert.assertEquals("Kinga", driverVer1.getName()); Assert.assertEquals(1, carVer1.getNumber()); } }