@Test public void shouldUnmapBuffersWithMultipleReferences() throws Exception { publication.incRef(); publication.close(); publication.close(); final InOrder inOrder = Mockito.inOrder(conductorLock, conductor); inOrder.verify(conductorLock).lock(); inOrder.verify(conductor).releasePublication(publication); inOrder.verify(conductorLock).unlock(); inOrder.verifyNoMoreInteractions(); }
@Test public void shouldEnsureThePublicationIsOpenBeforeReadingPosition() { publication.close(); assertThat(publication.position(), is(Publication.CLOSED)); final InOrder inOrder = Mockito.inOrder(conductorLock, conductor); inOrder.verify(conductorLock).lock(); inOrder.verify(conductor).releasePublication(publication); inOrder.verify(conductorLock).unlock(); }
@Test public void shouldNotUnmapBuffersBeforeLastRelease() throws Exception { publication.incRef(); publication.close(); verify(logBuffers, never()).close(); final InOrder inOrder = Mockito.inOrder(conductorLock, conductor); inOrder.verify(conductorLock).lock(); inOrder.verify(conductorLock).unlock(); inOrder.verifyNoMoreInteractions(); }
@Test public void shouldReleaseResourcesIdempotently() throws Exception { publication.close(); publication.close(); final InOrder inOrder = Mockito.inOrder(conductorLock, conductor); inOrder.verify(conductorLock).lock(); inOrder.verify(conductor).releasePublication(publication); inOrder.verify(conductorLock).unlock(); inOrder.verify(conductorLock).lock(); inOrder.verify(conductorLock).unlock(); inOrder.verifyNoMoreInteractions(); }
@Test public void shouldEnsureThePublicationIsOpenBeforeClaim() { publication.close(); final BufferClaim bufferClaim = new BufferClaim(); assertThat(publication.tryClaim(SEND_BUFFER_CAPACITY, bufferClaim), is(Publication.CLOSED)); }
@Test public void shouldEnsureThePublicationIsOpenBeforeOffer() { publication.close(); assertTrue(publication.isClosed()); assertThat(publication.offer(atomicSendBuffer), is(Publication.CLOSED)); }