[hibernate-commits] Hibernate SVN: r12915 - in trunk/HibernateExt/entitymanager/src: test/org/hibernate/ejb/test/ejb3configuration and 4 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Fri Aug 10 09:35:23 EDT 2007
Author: epbernard
Date: 2007-08-10 09:35:22 -0400 (Fri, 10 Aug 2007)
New Revision: 12915
Added:
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/NoOpListener.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/UnversionedLock.java
Modified:
trunk/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/persistence.xml
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/EventOverridingTest.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/FlushTest.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/LockTest.java
trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/transaction/FlushAndTransactionTest.java
Log:
More tests on explicit events
Added: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/NoOpListener.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/NoOpListener.java (rev 0)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/NoOpListener.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -0,0 +1,14 @@
+//$Id: $
+package org.hibernate.ejb.test;
+
+import org.hibernate.event.PreInsertEventListener;
+import org.hibernate.event.PreInsertEvent;
+
+/**
+ * @author Emmanuel Bernard
+ */
+public class NoOpListener implements PreInsertEventListener {
+ public boolean onPreInsert(PreInsertEvent event) {
+ return false;
+ }
+}
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java 2007-08-10 05:35:01 UTC (rev 12914)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/PackagedEntityManagerTest.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -27,6 +27,8 @@
import org.hibernate.stat.Statistics;
import org.hibernate.validator.InvalidStateException;
import org.hibernate.JDBCException;
+import org.hibernate.event.EventListeners;
+import org.hibernate.engine.SessionImplementor;
//$Id$
@@ -215,6 +217,19 @@
}
+ public void testListeners() throws Exception {
+ EntityManagerFactory emf = Persistence.createEntityManagerFactory( "manager1", new HashMap() );
+ EntityManager em = emf.createEntityManager();
+ EventListeners eventListeners = ( (SessionImplementor) em.getDelegate() ).getListeners();
+ assertEquals(
+ "Explicit pre-insert event through hibernate.ejb.event.pre-insert does not work",
+ eventListeners.getPreInsertEventListeners().length,
+ eventListeners.getPreUpdateEventListeners().length + 1);
+
+ em.close();
+ emf.close();
+ }
+
// This test does not make sense anymore, validator being autoregistered at the HAN level
// public void testListenersOverridingCfgXmlPar() throws Exception {
// EntityManagerFactory emf = Persistence.createEntityManagerFactory( "cfgxmlpar", new HashMap() );
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/EventOverridingTest.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/EventOverridingTest.java 2007-08-10 05:35:01 UTC (rev 12914)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/ejb3configuration/EventOverridingTest.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -36,7 +36,7 @@
public void testEventPerProperties() throws Exception {
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "manager1", new HashMap() );
EntityManager em = emf.createEntityManager();
- assertEquals( "Only validator should be present", 1,
+ assertEquals( "Only validator and explicit NoOp should be present", 2,
( (SessionImplementor) em.getDelegate() ).getListeners().getPreInsertEventListeners().length);
em.close();
emf.close();
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/FlushTest.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/FlushTest.java 2007-08-10 05:35:01 UTC (rev 12914)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/emops/FlushTest.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -107,7 +107,9 @@
List list = query.getResultList();
for (Object obj : list) {
if (obj instanceof Decorate) {
- founds.add((Decorate) obj);
+ Decorate decorate = (Decorate) obj;
+ founds.add( decorate );
+ decorate.getPet().getName(); //load
}
}
return founds;
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/LockTest.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/LockTest.java 2007-08-10 05:35:01 UTC (rev 12914)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/LockTest.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -55,11 +55,33 @@
em.remove( lock );
em.getTransaction().commit();
}
+ em.close();
}
+ public void testLockWriteOnUnversioned() throws Exception {
+ UnversionedLock lock = new UnversionedLock();
+ lock.setName( "second" );
+ EntityManager em = factory.createEntityManager();
+ em.getTransaction().begin();
+ em.persist( lock );
+ em.getTransaction().commit();
+
+ em.getTransaction().begin();
+ lock = em.getReference( UnversionedLock.class, lock.getId() );
+ em.lock( lock, LockModeType.READ );
+ em.getTransaction().commit();
+
+ em.getTransaction().begin();
+ lock = em.getReference( UnversionedLock.class, lock.getId() );
+ em.remove( lock );
+ em.getTransaction().commit();
+ em.close();
+ }
+
public Class[] getAnnotatedClasses() {
return new Class[]{
- Lock.class
+ Lock.class,
+ UnversionedLock.class
};
}
}
Added: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/UnversionedLock.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/UnversionedLock.java (rev 0)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/lock/UnversionedLock.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -0,0 +1,34 @@
+//$Id: $
+package org.hibernate.ejb.test.lock;
+
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Entity;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class UnversionedLock {
+ @Id
+ @GeneratedValue
+ private Integer id;
+ private String name;
+
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Modified: trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/transaction/FlushAndTransactionTest.java
===================================================================
--- trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/transaction/FlushAndTransactionTest.java 2007-08-10 05:35:01 UTC (rev 12914)
+++ trunk/HibernateExt/entitymanager/src/test/org/hibernate/ejb/test/transaction/FlushAndTransactionTest.java 2007-08-10 13:35:22 UTC (rev 12915)
@@ -202,6 +202,25 @@
em.close();
}
+ public void testTransactionAndContains() throws Exception {
+ EntityManager em = factory.createEntityManager();
+ em.getTransaction().begin();
+ Book book = new Book();
+ book.name = "Java for Dummies";
+ em.persist( book );
+ em.getTransaction().commit();
+ em.close();
+ em = factory.createEntityManager();
+ em.getTransaction().begin();
+ List result = em.createQuery("select book from Book book where book.name = :title").
+ setParameter( "title", book.name ).getResultList();
+ assertEquals( "EntityManager.commit() should trigger a flush()", 1, result.size() );
+ assertTrue( em.contains( result.get( 0 ) ) );
+ em.getTransaction().commit();
+ assertTrue( em.contains( result.get( 0 ) ) );
+ em.close();
+ }
+
public void testRollbackOnlyOnPersistenceException() throws Exception {
Book book = new Book();
book.name = "Stolen keys";
Modified: trunk/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/persistence.xml
===================================================================
--- trunk/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/persistence.xml 2007-08-10 05:35:01 UTC (rev 12914)
+++ trunk/HibernateExt/entitymanager/src/test-resources/explicitpar/META-INF/persistence.xml 2007-08-10 13:35:22 UTC (rev 12915)
@@ -34,7 +34,7 @@
value="read-write, RegionName"/>
<!-- event overriding -->
- <property name="hibernate.ejb.event.pre-insert" value=""/>
+ <property name="hibernate.ejb.event.pre-insert" value="org.hibernate.ejb.test.NoOpListener"/>
<!-- remove JACC and validator -->
<!-- alternatively to <class> and <property> declarations, you can use a regular hibernate.cfg.xml file -->
More information about the hibernate-commits
mailing list