Пример #1
0
  @Test
  public void shouldNotUnmapBuffersBeforeLastRelease() throws Exception {
    publication.incRef();
    publication.close();

    verify(logBuffers, never()).close();
  }
Пример #2
0
  @Test
  public void shouldUnmapBuffersWithMultipleReferences() throws Exception {
    publication.incRef();
    publication.close();

    publication.close();
    logBuffersClosedOnce();
  }
Пример #3
0
  @Before
  public void setUp() {
    when(publicationLimit.getVolatile()).thenReturn(2L * SEND_BUFFER_CAPACITY);
    when(logBuffers.atomicBuffers()).thenReturn(buffers);
    when(logBuffers.termLength()).thenReturn(TERM_MIN_LENGTH);

    initialTermId(logMetaDataBuffer, TERM_ID_1);
    activeTermId(logMetaDataBuffer, TERM_ID_1);

    for (int i = 0; i < PARTITION_COUNT; i++) {
      termBuffers[i] = new UnsafeBuffer(ByteBuffer.allocateDirect(TERM_MIN_LENGTH));
      termMetaDataBuffers[i] = new UnsafeBuffer(ByteBuffer.allocateDirect(TERM_META_DATA_LENGTH));

      buffers[i] = termBuffers[i];
      buffers[i + PARTITION_COUNT] = termMetaDataBuffers[i];
    }
    buffers[LOG_META_DATA_SECTION_INDEX] = logMetaDataBuffer;

    publication =
        new Publication(
            conductor,
            CHANNEL,
            STREAM_ID_1,
            SESSION_ID_1,
            publicationLimit,
            logBuffers,
            CORRELATION_ID);

    publication.incRef();
  }
Пример #4
0
  @Test
  public void shouldUnmapBuffersWhenReleased() throws Exception {
    publication.close();

    logBuffersClosedOnce();
    releaseSelfOnce();
  }
Пример #5
0
  @Test
  public void shouldReleaseResourcesIdempotently() throws Exception {
    publication.close();
    publication.close();

    logBuffersClosedOnce();
    releaseSelfOnce();
  }
Пример #6
0
 @Test
 public void shouldEnsureThePublicationIsOpenBeforeClaim() {
   publication.close();
   final BufferClaim bufferClaim = new BufferClaim();
   assertThat(publication.tryClaim(SEND_BUFFER_CAPACITY, bufferClaim), is(Publication.CLOSED));
 }
Пример #7
0
 @Test
 public void shouldEnsureThePublicationIsOpenBeforeOffer() {
   publication.close();
   assertTrue(publication.isClosed());
   assertThat(publication.offer(atomicSendBuffer), is(Publication.CLOSED));
 }
Пример #8
0
 @Test
 public void shouldEnsureThePublicationIsOpenBeforeReadingPosition() {
   publication.close();
   assertThat(publication.position(), is(Publication.CLOSED));
 }
Пример #9
0
 @Test
 public void shouldReportMaxMessageLength() {
   assertThat(
       publication.maxMessageLength(),
       is(FrameDescriptor.computeMaxMessageLength(TERM_MIN_LENGTH)));
 }
Пример #10
0
 @Test
 public void shouldReportInitialPosition() {
   assertThat(publication.position(), is(0L));
 }
Пример #11
0
 @Test
 public void shouldReportThatPublicationHasBeenConnectedYet() {
   assertTrue(publication.hasBeenConnected());
 }
Пример #12
0
 @Test
 public void shouldReportThatPublicationHasNotBeenConnectedYet() {
   when(publicationLimit.getVolatile()).thenReturn(0L);
   assertFalse(publication.hasBeenConnected());
 }