/* * Hibernate, Relational Persistence for Idiomatic Java * * License: GNU Lesser General Public License (LGPL), version 2.1 or later. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.envers.test.integration.onetoone.unidirectional; import javax.persistence.EntityManager; 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 org.junit.Test; 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; @Override protected Class<?>[] getAnnotatedClasses() { return new Class[] {EmbIdTestEntity.class, 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 ); } }