package org.infinispan.lucene.locking; import java.io.IOException; import org.apache.lucene.store.LockFactory; import org.infinispan.Cache; import org.infinispan.commons.CacheException; import org.infinispan.lucene.impl.DirectoryBuilderImpl; import org.infinispan.test.TestingUtil; import org.infinispan.transaction.TransactionMode; import org.testng.annotations.Test; /** * Tests verifying that the instantiation of TransactionalLockFactory in case of NON_TRANSACTIONAL cache fails. * The cases with started & stopped caches are checked. * * @author Anna Manukyan */ @Test(groups = "functional", testName = "lucene.locking.TransactionalLockManagerExcFunctionalTest") public class TransactionalLockManagerExcFunctionalTest extends TransactionalLockManagerFunctionalTest { @Test(expectedExceptions = CacheException.class, expectedExceptionsMessageRegExp = "Failed looking up TransactionManager: the cache is not running") public void testLuceneIndexLockingWithStoppedCache() throws IOException { final String commonIndexName = "myIndex"; Cache cache1 = cache(0, "lucene"); cache(0, "lucene").stop(); cache(1, "lucene").stop(); TestingUtil.killCacheManagers(cacheManagers); LockFactory lockFactory = makeLockFactory(); lockFactory.obtainLock(new DirectoryBuilderImpl(cache1,cache1,cache1,commonIndexName).create(),"myLock"); } @Test(expectedExceptions = CacheException.class, expectedExceptionsMessageRegExp = "Failed looking up TransactionManager. Check if any transaction manager is associated with Infinispan cache: 'lucene'") public void testLuceneIndexLockingWithCache() throws IOException { final String commonIndexName = "myIndex"; Cache cache1 = cache(0, "lucene"); LockFactory lockFactory = makeLockFactory(); lockFactory.obtainLock(new DirectoryBuilderImpl(cache1,cache1,cache1,commonIndexName).create(),"myLock"); } @Test @Override public void testLuceneIndexLocking() throws IOException { //do nothing } @Override protected TransactionMode getTransactionsMode() { return TransactionMode.NON_TRANSACTIONAL; } }