/* * Copyright (c) 2015, Effektif GmbH. All rights reserved. */ package com.effektif.workflow.test.diagram; import static org.junit.Assert.*; import java.util.ArrayList; import java.util.List; import org.junit.Test; import com.effektif.workflow.api.workflow.diagram.Bounds; import com.effektif.workflow.api.workflow.diagram.Node; import com.effektif.workflow.api.workflow.diagram.Point; public class NodeTest { @Test public void testCreateEmptyNode() { Node node = new Node(); assertNull(node.elementId); assertNull(node.bounds); assertNull(node.children); } // TODO Check whether id and elementId are really supposed to be the same. @Test public void testSetActivityId() { String actId = "1"; Node node = new Node(); node.elementId(actId); assertEquals(actId, node.elementId); // assertEquals(actId, node.id); String actId2 = "2"; node.id(actId2); // assertEquals(actId2, node.elementId); assertEquals(actId2, node.id); } @Test public void testSetBounds() { Bounds bounds = new Bounds(Point.of(1, 2), Point.of(3, 4)); Node node = new Node(); node.bounds(bounds); assertNotNull(bounds); assertEquals(new Bounds(Point.of(1, 2), Point.of(3, 4)), node.bounds); node.bounds(null); assertNull(node.bounds); } @Test public void testSetChildren() { List<Node> children = new ArrayList<>(); children.add(new Node().id("n1")); children.add(new Node().id("n2")); Node parent = new Node(); parent.children(children); assertEquals(children, parent.children); children.add(new Node().id("n3")); assertNotEquals(children, parent.children); parent.children(null); assertNull(parent.children); } @Test public void testAddNode() { Node node = new Node().id("n1"); Node canvas = new Node(); assertFalse(canvas.hasChildren()); canvas.addNode(node); assertTrue(canvas.hasChildren()); assertEquals(1, canvas.children.size()); assertEquals(node.id, canvas.children.get(0).id); canvas.children(null); assertFalse(canvas.hasChildren()); canvas.addNode(node); assertTrue(canvas.hasChildren()); assertEquals(1, canvas.children.size()); assertEquals(node.id, canvas.children.get(0).id); canvas.addNode(null); assertTrue(canvas.hasChildren()); assertEquals(1, canvas.children.size()); assertEquals(node.id, canvas.children.get(0).id); } @Test public void testEquals() { List<Node> children = new ArrayList<>(); children.add(new Node().id("n1")); children.add(new Node().id("n2")); String actId = "a1"; Bounds bounds = new Bounds(Point.of(1, 2), Point.of(3, 4)); Node node1 = new Node() .elementId(actId) .bounds(bounds) .children(children); Node node2 = new Node() .elementId(actId) .bounds(bounds) .children(children); assertEquals(node1, node2); assertEquals(node1.hashCode(), node2.hashCode()); } }