use of uk.gov.gchq.gaffer.store.Store in project Gaffer by gchq.
the class CoreOperationChainOptimiserTest method shouldAddDeduplicateOperationForGetOperationsWithDuplicateFlag.
@Test
public void shouldAddDeduplicateOperationForGetOperationsWithDuplicateFlag() throws Exception {
// Given
final Store store = mock(Store.class);
final CoreOperationChainOptimiser optimiser = new CoreOperationChainOptimiser(store);
final GetIterableOperation getOperation = mock(GetIterableOperation.class);
final OperationChain<Integer> opChain = new OperationChain<>(getOperation);
given(getOperation.getResultLimit()).willReturn(null);
given(getOperation.isDeduplicate()).willReturn(true);
// When
final OperationChain<Integer> optimisedOpChain = optimiser.optimise(opChain);
// Then
assertEquals(2, optimisedOpChain.getOperations().size());
assertSame(getOperation, optimisedOpChain.getOperations().get(0));
assertTrue(optimisedOpChain.getOperations().get(1) instanceof Deduplicate);
}
use of uk.gov.gchq.gaffer.store.Store in project Gaffer by gchq.
the class CoreOperationChainOptimiserTest method shouldAddLimitOperationForGetOperationsWithLimit.
@Test
public void shouldAddLimitOperationForGetOperationsWithLimit() throws Exception {
// Given
final Store store = mock(Store.class);
final CoreOperationChainOptimiser optimiser = new CoreOperationChainOptimiser(store);
final GetIterableOperation getOperation = mock(GetIterableOperation.class);
final OperationChain<Integer> opChain = new OperationChain<>(getOperation);
final int resultLimit = 5;
given(getOperation.getResultLimit()).willReturn(resultLimit);
// When
final OperationChain<Integer> optimisedOpChain = optimiser.optimise(opChain);
// Then
assertEquals(2, optimisedOpChain.getOperations().size());
assertSame(getOperation, optimisedOpChain.getOperations().get(0));
assertTrue(optimisedOpChain.getOperations().get(1) instanceof Limit);
assertEquals(resultLimit, (int) ((Limit) optimisedOpChain.getOperations().get(1)).getResultLimit());
}
use of uk.gov.gchq.gaffer.store.Store in project Gaffer by gchq.
the class CoreOperationChainOptimiserTest method shouldAddLimitOperationBeforeDeduplicateOperationForPerformance.
@Test
public void shouldAddLimitOperationBeforeDeduplicateOperationForPerformance() throws Exception {
// Given
final Store store = mock(Store.class);
final CoreOperationChainOptimiser optimiser = new CoreOperationChainOptimiser(store);
final GetIterableOperation getOperation = mock(GetIterableOperation.class);
final OperationChain<Integer> opChain = new OperationChain<>(getOperation);
final int resultLimit = 5;
given(getOperation.getResultLimit()).willReturn(resultLimit);
given(getOperation.isDeduplicate()).willReturn(true);
// When
final OperationChain<Integer> optimisedOpChain = optimiser.optimise(opChain);
// Then
assertEquals(3, optimisedOpChain.getOperations().size());
assertSame(getOperation, optimisedOpChain.getOperations().get(0));
assertTrue(optimisedOpChain.getOperations().get(1) instanceof Limit);
assertEquals(resultLimit, (int) ((Limit) optimisedOpChain.getOperations().get(1)).getResultLimit());
assertTrue(optimisedOpChain.getOperations().get(2) instanceof Deduplicate);
}
use of uk.gov.gchq.gaffer.store.Store in project Gaffer by gchq.
the class ValidateHandlerTest method shouldValidatedElements.
@Test
public void shouldValidatedElements() throws OperationException {
// Given
final ValidateHandler handler = new ValidateHandler();
final Store store = mock(Store.class);
final Validate validate = mock(Validate.class);
final Element elm1 = mock(Element.class);
final CloseableIterable<Element> elements = new WrappedCloseableIterable<>(Collections.singletonList(elm1));
final Schema schema = mock(Schema.class);
final Context context = new Context();
given(validate.getElements()).willReturn(elements);
given(validate.isSkipInvalidElements()).willReturn(false);
given(store.getSchema()).willReturn(schema);
final String group = "group";
given(elm1.getGroup()).willReturn(group);
final SchemaElementDefinition elementDef = mock(SchemaElementDefinition.class);
final ElementFilter validator = mock(ElementFilter.class);
given(validator.filter(elm1)).willReturn(true);
given(elementDef.getValidator(true)).willReturn(validator);
given(schema.getElement(group)).willReturn(elementDef);
// When
final Iterable<Element> result = handler.doOperation(validate, context, store);
// Then
final Iterator<Element> itr = result.iterator();
final Element elm1Result = itr.next();
assertSame(elm1, elm1Result);
assertFalse(itr.hasNext());
}
use of uk.gov.gchq.gaffer.store.Store in project Gaffer by gchq.
the class ValidateHandlerTest method shouldReturnNullIfElementsAreNull.
@Test
public void shouldReturnNullIfElementsAreNull() throws OperationException {
// Given
final ValidateHandler handler = new ValidateHandler();
final Store store = mock(Store.class);
final Validate validate = mock(Validate.class);
given(validate.getElements()).willReturn(null);
final Context context = new Context();
// When
final Iterable<Element> result = handler.doOperation(validate, context, store);
// Then
assertNull(result);
}
Aggregations