[exo-jcr-commits] exo-jcr SVN: r750 - jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Nov 18 08:59:56 EST 2009


Author: nzamosenchuk
Date: 2009-11-18 08:59:56 -0500 (Wed, 18 Nov 2009)
New Revision: 750

Modified:
   jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java
Log:
EXOJCR-242: added locking tests for JBossCacheStorageConnection.

Modified: jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java
===================================================================
--- jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java	2009-11-18 12:08:01 UTC (rev 749)
+++ jcr/branches/1.12.0-JBC/component/core/src/test/java/org/exoplatform/services/jcr/impl/storage/jbosscache/JBossCacheStorageConnectionTest.java	2009-11-18 13:59:56 UTC (rev 750)
@@ -27,6 +27,7 @@
 import org.exoplatform.services.jcr.datamodel.PropertyData;
 import org.exoplatform.services.jcr.datamodel.QPath;
 import org.exoplatform.services.jcr.impl.Constants;
+import org.exoplatform.services.jcr.impl.core.lock.LockData;
 import org.exoplatform.services.jcr.impl.dataflow.TransientNodeData;
 import org.exoplatform.services.jcr.impl.dataflow.TransientPropertyData;
 import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
@@ -40,6 +41,8 @@
 import java.io.UnsupportedEncodingException;
 import java.util.List;
 
+import javax.jcr.lock.LockException;
+
 /**
  * Created by The eXo Platform SAS.
  * 
@@ -773,4 +776,73 @@
 
    }
 
+   public void testAddLock() throws Exception
+   {
+      // ordinary add lock
+      LockData lockData = new LockData("testAddLock", "token's hash", true, true, "owner", 1000);
+      conn.addLockData(lockData);
+      assertEquals(lockData.getTokenHash(), conn.getLockData("testAddLock").getTokenHash());
+   }
+
+   public void testAddLockTwice() throws Exception
+   {
+      // ordinary add lock
+      {
+         LockData lockData = new LockData("testAddLockTwice", "token's hash", true, true, "owner", 1000);
+         conn.addLockData(lockData);
+         assertEquals(lockData.getTokenHash(), conn.getLockData("testAddLockTwice").getTokenHash());
+      }
+      // try to lock once more
+      try
+      {
+         // add lock to the same node twice
+         LockData lockData = new LockData("testAddLockTwice", "other token's hash", true, true, "owner", 1000);
+         conn.addLockData(lockData);
+         fail("exception expected, because can't lock node twice");
+      }
+      catch (LockException e)
+      {
+      }
+   }
+
+   public void testRefreshLock() throws Exception
+   {
+      // ordinary add lock
+      {
+         LockData lockData = new LockData("testRefreshLock", "token's hash", true, true, "owner", 1000);
+         conn.addLockData(lockData);
+         assertEquals(lockData.getTokenHash(), conn.getLockData("testRefreshLock").getTokenHash());
+      }
+      // try to refresh lock (updates creation time to extend lifetime)
+      // refresh is performed by writing new lock data (only difference is changed creation time)
+      {
+         LockData lockData = new LockData("testRefreshLock", "token's hash", true, true, "owner", 1000);
+         conn.addLockData(lockData);
+         assertEquals(lockData.getTokenHash(), conn.getLockData("testRefreshLock").getTokenHash());
+      }
+   }
+
+   public void testGetLocks() throws Exception
+   {
+      // clean up any existing
+      List<LockData> locks = conn.getLocksData();
+      for (LockData lock : locks)
+      {
+         conn.removeLockData(lock.getNodeIdentifier());
+      }
+      // check empty
+      locks = conn.getLocksData();
+      assertEquals(0, locks.size());
+      // fill
+      int count = 3;
+      for (int i = 0; i < count; i++)
+      {
+         LockData lockData = new LockData("testGetLocks" + i, "token's hash " + i, true, true, "owner", 1000);
+         conn.addLockData(lockData);
+      }
+      // assert
+      locks = conn.getLocksData();
+      assertEquals(count, locks.size());
+   }
+
 }



More information about the exo-jcr-commits mailing list