private void assertProcessor(WorkQueueProcessor<Integer> processor,
boolean shared,
@Nullable String name,
@Nullable Integer bufferSize,
@Nullable WaitStrategy waitStrategy,
@Nullable Boolean autoCancel,
@Nullable ExecutorService executor,
@Nullable ExecutorService requestTaskExecutor) {
String expectedName = name != null ? name : WorkQueueProcessor.class.getSimpleName();
int expectedBufferSize = bufferSize != null ? bufferSize : Queues.SMALL_BUFFER_SIZE;
boolean expectedAutoCancel = autoCancel != null ? autoCancel : true;
WaitStrategy expectedWaitStrategy = waitStrategy != null ? waitStrategy : WaitStrategy.liteBlocking();
Class<?> sequencerClass = shared ? MultiProducerRingBuffer.class : SingleProducerSequencer.class;
assertEquals(expectedName, processor.name);
assertEquals(expectedBufferSize, processor.getBufferSize());
assertEquals(expectedAutoCancel, processor.autoCancel);
assertEquals(expectedWaitStrategy.getClass(), processor.ringBuffer.getSequencer().waitStrategy.getClass());
assertEquals(sequencerClass, processor.ringBuffer.getSequencer().getClass());
if (executor != null)
assertEquals(executor, processor.executor);
if (requestTaskExecutor != null)
assertEquals(requestTaskExecutor, processor.requestTaskExecutor);
}