KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > net > sourceforge > pmd > dfa > DataFlowNodeTest


1 package test.net.sourceforge.pmd.dfa;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.dfa.DataFlowNode;
5 import net.sourceforge.pmd.dfa.IDataFlowNode;
6 import net.sourceforge.pmd.dfa.NodeType;
7 import net.sourceforge.pmd.dfa.StartOrEndDataFlowNode;
8
9 import java.util.LinkedList JavaDoc;
10
11 public class DataFlowNodeTest extends TestCase {
12
13     public void testAddPathToChild() {
14         DataFlowNode parent = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 10, false);
15         IDataFlowNode child = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 12, false);
16         parent.addPathToChild(child);
17         assertEquals(parent.getChildren().size(), 1);
18         assertTrue(child.getParents().contains(parent));
19         assertTrue(parent.getChildren().contains(child));
20     }
21
22     public void testRemovePathToChild() {
23         DataFlowNode parent = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 10, false);
24         IDataFlowNode child = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 12, false);
25         parent.addPathToChild(child);
26
27         assertTrue(parent.removePathToChild(child));
28         assertFalse(child.getParents().contains(parent));
29         assertFalse(parent.getChildren().contains(child));
30     }
31
32     public void testRemovePathWithNonChild() {
33         DataFlowNode parent = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 10, false);
34         IDataFlowNode child = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 12, false);
35         assertFalse(parent.removePathToChild(child));
36     }
37
38     public void testReverseParentPathsTo() {
39         DataFlowNode parent1 = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 10, false);
40         DataFlowNode parent2 = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 12, false);
41         IDataFlowNode child1 = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 13, false);
42         IDataFlowNode child2 = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 13, false);
43         parent1.addPathToChild(child1);
44         parent2.addPathToChild(child1);
45         assertTrue(parent1.getChildren().contains(child1));
46
47         child1.reverseParentPathsTo(child2);
48         assertTrue(parent1.getChildren().contains(child2));
49         assertFalse(parent1.getChildren().contains(child1));
50         assertTrue(parent2.getChildren().contains(child2));
51         assertFalse(parent2.getChildren().contains(child1));
52
53         assertEquals(0, child1.getParents().size());
54         assertEquals(2, child2.getParents().size());
55     }
56
57     public void testSetType() {
58         DataFlowNode node = new StartOrEndDataFlowNode(new LinkedList JavaDoc(), 10, false);
59         node.setType(NodeType.BREAK_STATEMENT);
60         assertTrue(node.isType(NodeType.BREAK_STATEMENT));
61         assertFalse(node.isType(NodeType.CASE_LAST_STATEMENT));
62     }
63 }
64
Popular Tags