alvinalexander.com | career | drupal | java | mac | mysql | perl | scala | uml | unix  

Hibernate example source code file (AbstractAllAuditedTest.java)

This example Hibernate source code file (AbstractAllAuditedTest.java) is included in the DevDaily.com "Java Source Code Warehouse" project. The intent of this project is to help you "Learn Java by Example" TM.

Java - Hibernate tags/keywords

abstractallauditedtest, abstractentitytest, auditedimplementor, auditedimplementor, exception, la, la, nonauditedimplementor, notauditedexception, priority, simpleinterface, simpleinterface, test, test, util

The Hibernate AbstractAllAuditedTest.java source code

package org.hibernate.envers.test.integration.interfaces.hbm.allAudited;

import org.hibernate.envers.exception.NotAuditedException;
import org.hibernate.envers.test.AbstractEntityTest;
import org.hibernate.envers.test.Priority;
import org.junit.Assert;
import org.junit.Test;

import javax.persistence.EntityManager;
import java.util.Arrays;

/**
 * @author Hern�n Chanfreau
 * @author Adam Warski (adam at warski dot org)
 */
public abstract class AbstractAllAuditedTest extends AbstractEntityTest {
	private long ai_id;
	private long nai_id;
	
    @Test
    @Priority(10)
    public void initData() {
        EntityManager em = getEntityManager();

        AuditedImplementor ai = new AuditedImplementor();
        ai.setData("La data");
        ai.setAuditedImplementorData("audited implementor data");
        
        NonAuditedImplementor nai = new NonAuditedImplementor();
        nai.setData("info");
        nai.setNonAuditedImplementorData("sttring");
        
        // Revision 1
        em.getTransaction().begin();

        em.persist(ai);
        
        em.persist(nai);

        em.getTransaction().commit();

        // Revision 2
        em.getTransaction().begin();

        ai = em.find(AuditedImplementor.class, ai.getId());
        nai = em.find(NonAuditedImplementor.class, nai.getId());

        ai.setData("La data 2");
        ai.setAuditedImplementorData("audited implementor data 2");

        nai.setData("info 2");
        nai.setNonAuditedImplementorData("sttring 2");

        em.getTransaction().commit();

        //

        ai_id = ai.getId();
        nai_id = nai.getId();
    }

    @Test
    public void testRevisions() {
        Assert.assertEquals(getAuditReader().getRevisions(AuditedImplementor.class, ai_id), Arrays.asList(1, 2));
    }

    @Test
    public void testRetrieveAudited() {
    	// levanto las versiones actuales
    	AuditedImplementor ai = getEntityManager().find(AuditedImplementor.class, ai_id);
    	assert ai != null;
    	SimpleInterface si = getEntityManager().find(SimpleInterface.class, ai_id);
    	assert si != null;

    	// levanto las de la revisi�n 1, ninguna debe ser null
    	AuditedImplementor ai_rev1 = getAuditReader().find(AuditedImplementor.class, ai_id, 1);
    	assert ai_rev1 != null;
    	SimpleInterface si_rev1 = getAuditReader().find(SimpleInterface.class, ai_id, 1);
    	assert si_rev1 != null;

        AuditedImplementor ai_rev2 = getAuditReader().find(AuditedImplementor.class, ai_id, 2);
    	assert ai_rev2 != null;
    	SimpleInterface si_rev2 = getAuditReader().find(SimpleInterface.class, ai_id, 2);
    	assert si_rev2 != null;
    		
    	// data de las actuales no debe ser null
    	Assert.assertEquals(ai.getData(), "La data 2");
    	Assert.assertEquals(si.getData(), "La data 2");
    	// la data de las revisiones no debe ser null
        Assert.assertEquals(ai_rev1.getData(), "La data");
        Assert.assertEquals(si_rev1.getData(), "La data");

        Assert.assertEquals(ai_rev2.getData(), "La data 2");
        Assert.assertEquals(si_rev2.getData(), "La data 2");
    }
    
    @Test
    public void testRetrieveNonAudited() {
    	// levanto las versiones actuales
    	NonAuditedImplementor nai = getEntityManager().find(NonAuditedImplementor.class, nai_id);
    	assert nai != null;
    	SimpleInterface si = getEntityManager().find(SimpleInterface.class, nai_id);
    	assert si != null;
    	
    	assert si.getData().equals(nai.getData());

    	try {
    		// levanto la revision  
    		getAuditReader().find(NonAuditedImplementor.class, nai_id, 1);
    		assert false;
    	} catch (Exception e) {
    		// no es auditable!!!
    		assert (e instanceof NotAuditedException);
		}
    	
    	// levanto la revision que no es auditable pero con la interfaz, el resultado debe ser null
   		SimpleInterface si_rev1 = getAuditReader().find(SimpleInterface.class, nai_id, 1);
   		assert si_rev1 == null;
   		
    }    
}

Other Hibernate examples (source code examples)

Here is a short list of links related to this Hibernate AbstractAllAuditedTest.java source code file:

... this post is sponsored by my books ...

#1 New Release!

FP Best Seller

 

new blog posts

 

Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.

A percentage of advertising revenue from
pages under the /java/jwarehouse URI on this website is
paid back to open source projects.