1
2
3
4 package net.sourceforge.pmd.lang.dfa.report;
5
6 import static org.junit.Assert.assertFalse;
7 import static org.junit.Assert.assertTrue;
8 import static org.mockito.Mockito.mock;
9 import static org.mockito.Mockito.when;
10 import net.sourceforge.pmd.RuleViolation;
11
12 import org.junit.Test;
13
14
15
16
17 public final class ViolationNodeTest {
18
19
20
21
22
23 @Test
24 public void testEqualsNodeWithTwoEqualViolations() {
25 final ViolationNode node1 = createViolationNode("Foo.java", 1, 1, 5, 15, "");
26 final ViolationNode node2 = createViolationNode("Foo.java", 1, 1, 5, 15, "");
27 assertTrue("Two equal violations should result in equal nodes", node1.equalsNode(node2));
28 }
29
30
31
32
33 @Test
34 public void testEqualsNodeWithTwoDifferentViolationsDifferentFilename() {
35 final ViolationNode node1 = createViolationNode("Foo.java", 1, 1, 5, 15, "");
36 final ViolationNode node2 = createViolationNode("Bar.java", 1, 1, 5, 15, "");
37 assertFalse("Two violations with different filename should result in not equal nodes", node1.equalsNode(node2));
38 }
39
40
41
42
43 @Test
44 public void testEqualsNodeWithTwoDifferentViolationsDifferentBeginLine() {
45 final ViolationNode node1 = createViolationNode("Foo.java", 1, 2, 5, 15, "");
46 final ViolationNode node2 = createViolationNode("Foo.java", 2, 2, 5, 15, "");
47 assertFalse("Two violations with different beginLine should result in not equal nodes", node1.equalsNode(node2));
48 }
49
50
51
52
53 @Test
54 public void testEqualsNodeWithTwoDifferentViolationsDifferentEndLine() {
55 final ViolationNode node1 = createViolationNode("Foo.java", 1, 1, 5, 15, "");
56 final ViolationNode node2 = createViolationNode("Foo.java", 1, 2, 5, 15, "");
57 assertFalse("Two violations with different endLine should result in not equal nodes", node1.equalsNode(node2));
58 }
59
60
61
62
63 @Test
64 public void testEqualsNodeWithTwoDifferentViolationsDifferentBeginColumn() {
65 final ViolationNode node1 = createViolationNode("Foo.java", 1, 1, 5, 15, "");
66 final ViolationNode node2 = createViolationNode("Foo.java", 1, 1, 7, 15, "");
67 assertFalse("Two violations with different beginColumn should result in not equal nodes", node1.equalsNode(node2));
68 }
69
70
71
72
73 @Test
74 public void testEqualsNodeWithTwoDifferentViolationsDifferentEndColumn() {
75 final ViolationNode node1 = createViolationNode("Foo.java", 1, 1, 5, 15, "");
76 final ViolationNode node2 = createViolationNode("Foo.java", 1, 1, 5, 17, "");
77 assertFalse("Two violations with different end column should result in not equal nodes", node1.equalsNode(node2));
78 }
79
80
81
82
83 @Test
84 public void testEqualsNodeWithTwoDifferentViolationsDifferentVariableName() {
85 final ViolationNode node1 = createViolationNode("Foo.java", 1, 1, 5, 15, "a");
86 final ViolationNode node2 = createViolationNode("Foo.java", 1, 1, 5, 15, "b");
87 assertFalse("Two violations with different variableName should result in not equal nodes", node1.equalsNode(node2));
88 }
89
90 private ViolationNode createViolationNode(final String filename, final int beginLine, final int endLine,
91 final int beginColumn, final int endColumn, final String variableName) {
92 final RuleViolation violation = mock(RuleViolation.class);
93 when(violation.getFilename()).thenReturn(filename);
94 when(violation.getBeginLine()).thenReturn(beginLine);
95 when(violation.getEndLine()).thenReturn(endLine);
96 when(violation.getBeginColumn()).thenReturn(beginColumn);
97 when(violation.getEndColumn()).thenReturn(endColumn);
98 when(violation.getVariableName()).thenReturn(variableName);
99 return new ViolationNode(violation);
100 }
101
102 }