//$Id: EventOverridingTest.java 9796 2006-04-26 06:46:52Z epbernard $
package org.hibernate.ejb.test.ejb3configuration;
import java.util.HashMap;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.hibernate.ejb.test.Cat;
import org.hibernate.event.EventListeners;
import org.hibernate.event.PreInsertEventListener;
/**
* @author Emmanuel Bernard
*/
public class EventOverridingTest extends TestCase {
public void testEventOverriding() throws Exception {
EventListeners eventListeners = configuration.getEventListeners();
assertEquals( 2, eventListeners.getPreInsertEventListeners().length );
eventListeners.setPreInsertEventListeners( new PreInsertEventListener[]{} );
Cat cat = new Cat();
cat.setLength( 3 );
cat.setAge( 34 );
cat.setName( "Did" ); //should raise a validation exception
EntityManager em = configuration.createEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
try {
em.persist( cat );
}
catch (Exception e) {
fail( "The validation framework is still activated" );
}
em.flush();
em.getTransaction().rollback();
em.close();
}
public void testEventPerProperties() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "manager1", new HashMap() );
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
Cat cat = new Cat();
cat.setLength( 3 );
cat.setAge( 34 );
cat.setName( "Did" ); //should raise a validation exception
try {
em.persist( cat );
}
catch (Exception e) {
fail( "The validation framework is still activated" );
}
em.flush();
em.getTransaction().rollback();
em.close();
emf.close();
}
public Class[] getAnnotatedClasses() {
return new Class[]{
Cat.class
};
}
}