Search in sources :

Example 6 with CallMethod

use of uk.gov.gchq.koryphe.impl.function.CallMethod in project Gaffer by gchq.

the class FederatedAccessAuthTest method shouldSerialiseAndDeserialiseAccessPredicatesToJson.

@Test
public void shouldSerialiseAndDeserialiseAccessPredicatesToJson() throws SerialisationException {
    // Given
    final FederatedAccess federatedAccess = new FederatedAccess.Builder().addingUserId(AUTH_USER_ID).isPublic(false).readAccessPredicate(new AccessPredicate(new AdaptedPredicate(new CallMethod("getDataAuths"), new CollectionContains(ALL_USERS)))).writeAccessPredicate(new AccessPredicate(new AdaptedPredicate(new CallMethod("getDataAuths"), new CollectionContains(AUTH_1)))).build();
    // When
    final String serialised = new String(JSONSerialiser.serialise(federatedAccess));
    // Then
    final String expected = "{" + "   \"addingUserId\": \"authUser\"," + "   \"disabledByDefault\": false," + "   \"public\": false," + "   \"readAccessPredicate\": {" + "       \"class\": \"uk.gov.gchq.gaffer.access.predicate.AccessPredicate\"," + "       \"userPredicate\": {" + "           \"class\": \"uk.gov.gchq.koryphe.predicate.AdaptedPredicate\"," + "           \"inputAdapter\": {" + "               \"class\": \"uk.gov.gchq.koryphe.impl.function.CallMethod\"," + "               \"method\": \"getDataAuths\"" + "           }," + "           \"predicate\": {" + "               \"class\": \"uk.gov.gchq.koryphe.impl.predicate.CollectionContains\"," + "               \"value\": \"allUsers\"" + "           }" + "       }" + "   }," + "   \"writeAccessPredicate\": {" + "       \"class\": \"uk.gov.gchq.gaffer.access.predicate.AccessPredicate\"," + "       \"userPredicate\": {" + "           \"class\": \"uk.gov.gchq.koryphe.predicate.AdaptedPredicate\"," + "           \"inputAdapter\": {" + "               \"class\": \"uk.gov.gchq.koryphe.impl.function.CallMethod\"," + "               \"method\": \"getDataAuths\"" + "           }," + "           \"predicate\": {" + "               \"class\": \"uk.gov.gchq.koryphe.impl.predicate.CollectionContains\"," + "               \"value\": \"auth1\"" + "           }" + "       }" + "   }" + "}";
    JsonAssert.assertEquals(expected, serialised);
    final FederatedAccess deserialised = JSONSerialiser.deserialise(serialised, FederatedAccess.class);
    assertEquals(federatedAccess, deserialised);
}
Also used : CollectionContains(uk.gov.gchq.koryphe.impl.predicate.CollectionContains) AdaptedPredicate(uk.gov.gchq.koryphe.predicate.AdaptedPredicate) FederatedGraphWriteAccessPredicate(uk.gov.gchq.gaffer.federatedstore.access.predicate.FederatedGraphWriteAccessPredicate) AccessPredicate(uk.gov.gchq.gaffer.access.predicate.AccessPredicate) FederatedGraphReadAccessPredicate(uk.gov.gchq.gaffer.federatedstore.access.predicate.FederatedGraphReadAccessPredicate) CallMethod(uk.gov.gchq.koryphe.impl.function.CallMethod) Test(org.junit.jupiter.api.Test)

Example 7 with CallMethod

use of uk.gov.gchq.koryphe.impl.function.CallMethod in project Gaffer by gchq.

the class FederatedAddGraphWithHooksHandlerTest method shouldAddGraphWithCustomReadAccessPredicate.

@Test
public void shouldAddGraphWithCustomReadAccessPredicate() throws Exception {
    store.initialise(FEDERATEDSTORE_GRAPH_ID, null, federatedStoreProperties);
    final Schema expectedSchema = new Schema.Builder().build();
    assertEquals(0, store.getGraphs(testUser, null, ignore).size());
    final AccessPredicate allowBlankUserAndTestUserReadAccess = new AccessPredicate(new AdaptedPredicate(new CallMethod("getUserId"), new Or<>(new IsEqual(testUser.getUserId()), new IsEqual(blankUser.getUserId()))));
    new FederatedAddGraphWithHooksHandler().doOperation(new AddGraphWithHooks.Builder().graphId(EXPECTED_GRAPH_ID).schema(expectedSchema).storeProperties(PROPERTIES).readAccessPredicate(allowBlankUserAndTestUserReadAccess).build(), new Context(testUser), store);
    assertEquals(1, store.getGraphs(blankUser, null, ignore).size());
    assertEquals(1, store.getGraphs(testUser, null, ignore).size());
}
Also used : Context(uk.gov.gchq.gaffer.store.Context) Or(uk.gov.gchq.koryphe.impl.predicate.Or) Schema(uk.gov.gchq.gaffer.store.schema.Schema) AdaptedPredicate(uk.gov.gchq.koryphe.predicate.AdaptedPredicate) AccessPredicate(uk.gov.gchq.gaffer.access.predicate.AccessPredicate) CallMethod(uk.gov.gchq.koryphe.impl.function.CallMethod) IsEqual(uk.gov.gchq.koryphe.impl.predicate.IsEqual) Test(org.junit.jupiter.api.Test)

Aggregations

CallMethod (uk.gov.gchq.koryphe.impl.function.CallMethod)7 Test (org.junit.jupiter.api.Test)6 AccessPredicate (uk.gov.gchq.gaffer.access.predicate.AccessPredicate)4 AdaptedPredicate (uk.gov.gchq.koryphe.predicate.AdaptedPredicate)4 ToInteger (uk.gov.gchq.koryphe.impl.function.ToInteger)3 ToLong (uk.gov.gchq.koryphe.impl.function.ToLong)3 IsEqual (uk.gov.gchq.koryphe.impl.predicate.IsEqual)3 Context (uk.gov.gchq.gaffer.store.Context)2 Schema (uk.gov.gchq.gaffer.store.schema.Schema)2 FunctionComposite (uk.gov.gchq.koryphe.function.FunctionComposite)2 DivideBy (uk.gov.gchq.koryphe.impl.function.DivideBy)2 FirstItem (uk.gov.gchq.koryphe.impl.function.FirstItem)2 CollectionContains (uk.gov.gchq.koryphe.impl.predicate.CollectionContains)2 Or (uk.gov.gchq.koryphe.impl.predicate.Or)2 InputStream (java.io.InputStream)1 InputStreamReader (java.io.InputStreamReader)1 List (java.util.List)1 Map (java.util.Map)1 LineIterator (org.apache.commons.io.LineIterator)1 Test (org.junit.Test)1