[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