package org.hibernate.envers.test.integration.onetoone.unidirectional; import javax.persistence.EntityManager; import org.junit.Test; import org.hibernate.ejb.Ejb3Configuration; import org.hibernate.envers.test.BaseEnversJPAFunctionalTestCase; import org.hibernate.envers.test.Priority; import org.hibernate.envers.test.entities.ids.EmbId; import org.hibernate.envers.test.entities.ids.EmbIdTestEntity; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; /** * @author Lukasz Antoniak (lukasz dot antoniak at gmail dot com) */ public class UnidirectionalMulIdWithNulls extends BaseEnversJPAFunctionalTestCase { private EmbId ei; public void configure(Ejb3Configuration cfg) { cfg.addAnnotatedClass(EmbIdTestEntity.class); cfg.addAnnotatedClass(UniRefIngMulIdEntity.class); } @Test @Priority(10) public void initData() { ei = new EmbId(1, 2); EntityManager em = getEntityManager(); // Revision 1 EmbIdTestEntity eite = new EmbIdTestEntity(ei, "data"); UniRefIngMulIdEntity notNullRef = new UniRefIngMulIdEntity(1, "data 1", eite); UniRefIngMulIdEntity nullRef = new UniRefIngMulIdEntity(2, "data 2", null); em.getTransaction().begin(); em.persist(eite); em.persist(notNullRef); em.persist(nullRef); em.getTransaction().commit(); } @Test public void testNullReference() { UniRefIngMulIdEntity nullRef = getAuditReader().find(UniRefIngMulIdEntity.class, 2, 1); assertNull(nullRef.getReference()); } @Test public void testNotNullReference() { EmbIdTestEntity eite = getAuditReader().find(EmbIdTestEntity.class, ei, 1); UniRefIngMulIdEntity notNullRef = getAuditReader().find(UniRefIngMulIdEntity.class, 1, 1); assertNotNull(notNullRef.getReference()); assertEquals(notNullRef.getReference(), eite); } }