@Override List<ActiveLock> waitingOnLocks() { List<ActiveLock> locks = new ArrayList<>(); switch ( mode ) { case ActiveLock.EXCLUSIVE_MODE: for ( long resourceId : resourceIds ) { locks.add( ActiveLock.exclusiveLock( resourceType, resourceId ) ); } break; case ActiveLock.SHARED_MODE: for ( long resourceId : resourceIds ) { locks.add( ActiveLock.sharedLock( resourceType, resourceId ) ); } break; default: throw new IllegalArgumentException( "Unsupported type of lock mode: " + mode ); } return locks; } }
@Test public void shouldListLocksHeldByTheCurrentClient() { // given clientA.acquireExclusive( LockTracer.NONE, NODE, 1, 2, 3 ); clientA.acquireShared( LockTracer.NONE, NODE, 3, 4, 5 ); // when Stream<? extends ActiveLock> locks = clientA.activeLocks(); // then assertEquals( new HashSet<>( asList( exclusiveLock( NODE, 1 ), exclusiveLock( NODE, 2 ), exclusiveLock( NODE, 3 ), sharedLock( NODE, 3 ), sharedLock( NODE, 4 ), sharedLock( NODE, 5 ) ) ), locks.collect( toSet() ) ); }
@Override List<ActiveLock> waitingOnLocks() { List<ActiveLock> locks = new ArrayList<>(); switch ( mode ) { case ActiveLock.EXCLUSIVE_MODE: for ( long resourceId : resourceIds ) { locks.add( ActiveLock.exclusiveLock( resourceType, resourceId ) ); } break; case ActiveLock.SHARED_MODE: for ( long resourceId : resourceIds ) { locks.add( ActiveLock.sharedLock( resourceType, resourceId ) ); } break; default: throw new IllegalArgumentException( "Unsupported type of lock mode: " + mode ); } return locks; } }