//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldAcquireMultipleSharedLocksWhileHavingSomeExclusiveLocks() public virtual void ShouldAcquireMultipleSharedLocksWhileHavingSomeExclusiveLocks() { ClientA.acquireExclusive(LockTracer.NONE, NODE, 10, 100, 1000); ClientA.acquireShared(LockTracer.NONE, NODE, 100, 1000, 10000); assertFalse(ClientB.trySharedLock(NODE, 10)); assertFalse(ClientB.trySharedLock(NODE, 100)); assertFalse(ClientB.trySharedLock(NODE, 1000)); assertFalse(ClientB.tryExclusiveLock(NODE, 10000)); assertEquals(4, LockCount()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void releaseTryLocksOnClose() public virtual void ReleaseTryLocksOnClose() { assertTrue(ClientA.trySharedLock(ResourceTypes.Node, 1L)); assertTrue(ClientB.tryExclusiveLock(ResourceTypes.Node, 2L)); ClientA.close(); ClientB.close(); LockCountVisitor lockCountVisitor = new LockCountVisitor(); Locks.accept(lockCountVisitor); assertEquals(0, lockCountVisitor.LockCount); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void releaseMultipleAlreadyAcquiredSharedLocks() public virtual void ReleaseMultipleAlreadyAcquiredSharedLocks() { ClientA.acquireShared(LockTracer.NONE, NODE, 10, 100, 1000); ClientA.acquireShared(LockTracer.NONE, NODE, 100, 1000, 10000); ClientA.releaseShared(NODE, 100, 1000); assertEquals(4, LockCount()); assertFalse(ClientB.tryExclusiveLock(NODE, 100)); assertFalse(ClientB.tryExclusiveLock(NODE, 1000)); ClientA.releaseShared(NODE, 100, 1000); assertEquals(2, LockCount()); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void releaseMultipleExclusiveLocks() public virtual void ReleaseMultipleExclusiveLocks() { ClientA.acquireExclusive(LockTracer.NONE, NODE, 10, 100, 1000); assertFalse(ClientB.trySharedLock(NODE, 10)); assertFalse(ClientB.trySharedLock(NODE, 100)); assertFalse(ClientB.trySharedLock(NODE, 1000)); assertEquals(3, LockCount()); ClientA.releaseExclusive(NODE, 10, 100); assertEquals(1, LockCount()); assertTrue(ClientB.trySharedLock(NODE, 10)); assertTrue(ClientB.trySharedLock(NODE, 100)); assertFalse(ClientB.trySharedLock(NODE, 1000)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void releaseExclusiveLocksAcquiredSeparately() public virtual void ReleaseExclusiveLocksAcquiredSeparately() { ClientA.acquireExclusive(LockTracer.NONE, NODE, 1); ClientA.acquireExclusive(LockTracer.NONE, NODE, 2); ClientA.acquireExclusive(LockTracer.NONE, NODE, 3); assertEquals(3, LockCount()); assertFalse(ClientB.trySharedLock(NODE, 1)); assertFalse(ClientB.trySharedLock(NODE, 2)); assertFalse(ClientB.trySharedLock(NODE, 3)); ClientA.releaseExclusive(NODE, 1, 2, 3); assertEquals(0, LockCount()); assertTrue(ClientB.trySharedLock(NODE, 1)); assertTrue(ClientB.trySharedLock(NODE, 2)); assertTrue(ClientB.trySharedLock(NODE, 3)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void mustReleaseReadLockWaitersOnStop() public virtual void MustReleaseReadLockWaitersOnStop() { // Given ClientA.acquireExclusive(_tracer, NODE, 1L); ClientB.acquireExclusive(_tracer, NODE, 2L); AcquireShared(ClientB, _tracer, NODE, 1L).callAndAssertWaiting(); // When ClientB.stop(); ClientA.stop(); // All locks clients should be stopped at this point, and all all locks should be released because none of the // clients entered the prepare phase LockCountVisitor lockCountVisitor = new LockCountVisitor(); Locks.accept(lockCountVisitor); assertEquals(0, lockCountVisitor.LockCount); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void closeShouldWaitAllOperationToFinish() public virtual void CloseShouldWaitAllOperationToFinish() { // given ClientA.acquireShared(LockTracer.NONE, NODE, 1L); ClientA.acquireShared(LockTracer.NONE, NODE, 3L); ClientB.acquireShared(LockTracer.NONE, NODE, 1L); AcquireShared(ClientC, LockTracer.NONE, NODE, 2L); AcquireExclusive(ClientB, LockTracer.NONE, NODE, 1L).callAndAssertWaiting(); AcquireExclusive(ClientC, LockTracer.NONE, NODE, 1L).callAndAssertWaiting(); // when ClientB.close(); ClientC.close(); ClientA.close(); // all locks should be closed at this point regardless of // reader/writer waiter in any threads // those should be gracefully finish and client should be closed LockCountVisitor lockCountVisitor = new LockCountVisitor(); Locks.accept(lockCountVisitor); assertEquals(0, lockCountVisitor.LockCount); }