use of org.kie.workbench.common.stunner.core.rule.RuleViolation in project kie-wb-common by kiegroup.
the class DockNodeCommandTest method testExecuteCheckFailed.
@Test
@SuppressWarnings("unchecked")
public void testExecuteCheckFailed() {
final RuleViolations FAILED_VIOLATIONS = new DefaultRuleViolations().addViolation(new ContainmentRuleViolation(graph.getUUID(), PARENT_UUID));
when(ruleManager.evaluate(any(RuleSet.class), any(RuleEvaluationContext.class))).thenReturn(FAILED_VIOLATIONS);
CommandResult<RuleViolation> result = tested.execute(graphCommandExecutionContext);
assertEquals(CommandResult.Type.ERROR, result.getType());
assertTrue(parent.getOutEdges().isEmpty());
assertTrue(candidate.getInEdges().isEmpty());
}
use of org.kie.workbench.common.stunner.core.rule.RuleViolation in project kie-wb-common by kiegroup.
the class SafeDeleteNodeCommandRulesTest method testSingleNode.
@Test
@SuppressWarnings("unchecked")
public void testSingleNode() {
CommandResult<RuleViolation> result = tested.allow(graphCommandExecutionContext);
List<Command<GraphCommandExecutionContext, RuleViolation>> commands = tested.getCommands();
assertNotNull(commands);
assertTrue(1 == commands.size());
Command command1 = commands.get(0);
assertTrue(command1 instanceof DeregisterNodeCommand);
assertEquals(CommandResult.Type.INFO, result.getType());
final ArgumentCaptor<RuleEvaluationContext> contextCaptor = ArgumentCaptor.forClass(RuleEvaluationContext.class);
verify(ruleManager, times(2)).evaluate(eq(ruleSet), contextCaptor.capture());
final List<RuleEvaluationContext> contexts = contextCaptor.getAllValues();
assertEquals(2, contexts.size());
verifyCardinality((ElementCardinalityContext) contexts.get(0), graph, node, CardinalityContext.Operation.DELETE);
}
use of org.kie.workbench.common.stunner.core.rule.RuleViolation in project kie-wb-common by kiegroup.
the class SetConnectionSourceNodeCommandTest method testExecute.
@Test
@SuppressWarnings("unchecked")
public void testExecute() {
final List lastSourceOutEdges = mock(List.class);
final List sourceOutEdges = mock(List.class);
final List targetInEdges = mock(List.class);
when(node.getOutEdges()).thenReturn(sourceOutEdges);
when(lastSourceNode.getOutEdges()).thenReturn(lastSourceOutEdges);
when(target.getInEdges()).thenReturn(targetInEdges);
CommandResult<RuleViolation> result = tested.execute(graphCommandExecutionContext);
final ArgumentCaptor<RuleEvaluationContext> contextCaptor = ArgumentCaptor.forClass(RuleEvaluationContext.class);
verify(ruleManager, times(3)).evaluate(eq(ruleSet), contextCaptor.capture());
final List<RuleEvaluationContext> contexts = contextCaptor.getAllValues();
assertEquals(3, contexts.size());
verifyConnection((GraphConnectionContext) contexts.get(0), edge, node, target);
verifyConnectorCardinality((ConnectorCardinalityContext) contexts.get(1), graph, lastSourceNode, edge, EdgeCardinalityContext.Direction.OUTGOING, Optional.of(CardinalityContext.Operation.DELETE));
verifyConnectorCardinality((ConnectorCardinalityContext) contexts.get(2), graph, node, edge, EdgeCardinalityContext.Direction.OUTGOING, Optional.of(CardinalityContext.Operation.ADD));
assertEquals(CommandResult.Type.INFO, result.getType());
verify(lastSourceOutEdges, times(1)).remove(eq(edge));
verify(sourceOutEdges, times(1)).add(eq(edge));
verify(edgeContent, times(1)).setSourceConnection(any(Connection.class));
verify(edge, times(1)).setSourceNode(eq(node));
verify(targetInEdges, times(0)).remove(any(Edge.class));
verify(targetInEdges, times(0)).add(any(Edge.class));
verify(graphIndex, times(0)).removeEdge(any(Edge.class));
verify(graphIndex, times(0)).addEdge(any(Edge.class));
verify(graphIndex, times(0)).addNode(any(Node.class));
verify(graphIndex, times(0)).removeNode(any(Node.class));
}
use of org.kie.workbench.common.stunner.core.rule.RuleViolation in project kie-wb-common by kiegroup.
the class SetConnectionSourceNodeCommandTest method testExecuteOnlyConnectionsHasBeenChanged.
@Test
@SuppressWarnings("unchecked")
public void testExecuteOnlyConnectionsHasBeenChanged() {
when(edge.getSourceNode()).thenReturn(node);
MagnetConnection connection = MagnetConnection.Builder.at(MAGNETX, MAGNETY);
tested = new SetConnectionSourceNodeCommand(node, edge, connection);
CommandResult<RuleViolation> result = tested.execute(graphCommandExecutionContext);
assertEquals(CommandResult.Type.INFO, result.getType());
verify(ruleManager, never()).evaluate(eq(ruleSet), any(RuleEvaluationContext.class));
verify(edgeContent, times(1)).setSourceConnection(eq(connection));
verify(edgeContent, never()).setTargetConnection(any(Connection.class));
assertEquals(sourceMagnet.get(), tested.lastConnection);
}
use of org.kie.workbench.common.stunner.core.rule.RuleViolation in project kie-wb-common by kiegroup.
the class SetParentNodeCommandTest method testExecuteCheckFailed.
@Test
@SuppressWarnings("unchecked")
public void testExecuteCheckFailed() {
final RuleViolations FAILED_VIOLATIONS = new DefaultRuleViolations().addViolation(new ContainmentRuleViolation(graph.getUUID(), PARENT_UUID));
when(ruleManager.evaluate(any(RuleSet.class), any(RuleEvaluationContext.class))).thenReturn(FAILED_VIOLATIONS);
CommandResult<RuleViolation> result = tested.execute(graphCommandExecutionContext);
assertEquals(CommandResult.Type.ERROR, result.getType());
assertTrue(parent.getOutEdges().isEmpty());
assertTrue(candidate.getInEdges().isEmpty());
}
Aggregations