@Test @SuppressWarnings("unchecked") public void testLookupAllowedDefinitionsByLabels() { when(cache.getDefinitions(eq("label1"))).thenReturn(Collections.singleton(TestingGraphInstanceBuilder.DEF1_ID)); when(definitionsCache.getLabels(eq(TestingGraphInstanceBuilder.DEF1_ID))) .thenReturn(TestingGraphInstanceBuilder.DEF1_LABELS); LookupAllowedDefinitionsByLabels function = new LookupAllowedDefinitionsByLabels(graph1Instance.graph, new HashSet<String>(1) {{ add("label1"); }}, id -> true); Set<String> result = function.execute(context); assertTrue(result.contains(TestingGraphInstanceBuilder.DEF1_ID)); ArgumentCaptor<RuleEvaluationContext> ruleEvaluationContextCaptor = ArgumentCaptor.forClass(RuleEvaluationContext.class); verify(ruleManager, times(1)).evaluate(eq(RULE_SET), ruleEvaluationContextCaptor.capture()); RuleEvaluationContext evaluationContext = ruleEvaluationContextCaptor.getValue(); assertTrue(evaluationContext instanceof CardinalityContext); CardinalityContext cardinalityContext = (CardinalityContext) evaluationContext; assertEquals(1, cardinalityContext.getCandidateCount()); 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); }
@Test @SuppressWarnings("unchecked") public void testLookupAllowedDefinitionsByLabelsWithFiltering() { when(cache.getDefinitions(eq("label1"))).thenReturn(Collections.singleton(TestingGraphInstanceBuilder.DEF1_ID)); when(definitionsCache.getLabels(eq(TestingGraphInstanceBuilder.DEF1_ID))) .thenReturn(TestingGraphInstanceBuilder.DEF1_LABELS); LookupAllowedDefinitionsByLabels function = new LookupAllowedDefinitionsByLabels(graph1Instance.graph, new HashSet<String>(1) {{ add("label1"); }}, DEF_ID2::equals); Set<String> result = function.execute(context); assertTrue(result.isEmpty()); }