use of uk.gov.gchq.gaffer.operation.impl.add.AddElementsFromSocket in project Gaffer by gchq.
the class GafferAdderTest method shouldAddElementsToStore.
@Test
public void shouldAddElementsToStore() throws Exception {
// Given
final AddElementsFromSocket op = mock(AddElementsFromSocket.class);
final Store store = mock(Store.class);
given(store.getProperties()).willReturn(new StoreProperties());
given(store.getSchema()).willReturn(new Schema());
given(op.isValidate()).willReturn(true);
given(op.isSkipInvalidElements()).willReturn(false);
given(op.getOption(FlinkConstants.MAX_QUEUE_SIZE)).willReturn(MAX_QUEUE_SIZE_OPTION);
final Element element = mock(Element.class);
final GafferAdder adder = new GafferAdder(op, store);
// When
adder.add(element);
// Then
final ArgumentCaptor<Runnable> runnableCaptor = ArgumentCaptor.forClass(Runnable.class);
verify(store).runAsync(runnableCaptor.capture());
runnableCaptor.getValue().run();
ArgumentCaptor<AddElements> opCaptor = ArgumentCaptor.forClass(AddElements.class);
verify(store).execute(opCaptor.capture(), Mockito.any());
final ConsumableBlockingQueue<Element> expectedQueue = new ConsumableBlockingQueue<>(MAX_QUEUE_SIZE_VALUE);
expectedQueue.put(element);
verify(store).execute(Mockito.eq(new AddElements.Builder().input(expectedQueue).validate(true).skipInvalidElements(false).build()), Mockito.any());
}
Aggregations