@Test @SuppressWarnings("unchecked") public void testFilterConnectionTargetDefinitions() { FilterConnectionTargetDefinitions function = new FilterConnectionTargetDefinitions(DEF_ID2, Collections.singleton(DEF_ID1)); Set<String> result = function.execute(context); assertTrue(result.contains(DEF_ID1)); ArgumentCaptor<RuleEvaluationContext> ruleEvaluationContextCaptor = ArgumentCaptor.forClass(RuleEvaluationContext.class); verify(ruleManager, times(1)).evaluate(eq(RULE_SET), ruleEvaluationContextCaptor.capture()); RuleEvaluationContext evaluationContext = ruleEvaluationContextCaptor.getValue(); assertTrue(evaluationContext instanceof EdgeCardinalityContext); EdgeCardinalityContext cardinalityContext = (EdgeCardinalityContext) evaluationContext; assertEquals(DEF_ID2, cardinalityContext.getEdgeRole()); assertEquals(0, cardinalityContext.getCandidateCount()); assertTrue(cardinalityContext.getRoles().contains(ROLE1)); assertEquals(EdgeCardinalityContext.Direction.INCOMING, cardinalityContext.getDirection()); assertEquals(CardinalityContext.Operation.ADD, cardinalityContext.getOperation().get()); } }
public Set<String> lookupTargetNodes(final Graph<?, ? extends Node> graph, final Node<? extends Definition<Object>, ? extends Edge> sourceNode, final String edgeId, final Predicate<String> definitionIdsAllowedFilter) { final DomainLookupContext context = newContext(); final Set<String> targetRoles = new LookupTargetRoles(sourceNode, edgeId) .execute(context); final Set<String> allowedTargetDefinitions = new LookupAllowedDefinitionsByLabels(graph, targetRoles, definitionIdsAllowedFilter) .execute(context); return new FilterConnectionTargetDefinitions(edgeId, allowedTargetDefinitions).execute(context); }