use of uk.gov.gchq.gaffer.store.schema.Schema in project Gaffer by gchq.
the class AggregatorIterator method validateOptions.
@Override
public boolean validateOptions(final Map<String, String> options) {
if (!super.validateOptions(options)) {
return false;
}
if (!options.containsKey(AccumuloStoreConstants.ACCUMULO_ELEMENT_CONVERTER_CLASS)) {
throw new IllegalArgumentException("Must specify the " + AccumuloStoreConstants.ACCUMULO_ELEMENT_CONVERTER_CLASS);
}
if (!options.containsKey(AccumuloStoreConstants.SCHEMA)) {
throw new IllegalArgumentException("Must specify the " + AccumuloStoreConstants.SCHEMA);
}
try {
schema = Schema.fromJson(options.get(AccumuloStoreConstants.SCHEMA).getBytes(CommonConstants.UTF_8));
} catch (final UnsupportedEncodingException e) {
throw new SchemaException("Unable to deserialise the schema from json", e);
}
try {
final Class<?> elementConverterClass = Class.forName(options.get(AccumuloStoreConstants.ACCUMULO_ELEMENT_CONVERTER_CLASS));
elementConverter = (AccumuloElementConverter) elementConverterClass.getConstructor(Schema.class).newInstance(schema);
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
throw new AggregationException("Failed to load element converter from class name provided : " + options.get(AccumuloStoreConstants.ACCUMULO_ELEMENT_CONVERTER_CLASS), e);
}
return true;
}
use of uk.gov.gchq.gaffer.store.schema.Schema in project Gaffer by gchq.
the class AbstractAccumuloElementConverterTest method setUp.
@Before
public void setUp() throws SchemaException, IOException {
final Schema schema = Schema.fromJson(StreamUtil.schemas(getClass()));
converter = createConverter(schema);
}
use of uk.gov.gchq.gaffer.store.schema.Schema in project Gaffer by gchq.
the class StoreTest method shouldHandleNullOperationSupportRequest.
@Test
public void shouldHandleNullOperationSupportRequest() throws Exception {
// Given
final Schema schema = createSchemaMock();
final StoreProperties properties = mock(StoreProperties.class);
final Validatable<Integer> validatable = mock(Validatable.class);
final Map<String, String> options = mock(HashMap.class);
final StoreImpl store = new StoreImpl();
given(validatable.isValidate()).willReturn(true);
given(validatable.getOptions()).willReturn(options);
store.initialise(schema, properties);
// When
final boolean supported = store.isSupported(null);
// Then
assertFalse(supported);
}
use of uk.gov.gchq.gaffer.store.schema.Schema in project Gaffer by gchq.
the class StoreTest method shouldThrowExceptionIfOperationViewIsInvalid.
@Test
public void shouldThrowExceptionIfOperationViewIsInvalid() throws OperationException, StoreException {
// Given
// Given
final Schema schema = createSchemaMock();
final StoreProperties properties = mock(StoreProperties.class);
final AddElements addElements = new AddElements();
final View view = mock(View.class);
final ViewValidator viewValidator = mock(ViewValidator.class);
final StoreImpl store = new StoreImpl(viewValidator);
addElements.setView(view);
given(schema.validate()).willReturn(true);
given(viewValidator.validate(view, schema, true)).willReturn(false);
store.initialise(schema, properties);
// When / Then
try {
store.execute(addElements, user);
fail("Exception expected");
} catch (final SchemaException e) {
verify(viewValidator).validate(view, schema, true);
assertTrue(e.getMessage().contains("View"));
}
}
use of uk.gov.gchq.gaffer.store.schema.Schema in project Gaffer by gchq.
the class StoreTest method shouldCallDoUnhandledOperationWhenDoOperationWithUnknownOperationClass.
@Test
public void shouldCallDoUnhandledOperationWhenDoOperationWithUnknownOperationClass() throws Exception {
// Given
final Schema schema = createSchemaMock();
final StoreProperties properties = mock(StoreProperties.class);
final Operation<String, String> operation = mock(Operation.class);
final StoreImpl store = new StoreImpl();
store.initialise(schema, properties);
// When
store.execute(operation, user);
// Then
assertEquals(1, store.getDoUnhandledOperationCalls().size());
assertSame(operation, store.getDoUnhandledOperationCalls().get(0));
}
Aggregations