[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