Java Mailing List Archive

http://www.gg3721.com/

Home » Hibernate Commits List »

[hibernate-commits] Hibernate SVN: r14964 - in
 entitymanager/trunk/src: test/org/hibernate/ejb/test and 1
 other directories.

hibernate-commits

2008-07-23


Author LoginPost Reply
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)
@@(protected) @@
import org.hibernate.event.PostUpdateEventListener;

/**
+ * Implementation of the post update listeners.
+ *
* @author <a href="mailto:kabir.khan@(protected)>
*/
@SuppressWarnings("serial")
@@(protected) @@

 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()) {
@@(protected) @@

 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)
@@(protected) @@
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
+
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
@@(protected) @@
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;
@@(protected) @@
 private long length;
 private Date lastUpdate;
 private int manualVersion = 0;
-  private int postVersion = 0;
 private List<Kitten> kittens;

 @Id
@@(protected) @@
   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
@@(protected) @@
      + "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)
@@(protected) @@
   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 );
 }

@@(protected) @@
 }
 
 /**
-   * Tests callback for collection changes.
+   * Tests callbacks for collection changes.
  *
  * @throws Exception in case the test fails.
  * @see EJB-288
@@(protected) @@
   
   // 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
@@(protected) @@
   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();
 }  

_______________________________________________
hibernate-commits mailing list
hibernate-commits@(protected)
https://lists.jboss.org/mailman/listinfo/hibernate-commits
©2008 gg3721.com - Jax Systems, LLC, U.S.A.