コード例 #1
0
  /** Basic {@link ConcurrentIdBasedLockManager} test. */
  @Test
  public void basicConcurrentLockManagerTest() {
    IdBasedLockManager<String> lockManager = new ConcurrentIdBasedLockManager<>();
    Assert.assertNotNull(lockManager.getLocksIds());
    Assert.assertEquals(0, lockManager.getLocksIds().size());

    IdBasedLock<String> lock = lockManager.obtainLock(LOCK_ID);
    Assert.assertNotNull(lock);
    Assert.assertNotNull(lockManager.getLocksIds());
    Assert.assertEquals(1, lockManager.getLocksIds().size());
    Assert.assertNotNull(lockManager.getLocksIds().get(0));
    Assert.assertEquals(LOCK_ID, lockManager.getLocksIds().get(0));

    lock.lock();
    try {
      Assert.assertEquals(LOCK_ID, lock.getId());
      Assert.assertEquals(1, lock.getReferencesCount());
      Assert.assertNotNull(lock.toString());
    } finally {
      lock.unlock();
    }

    Assert.assertNotNull(lockManager.getLocksIds());
    Assert.assertEquals(0, lockManager.getLocksIds().size());
  }