/* * 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.entityNames.auditedEntity; import java.io.File; import java.net.URISyntaxException; import java.net.URL; import java.util.List; import org.hibernate.MappingException; import org.hibernate.envers.test.AbstractOneSessionTest; import org.hibernate.envers.test.Priority; import org.junit.Test; /** * @author Hernán Chanfreau */ public class ReadEntityWhitEntityNameTest extends AbstractOneSessionTest { private long id_pers1; private long id_pers2; private long id_pers3; private Person person1_1; private Person person1_2; private Person person1_3; private Person currentPers1; protected void initMappings() throws MappingException, URISyntaxException { URL url = Thread.currentThread().getContextClassLoader().getResource( "mappings/entityNames/auditedEntity/mappings.hbm.xml" ); config.addFile( new File( url.toURI() ) ); } @Test @Priority(10) public void initData() { initializeSession(); Person pers1 = new Person( "Hernan", 28 ); Person pers2 = new Person( "Leandro", 29 ); Person pers3 = new Person( "Barba", 30 ); //REV 1 getSession().getTransaction().begin(); getSession().persist( "Personaje", pers1 ); id_pers1 = pers1.getId(); getSession().getTransaction().commit(); //REV 2 getSession().getTransaction().begin(); pers1 = (Person) getSession().get( "Personaje", id_pers1 ); pers1.setAge( 29 ); getSession().persist( "Personaje", pers1 ); getSession().persist( "Personaje", pers2 ); id_pers2 = pers2.getId(); getSession().getTransaction().commit(); //REV getSession().getTransaction().begin(); pers1 = (Person) getSession().get( "Personaje", id_pers1 ); pers1.setName( "Hernan David" ); pers2 = (Person) getSession().get( "Personaje", id_pers2 ); pers2.setAge( 30 ); getSession().persist( "Personaje", pers1 ); getSession().persist( "Personaje", pers2 ); getSession().persist( "Personaje", pers3 ); id_pers3 = pers3.getId(); getSession().getTransaction().commit(); getSession().getTransaction().begin(); currentPers1 = (Person) getSession().get( "Personaje", id_pers1 ); getSession().getTransaction().commit(); } @Test public void testRetrieveRevisionsWithEntityName() { List<Number> pers1Revs = getAuditReader().getRevisions( Person.class, "Personaje", id_pers1 ); List<Number> pers2Revs = getAuditReader().getRevisions( Person.class, "Personaje", id_pers2 ); List<Number> pers3Revs = getAuditReader().getRevisions( Person.class, "Personaje", id_pers3 ); assert (pers1Revs.size() == 3); assert (pers2Revs.size() == 2); assert (pers3Revs.size() == 1); } @Test public void testRetrieveAuditedEntityWithEntityName() { person1_1 = getAuditReader().find( Person.class, "Personaje", id_pers1, 1 ); person1_2 = getAuditReader().find( Person.class, "Personaje", id_pers1, 2 ); person1_3 = getAuditReader().find( Person.class, "Personaje", id_pers1, 3 ); assert (person1_1 != null); assert (person1_2 != null); assert (person1_3 != null); } @Test public void testObtainEntityNameAuditedEntityWithEntityName() { person1_1 = getAuditReader().find( Person.class, "Personaje", id_pers1, 1 ); person1_2 = getAuditReader().find( Person.class, "Personaje", id_pers1, 2 ); person1_3 = getAuditReader().find( Person.class, "Personaje", id_pers1, 3 ); String currentPers1EN = getSession().getEntityName( currentPers1 ); String person1EN = getAuditReader().getEntityName( person1_1.getId(), 1, person1_1 ); assert (currentPers1EN.equals( person1EN )); String person2EN = getAuditReader().getEntityName( person1_2.getId(), 2, person1_2 ); assert (currentPers1EN.equals( person2EN )); String person3EN = getAuditReader().getEntityName( person1_3.getId(), 3, person1_3 ); assert (currentPers1EN.equals( person3EN )); } @Test public void testRetrieveAuditedEntityWithEntityNameWithNewSession() { // force a new session and AR forceNewSession(); person1_1 = getAuditReader().find( Person.class, "Personaje", id_pers1, 1 ); person1_2 = getAuditReader().find( Person.class, "Personaje", id_pers1, 2 ); person1_3 = getAuditReader().find( Person.class, "Personaje", id_pers1, 3 ); assert (person1_1 != null); assert (person1_2 != null); assert (person1_3 != null); } }