[hibernate-commits] Hibernate SVN: r14964 - in entitymanager/trunk/src: test/org/hibernate/ejb/test and 1 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed Jul 23 06:24:01 EDT 2008
Author: hardy.ferentschik
Date: 2008-07-23 06:24:01 -0400 (Wed, 23 Jul 2008)
New Revision: 14964
Modified:
entitymanager/trunk/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java
entitymanager/trunk/src/test/org/hibernate/ejb/test/Cat.java
entitymanager/trunk/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java
Log:
EJB-288:
Updated the tests to assert the correct behaviour.
Modified: entitymanager/trunk/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java
===================================================================
--- entitymanager/trunk/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java 2008-07-22 10:24:20 UTC (rev 14963)
+++ entitymanager/trunk/src/java/org/hibernate/ejb/event/EJB3PostUpdateEventListener.java 2008-07-23 10:24:01 UTC (rev 14964)
@@ -20,6 +20,8 @@
import org.hibernate.event.PostUpdateEventListener;
/**
+ * Implementation of the post update listeners.
+ *
* @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
*/
@SuppressWarnings("serial")
@@ -42,12 +44,12 @@
public void onPostUpdate(PostUpdateEvent event) {
Object entity = event.getEntity();
- EventSource session = event.getSession();
- postUpdate(entity, session);
+ EventSource eventSource = event.getSession();
+ handlePostUpdate(entity, eventSource);
}
- private void postUpdate(Object entity, EventSource session) {
- EntityEntry entry = (EntityEntry) session.getPersistenceContext()
+ private void handlePostUpdate(Object entity, EventSource source) {
+ EntityEntry entry = (EntityEntry) source.getPersistenceContext()
.getEntityEntries().get(entity);
// mimic the preUpdate filter
if (Status.DELETED != entry.getStatus()) {
@@ -57,19 +59,19 @@
public void onPostRecreateCollection(PostCollectionRecreateEvent event) {
Object entity = event.getCollection().getOwner();
- EventSource session = event.getSession();
- postUpdate(entity, session);
+ EventSource eventSource = event.getSession();
+ handlePostUpdate(entity, eventSource);
}
public void onPostRemoveCollection(PostCollectionRemoveEvent event) {
Object entity = event.getCollection().getOwner();
- EventSource session = event.getSession();
- postUpdate(entity, session);
+ EventSource eventSource = event.getSession();
+ handlePostUpdate(entity, eventSource);
}
public void onPostUpdateCollection(PostCollectionUpdateEvent event) {
Object entity = event.getCollection().getOwner();
- EventSource session = event.getSession();
- postUpdate(entity, session);
+ EventSource eventSource = event.getSession();
+ handlePostUpdate(entity, eventSource);
}
}
Modified: entitymanager/trunk/src/test/org/hibernate/ejb/test/Cat.java
===================================================================
--- entitymanager/trunk/src/test/org/hibernate/ejb/test/Cat.java 2008-07-22 10:24:20 UTC (rev 14963)
+++ entitymanager/trunk/src/test/org/hibernate/ejb/test/Cat.java 2008-07-23 10:24:01 UTC (rev 14964)
@@ -8,6 +8,7 @@
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
+
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@ -34,8 +35,9 @@
public class Cat implements Serializable {
private static final Logger log = LoggerFactory.getLogger(Cat.class);
-
- private static final List ids = new ArrayList();
+
+ private static final List ids = new ArrayList(); // used for assertions
+ public static int postVersion = 0; // used for assertions
private Integer id;
private String name;
@@ -44,7 +46,6 @@
private long length;
private Date lastUpdate;
private int manualVersion = 0;
- private int postVersion = 0;
private List<Kitten> kittens;
@Id
@@ -100,18 +101,10 @@
this.lastUpdate = lastUpdate;
}
- public int getPostVersion() {
- return postVersion;
- }
-
- public void setPostVersion(int postVersion) {
- this.postVersion = postVersion;
- }
-
@PostUpdate
private void someLateUpdateWorking() {
log.debug("PostUpdate for: {}", this.toString());
- this.postVersion++;
+ postVersion++;
}
@PostLoad
@@ -175,7 +168,7 @@
+ "length = " + this.length + TAB
+ "lastUpdate = " + this.lastUpdate + TAB
+ "manualVersion = " + this.manualVersion + TAB
- + "postVersion = " + this.postVersion + TAB
+ + "postVersion = " + Cat.postVersion + TAB
+ "kittens = " + this.kittens + TAB
+ " )";
Modified: entitymanager/trunk/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java
===================================================================
--- entitymanager/trunk/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java 2008-07-22 10:24:20 UTC (rev 14963)
+++ entitymanager/trunk/src/test/org/hibernate/ejb/test/callbacks/CallbacksTest.java 2008-07-23 10:24:01 UTC (rev 14964)
@@ -76,8 +76,8 @@
em.persist( c );
em.getTransaction().commit();
em.close();
- List ids = c.getIdList();
- Object id = c.getIdList().get( ids.size() - 1 );
+ List ids = Cat.getIdList();
+ Object id = Cat.getIdList().get( ids.size() - 1 );
assertNotNull( id );
}
@@ -166,7 +166,7 @@
}
/**
- * Tests callback for collection changes.
+ * Tests callbacks for collection changes.
*
* @throws Exception in case the test fails.
* @see EJB-288
@@ -175,13 +175,13 @@
// create a cat
EntityManager em = factory.createEntityManager();
- Cat c = new Cat();
+ Cat cat = new Cat();
em.getTransaction().begin();
- c.setLength( 23 );
- c.setAge( 2 );
- c.setName( "Beetle" );
- c.setDateOfBirth( new Date() );
- em.persist( c );
+ cat.setLength( 23 );
+ cat.setAge( 2 );
+ cat.setName( "Beetle" );
+ cat.setDateOfBirth( new Date() );
+ em.persist( cat );
em.getTransaction().commit();
// assert it is persisted
@@ -189,39 +189,39 @@
Object id = Cat.getIdList().get( ids.size() - 1 );
assertNotNull( id );
- // add a kitten to the cat (Triggers PostCollectionRecreateEvent. No PostUpdateEvent!)
- int postVersion = c.getPostVersion();
+ // add a kitten to the cat - triggers PostCollectionRecreateEvent
+ int postVersion = Cat.postVersion;
em.getTransaction().begin();
Kitten kitty = new Kitten();
+ kitty.setName("kitty");
List kittens = new ArrayList<Kitten>();
kittens.add(kitty);
- c.setKittens(kittens);
+ cat.setKittens(kittens);
em.getTransaction().commit();
- assertEquals("Post version should have been incremented.", postVersion + 1, c.getPostVersion());
+ assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
- // modify Kitty (Triggers PostUpdateEvent for Beetle. Expected PostCollectionUpdateEvent.
- // You also get PostUpdateEvent for Kitty which is fine)
- postVersion = c.getPostVersion();
+ // add another kitten - triggers PostCollectionUpdateEvent.
+ postVersion = Cat.postVersion;
em.getTransaction().begin();
- kitty.setName("Kitty");
+ Kitten tom = new Kitten();
+ tom.setName("Tom");
+ cat.getKittens().add(tom);
em.getTransaction().commit();
- assertEquals("Post version should have been incremented.", postVersion + 1, c.getPostVersion());
+ assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
- // delete kitty (Triggers PostUpdateEvent and PostCollectionUpdateEvent for Beetle. Expected only PostCollectionUpdateEvent)
- postVersion = c.getPostVersion();
+ // delete a kitty - triggers PostCollectionUpdateEvent
+ postVersion = Cat.postVersion;
em.getTransaction().begin();
- c.getKittens().remove(kitty);
+ cat.getKittens().remove(tom);
em.getTransaction().commit();
- // counter gets incremented twice. Should be only one event!?
- assertEquals("Post version should have been incremented.", postVersion + 2, c.getPostVersion());
+ assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
- // delete and recreate kittens (Triggers PostUpdateEvent, PostCollectionRemoveEvent and PostCollectionRecreateEvent)
- postVersion = c.getPostVersion();
+ // delete and recreate kittens - triggers PostCollectionRemoveEvent and PostCollectionRecreateEvent)
+ postVersion = Cat.postVersion;
em.getTransaction().begin();
- c.setKittens(new ArrayList<Kitten>());
+ cat.setKittens(new ArrayList<Kitten>());
em.getTransaction().commit();
- // counter gets incremented twice. Should be only one event!?
- assertEquals("Post version should have been incremented.", postVersion + 3, c.getPostVersion());
+ assertEquals("Post version should have been incremented.", postVersion + 2, Cat.postVersion);
em.close();
}
More information about the hibernate-commits
mailing list