Testing Atomic Sequence Operations in LMAX-Disruptor
This test suite validates the core functionality of the Sequence class in the LMAX Disruptor library. It focuses on atomic operations and sequence value management, which are critical for the concurrent processing capabilities of the Disruptor pattern.
Test Coverage Overview
Implementation Analysis
Technical Details
Best Practices Demonstrated
lmax-exchange/disruptor
src/test/java/com/lmax/disruptor/SequenceTest.java
package com.lmax.disruptor;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class SequenceTest
{
@Test
void shouldReturnChangedValueAfterAddAndGet()
{
final Sequence sequence = new Sequence(0);
assertEquals(10, sequence.addAndGet(10));
assertEquals(10, sequence.get());
}
@Test
void shouldReturnIncrementedValueAfterIncrementAndGet()
{
final Sequence sequence = new Sequence(0);
assertEquals(1, sequence.incrementAndGet());
assertEquals(1, sequence.get());
}
@Test
void shouldReturnPreviousValueAfterGetAndAdd()
{
final Sequence sequence = new Sequence(0);
assertEquals(0, sequence.getAndAdd(1));
assertEquals(1, sequence.get());
}
}