[jbosscache-commits] JBoss Cache SVN: r7554 - core/trunk/src/test/java/org/jboss/cache/buddyreplication.

jbosscache-commits at lists.jboss.org jbosscache-commits at lists.jboss.org
Wed Jan 21 05:35:20 EST 2009


Author: mircea.markus
Date: 2009-01-21 05:35:20 -0500 (Wed, 21 Jan 2009)
New Revision: 7554

Modified:
   core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java
Log:
more strict replication controll

Modified: core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java
===================================================================
--- core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java	2009-01-20 22:04:27 UTC (rev 7553)
+++ core/trunk/src/test/java/org/jboss/cache/buddyreplication/Buddy3NodesNoPoolWithDataGravitationTest.java	2009-01-21 10:35:20 UTC (rev 7554)
@@ -2,24 +2,23 @@
 
 import org.jboss.cache.CacheSPI;
 import org.jboss.cache.Fqn;
-import org.jboss.cache.Cache;
-import org.jboss.cache.notifications.annotation.CacheListener;
+import org.jboss.cache.commands.remote.DataGravitationCleanupCommand;
+import org.jboss.cache.commands.write.PutKeyValueCommand;
 import org.jboss.cache.notifications.annotation.CacheBlocked;
+import org.jboss.cache.notifications.annotation.CacheListener;
 import org.jboss.cache.notifications.annotation.CacheUnblocked;
 import org.jboss.cache.notifications.event.Event;
-import org.jboss.cache.commands.remote.DataGravitationCleanupCommand;
-import org.jboss.cache.commands.write.PutKeyValueCommand;
-import org.jboss.cache.util.CachePrinter;
 import org.jboss.cache.util.TestingUtil;
 import org.jboss.cache.util.internals.replicationlisteners.ReplicationListener;
 import static org.testng.AssertJUnit.*;
-import org.testng.annotations.BeforeTest;
-import org.testng.annotations.Test;
-import org.testng.annotations.BeforeClass;
+import static org.jboss.cache.util.SingleBuddyGravitationHelper.*;
 import org.testng.annotations.AfterMethod;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
 
 import javax.transaction.TransactionManager;
 import java.util.List;
+import java.util.ArrayList;
 
 /**
  * @author Mircea.Markus at jboss.com
@@ -35,6 +34,7 @@
    ReplicationListener replicationListener0;
    ReplicationListener replicationListener1;
    ReplicationListener replicationListener2;
+   List<ReplicationListener> listeners;
 
    @BeforeClass
    public void createCaches() throws Exception
@@ -43,7 +43,10 @@
       replicationListener0 = ReplicationListener.getReplicationListener(caches.get(0));
       replicationListener1 = ReplicationListener.getReplicationListener(caches.get(1));
       replicationListener2 = ReplicationListener.getReplicationListener(caches.get(2));
-
+      listeners = new ArrayList<ReplicationListener>();
+      listeners.add(replicationListener0);
+      listeners.add(replicationListener1);
+      listeners.add(replicationListener2);
    }
 
    //this is needed here as tesng ignores the call from base class
@@ -73,13 +76,10 @@
       assertTrue("Value be true", caches.get(1).exists(backupFqn));
       assertFalse("Should be false", caches.get(2).exists(backupFqn));
 
-      replicationListener0.expect(DataGravitationCleanupCommand.class);
-      replicationListener1.expect(DataGravitationCleanupCommand.class);
-
+      inReplicationListeners(listeners).dataWillGravitateFrom(0).to(2);
       // according to data gravitation, a call to *any* cache should retrieve the data, and move the data to the new cache.
       assertEquals("Value should have gravitated", value, caches.get(2).get(fqn, key));
-      replicationListener0.waitForReplicationToOccur();
-      replicationListener1.waitForReplicationToOccur();
+      expectGravitation();
 
       // now lets test the eviction part of gravitation
       Fqn newBackupFqn = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn);
@@ -236,11 +236,9 @@
       assertNoLocks(caches);
 
       // gravitate to 2:
-      replicationListener0.expect(DataGravitationCleanupCommand.class);
-      replicationListener1.expect(DataGravitationCleanupCommand.class);
-      caches.get(2).getNode(fqn);  // expectWithTx entire subtree to gravitate.
-      replicationListener0.waitForReplicationToOccur();
-      replicationListener1.waitForReplicationToOccur();
+      inReplicationListeners(listeners).dataWillGravitateFrom(0).to(2);
+      caches.get(2).getNode(fqn);  // expect entire subtree to gravitate.
+      expectGravitation();
 
       Fqn newBackupFqn = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn);
       Fqn newBackupFqn2 = fqnTransformer.getBackupFqn(caches.get(2).getLocalAddress(), fqn2);
@@ -286,11 +284,11 @@
       assert second.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(first.getLocalAddress())), false) != null : "Should have backup node for second";
       assert second.peek(fqnTransformer.getBackupFqn(first.getLocalAddress(), fqn), false) != null : "Should have backup data";
 
-      replicationListener0.expect(DataGravitationCleanupCommand.class);
+      inReplicationListeners(listeners).dataWillGravitateFrom(0).to(1);
       // now do a gravitate call.
       assert second.get(fqn, key).equals(value) : "Data should have gravitated!";
       // gravitation cleanup calls are async.
-      replicationListener0.waitForReplicationToOccur();
+      expectGravitation();
 
       assert second.peek(fqn, false) != null : "Should have data";
       assert second.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(first.getLocalAddress())), false) != null : "Should have backup node for second";
@@ -328,12 +326,10 @@
       assert buddy.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(dataOwner.getLocalAddress())), false) != null : "Should have backup node for buddy";
       assert buddy.peek(fqnTransformer.getBackupFqn(dataOwner.getLocalAddress(), fqn), false) != null : "Should have backup data";
 
-      replicationListener0.expect(DataGravitationCleanupCommand.class);
-      replicationListener1.expect(DataGravitationCleanupCommand.class);
+      inReplicationListeners(listeners).dataWillGravitateFrom(0).to(2);
       // now do a gravitate call.
       assert thirdInstance.get(fqn, key).equals(value) : "Data should have gravitated!";
-      replicationListener0.waitForReplicationToOccur();
-      replicationListener1.waitForReplicationToOccur();
+      expectGravitation();
       
       assert thirdInstance.peek(fqn, false) != null : "Should have data";
       assert thirdInstance.peek(Fqn.fromRelativeElements(BuddyManager.BUDDY_BACKUP_SUBTREE_FQN, fqnTransformer.getGroupNameFromAddress(buddy.getLocalAddress())), false) != null : "Should have backup node for buddy";




More information about the jbosscache-commits mailing list