1 package org.apache.maven.plugin.checkstyle;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import junit.framework.TestCase;
23 import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
24 import com.puppycrawl.tools.checkstyle.api.AuditEvent;
25 import com.puppycrawl.tools.checkstyle.api.LocalizedMessage;
26
27 import java.util.Collections;
28 import java.util.Map;
29 import java.util.HashMap;
30 import java.util.List;
31 import java.util.ArrayList;
32
33
34
35
36
37 public class CheckstyleResultsTest
38 extends TestCase
39 {
40 private CheckstyleResults results;
41
42
43 protected void setUp()
44 throws Exception
45 {
46 results = new CheckstyleResults();
47 }
48
49
50 protected void tearDown()
51 throws Exception
52 {
53 results = null;
54 }
55
56 public void testEmptyResults()
57 {
58 assertEquals( "test total files", 0, results.getFiles().size() );
59
60 assertEquals( "test file count", 0, results.getFileCount() );
61
62 assertEquals( "test zero file violations", 0, results.getFileViolations( "filename" ).size() );
63
64 assertEquals( "test INFO severity count", 0, results.getSeverityCount( SeverityLevel.INFO ) );
65
66 assertEquals( "test WARNING severity count", 0, results.getSeverityCount( SeverityLevel.WARNING ) );
67
68 assertEquals( "test ERROR severity count", 0, results.getSeverityCount( SeverityLevel.ERROR ) );
69
70 assertEquals( "test IGNORE severity count", 0, results.getSeverityCount( SeverityLevel.IGNORE ) );
71 }
72
73 public void testResults()
74 {
75 Map<String, List<AuditEvent>> files = new HashMap<String, List<AuditEvent>>();
76
77 LocalizedMessage message = new LocalizedMessage( 0, 0, "", "", null, SeverityLevel.INFO, null, getClass(), null );
78 AuditEvent event = new AuditEvent( this, "file1", message );
79 files.put( "file1", Collections.singletonList( event ) );
80
81 message = new LocalizedMessage( 0, 0, "", "", null, SeverityLevel.WARNING, null, getClass(), null );
82 List<AuditEvent> events = new ArrayList<AuditEvent>();
83 events.add( new AuditEvent( this, "file2", message ) );
84 events.add( new AuditEvent( this, "file2", message ) );
85 files.put( "file2", events );
86
87 message = new LocalizedMessage( 0, 0, "", "", null, SeverityLevel.ERROR, null, getClass(), null );
88 events = new ArrayList<AuditEvent>();
89 events.add( new AuditEvent( this, "file3", message ) );
90 events.add( new AuditEvent( this, "file3", message ) );
91 events.add( new AuditEvent( this, "file3", message ) );
92 files.put( "file3", events );
93
94 message = new LocalizedMessage( 0, 0, "", "", null, SeverityLevel.IGNORE, null, getClass(), null );
95 events = new ArrayList<AuditEvent>();
96 events.add( new AuditEvent( this, "file4", message ) );
97 events.add( new AuditEvent( this, "file4", message ) );
98 events.add( new AuditEvent( this, "file4", message ) );
99 events.add( new AuditEvent( this, "file4", message ) );
100 files.put( "file4", events );
101
102 results.setFiles( files );
103
104 assertEquals( "test total files", 4, results.getFiles().size() );
105 assertEquals( "test file count", 4, results.getFileCount() );
106
107 assertEquals( "test file severities", 0, results.getSeverityCount( "file0", SeverityLevel.INFO ) );
108 assertEquals( "test file severities", 0, results.getSeverityCount( "file0", SeverityLevel.WARNING ) );
109 assertEquals( "test file severities", 0, results.getSeverityCount( "file0", SeverityLevel.ERROR ) );
110 assertEquals( "test file severities", 0, results.getSeverityCount( "file0", SeverityLevel.IGNORE ) );
111
112 assertEquals( "test file violations", 1, results.getFileViolations( "file1" ).size() );
113 assertEquals( "test file severities", 1, results.getSeverityCount( "file1", SeverityLevel.INFO ) );
114 assertEquals( "test file severities", 0, results.getSeverityCount( "file1", SeverityLevel.WARNING ) );
115 assertEquals( "test file severities", 0, results.getSeverityCount( "file1", SeverityLevel.ERROR ) );
116 assertEquals( "test file severities", 0, results.getSeverityCount( "file1", SeverityLevel.IGNORE ) );
117
118 assertEquals( "test file violations", 2, results.getFileViolations( "file2" ).size() );
119 assertEquals( "test file severities", 0, results.getSeverityCount( "file2", SeverityLevel.INFO ) );
120 assertEquals( "test file severities", 2, results.getSeverityCount( "file2", SeverityLevel.WARNING ) );
121 assertEquals( "test file severities", 0, results.getSeverityCount( "file2", SeverityLevel.ERROR ) );
122 assertEquals( "test file severities", 0, results.getSeverityCount( "file2", SeverityLevel.IGNORE ) );
123
124 assertEquals( "test file violations", 3, results.getFileViolations( "file3" ).size() );
125 assertEquals( "test file severities", 0, results.getSeverityCount( "file3", SeverityLevel.INFO ) );
126 assertEquals( "test file severities", 0, results.getSeverityCount( "file3", SeverityLevel.WARNING ) );
127 assertEquals( "test file severities", 3, results.getSeverityCount( "file3", SeverityLevel.ERROR ) );
128 assertEquals( "test file severities", 0, results.getSeverityCount( "file3", SeverityLevel.IGNORE ) );
129
130 assertEquals( "test file violations", 4, results.getFileViolations( "file4" ).size() );
131 assertEquals( "test file severities", 0, results.getSeverityCount( "file4", SeverityLevel.INFO ) );
132 assertEquals( "test file severities", 0, results.getSeverityCount( "file4", SeverityLevel.WARNING ) );
133 assertEquals( "test file severities", 0, results.getSeverityCount( "file4", SeverityLevel.ERROR ) );
134 assertEquals( "test file severities", 4, results.getSeverityCount( "file4", SeverityLevel.IGNORE ) );
135
136 assertEquals( "test INFO severity count", 1, results.getSeverityCount( SeverityLevel.INFO ) );
137 assertEquals( "test WARNING severity count", 2, results.getSeverityCount( SeverityLevel.WARNING ) );
138 assertEquals( "test ERROR severity count", 3, results.getSeverityCount( SeverityLevel.ERROR ) );
139 assertEquals( "test IGNORE severity count", 4, results.getSeverityCount( SeverityLevel.IGNORE ) );
140
141 results.setFileViolations( "file", Collections.EMPTY_LIST );
142 assertEquals( "test file violations", 0, results.getFileViolations( "file" ).size() );
143 }
144 }