use of uk.gov.gchq.koryphe.impl.function.Identity in project Gaffer by gchq.
the class ViewTest method shouldAddGlobalElementTransformToEntityGroup.
@Test
public void shouldAddGlobalElementTransformToEntityGroup() {
// Given
final ElementTransformer elementTransformer = new ElementTransformer.Builder().select(TestPropertyNames.PROP_3).execute(new Identity()).project(TestPropertyNames.PROP_1).build();
final View view = new View.Builder().globalElements(new GlobalViewElementDefinition.Builder().groups(TestGroups.ENTITY).transformer(elementTransformer).build()).entity(TestGroups.ENTITY, new ViewElementDefinition.Builder().excludeProperties(TestPropertyNames.PROP_3).build()).build();
// When
view.expandGlobalDefinitions();
// Then
assertEquals(elementTransformer.getComponents().get(0).getFunction().getClass().getSimpleName(), view.getEntity(TestGroups.ENTITY).getTransformer().getComponents().get(0).getFunction().getClass().getSimpleName());
assertEquals(Sets.newHashSet(TestPropertyNames.PROP_3), Sets.newHashSet(view.getEntity(TestGroups.ENTITY).getExcludeProperties()));
}
use of uk.gov.gchq.koryphe.impl.function.Identity in project Gaffer by gchq.
the class JoinIT method shouldRightSideFullJoinUsingKeyFunctionMatch.
@Test
public void shouldRightSideFullJoinUsingKeyFunctionMatch() throws OperationException {
// Given
final Map map = new Map.Builder<>().input(Lists.newArrayList(2L, 1L, 2L, 3L)).first(new Identity()).build();
final ArrayList<Entity> input = Lists.newArrayList(getJoinEntity(TestGroups.ENTITY, 1), getJoinEntity(TestGroups.ENTITY_2, 2), getJoinEntity(TestGroups.ENTITY_2, 2), getJoinEntity(TestGroups.ENTITY_5, 5));
final Join<Object> leftJoin = new Join.Builder<>().flatten(false).matchKey(MatchKey.RIGHT).joinType(JoinType.FULL).operation(map).matchMethod(new KeyFunctionMatch(new ToLong(), new ExtractProperty("count"))).input(input).build();
// When
final Iterable<? extends MapTuple> results = graph.execute(leftJoin, user);
final List<java.util.Map> loadedResults = new ArrayList<>();
results.forEach(e -> loadedResults.add(e.getValues()));
// Then
assertThat(loadedResults).hasSize(4);
assertThat(loadedResults.get(0)).containsEntry(MatchKey.LEFT.name(), Lists.newArrayList(getJoinEntity(TestGroups.ENTITY_2, 2), getJoinEntity(TestGroups.ENTITY_2, 2))).containsEntry(MatchKey.RIGHT.name(), 2L);
assertThat(loadedResults.get(1)).containsEntry(MatchKey.LEFT.name(), Lists.newArrayList(getJoinEntity(TestGroups.ENTITY, 1))).containsEntry(MatchKey.RIGHT.name(), 1L);
assertThat(loadedResults.get(2)).containsEntry(MatchKey.LEFT.name(), Lists.newArrayList(getJoinEntity(TestGroups.ENTITY_2, 2), getJoinEntity(TestGroups.ENTITY_2, 2))).containsEntry(MatchKey.RIGHT.name(), 2L);
assertThat(loadedResults.get(3)).containsEntry(MatchKey.LEFT.name(), Lists.newArrayList()).containsEntry(MatchKey.RIGHT.name(), 3L);
}
use of uk.gov.gchq.koryphe.impl.function.Identity in project Gaffer by gchq.
the class JoinIT method shouldRightSideInnerJoinUsingKeyFunctionMatch.
@Test
public void shouldRightSideInnerJoinUsingKeyFunctionMatch() throws OperationException {
// Given
final Map map = new Map.Builder<>().input(Lists.newArrayList(4L)).first(new Identity()).build();
final ArrayList<Entity> input = Lists.newArrayList(getJoinEntity(TestGroups.ENTITY, 4), getJoinEntity(TestGroups.ENTITY_2, 4), getJoinEntity(TestGroups.ENTITY_3, 4));
final Join<Object> rightJoin = new Join.Builder<>().flatten(true).matchKey(MatchKey.RIGHT).joinType(JoinType.INNER).operation(map).matchMethod(new KeyFunctionMatch(new Identity(), new ExtractProperty("count"))).input(input).build();
// When
final Iterable<? extends MapTuple> rightResults = graph.execute(rightJoin, user);
final List<java.util.Map> loadedResults = new ArrayList<>();
rightResults.forEach(e -> loadedResults.add(e.getValues()));
// Then
assertThat(loadedResults).hasSize(3);
assertThat(loadedResults.get(0)).containsEntry(MatchKey.LEFT.name(), getJoinEntity(TestGroups.ENTITY, 4)).containsEntry(MatchKey.RIGHT.name(), 4L);
assertThat(loadedResults.get(1)).containsEntry(MatchKey.LEFT.name(), getJoinEntity(TestGroups.ENTITY_2, 4)).containsEntry(MatchKey.RIGHT.name(), 4L);
assertThat(loadedResults.get(2)).containsEntry(MatchKey.LEFT.name(), getJoinEntity(TestGroups.ENTITY_3, 4)).containsEntry(MatchKey.RIGHT.name(), 4L);
}
Aggregations