@Test
public void shouldStoreRawData()
{
final int typeIdOne = 333;
final long keyOne = 777L;
final MutableDirectBuffer keyOneBuffer = new UnsafeBuffer(ByteBuffer.allocateDirect(8));
keyOneBuffer.putLong(0, keyOne);
final DirectBuffer labelOneBuffer = new UnsafeBuffer("Test Label One".getBytes(US_ASCII));
final int typeIdTwo = 222;
final long keyTwo = 444;
final MutableDirectBuffer keyTwoBuffer = new UnsafeBuffer(ByteBuffer.allocateDirect(8));
keyTwoBuffer.putLong(0, keyTwo);
final DirectBuffer labelTwoBuffer = new UnsafeBuffer("Test Label Two".getBytes(US_ASCII));
final int counterIdOne = manager.allocate(
typeIdOne, keyOneBuffer, 0, keyOneBuffer.capacity(), labelOneBuffer, 0, labelOneBuffer.capacity());
final int counterIdTwo = manager.allocate(
typeIdTwo, keyTwoBuffer, 0, keyTwoBuffer.capacity(), labelTwoBuffer, 0, labelTwoBuffer.capacity());
manager.forEach(metaData);
final ArgumentCaptor<DirectBuffer> argCaptorOne = ArgumentCaptor.forClass(DirectBuffer.class);
final ArgumentCaptor<DirectBuffer> argCaptorTwo = ArgumentCaptor.forClass(DirectBuffer.class);
final InOrder inOrder = Mockito.inOrder(metaData);
inOrder.verify(metaData).accept(eq(counterIdOne), eq(typeIdOne), argCaptorOne.capture(), eq("Test Label One"));
inOrder.verify(metaData).accept(eq(counterIdTwo), eq(typeIdTwo), argCaptorTwo.capture(), eq("Test Label Two"));
inOrder.verifyNoMoreInteractions();
final DirectBuffer keyOneBufferCapture = argCaptorOne.getValue();
assertThat(keyOneBufferCapture.getLong(0), is(keyOne));
final DirectBuffer keyTwoBufferCapture = argCaptorTwo.getValue();
assertThat(keyTwoBufferCapture.getLong(0), is(keyTwo));
}