public DataCarrier setPartitioner(IDataPartitioner<T> dataPartitioner) {
        this.channels.setPartitioner(dataPartitioner);
        return this;
    }
@Test
    public void testCreateDataCarrier() {
        DataCarrier<SampleData> carrier = new DataCarrier<>(5, 100, BufferStrategy.IF_POSSIBLE);

        Channels<SampleData> channels = Whitebox.getInternalState(carrier, "channels");
        assertEquals(5, channels.getChannelSize());

        QueueBuffer<SampleData> buffer = channels.getBuffer(0);
        assertEquals(100, buffer.getBufferSize());

        assertEquals(Whitebox.getInternalState(buffer, "strategy"), BufferStrategy.IF_POSSIBLE);
        assertEquals(Whitebox.getInternalState(buffer, "strategy"), BufferStrategy.IF_POSSIBLE);

        assertEquals(Whitebox.getInternalState(channels, "dataPartitioner").getClass(), SimpleRollingPartitioner.class);
        carrier.setPartitioner(new ProducerThreadPartitioner<>());
        assertEquals(Whitebox.getInternalState(channels, "dataPartitioner").getClass(), ProducerThreadPartitioner.class);
    }