Exemple #1
0
//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);
        }
Exemple #3
0
//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());
        }
Exemple #4
0
//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));
        }
Exemple #5
0
//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));
        }
Exemple #6
0
//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);
        }