View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.plugins.checkstyle.exec;
20  
21  import java.util.ArrayList;
22  import java.util.Collections;
23  import java.util.HashMap;
24  import java.util.List;
25  import java.util.Map;
26  
27  import com.puppycrawl.tools.checkstyle.api.AuditEvent;
28  import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
29  import com.puppycrawl.tools.checkstyle.api.Violation;
30  import junit.framework.TestCase;
31  
32  /**
33   * @author Edwin Punzalan
34   *
35   */
36  public class CheckstyleResultsTest extends TestCase {
37      private CheckstyleResults results;
38  
39      /** {@inheritDoc} */
40      protected void setUp() throws Exception {
41          results = new CheckstyleResults();
42      }
43  
44      /** {@inheritDoc} */
45      protected void tearDown() throws Exception {
46          results = null;
47      }
48  
49      public void testEmptyResults() {
50          assertEquals("test total files", 0, results.getFiles().size());
51  
52          assertEquals("test file count", 0, results.getFileCount());
53  
54          assertEquals(
55                  "test zero file violations",
56                  0,
57                  results.getFileViolations("filename").size());
58  
59          assertEquals("test INFO severity count", 0, results.getSeverityCount(SeverityLevel.INFO));
60  
61          assertEquals("test WARNING severity count", 0, results.getSeverityCount(SeverityLevel.WARNING));
62  
63          assertEquals("test ERROR severity count", 0, results.getSeverityCount(SeverityLevel.ERROR));
64  
65          assertEquals("test IGNORE severity count", 0, results.getSeverityCount(SeverityLevel.IGNORE));
66      }
67  
68      public void testResults() {
69          Map<String, List<AuditEvent>> files = new HashMap<>();
70  
71          Violation message = new Violation(0, 0, "", "", null, SeverityLevel.INFO, null, getClass(), null);
72          AuditEvent event = new AuditEvent(this, "file1", message);
73          files.put("file1", Collections.singletonList(event));
74  
75          message = new Violation(0, 0, "", "", null, SeverityLevel.WARNING, null, getClass(), null);
76          List<AuditEvent> events = new ArrayList<>();
77          events.add(new AuditEvent(this, "file2", message));
78          events.add(new AuditEvent(this, "file2", message));
79          files.put("file2", events);
80  
81          message = new Violation(0, 0, "", "", null, SeverityLevel.ERROR, null, getClass(), null);
82          events = new ArrayList<>();
83          events.add(new AuditEvent(this, "file3", message));
84          events.add(new AuditEvent(this, "file3", message));
85          events.add(new AuditEvent(this, "file3", message));
86          files.put("file3", events);
87  
88          message = new Violation(0, 0, "", "", null, SeverityLevel.IGNORE, null, getClass(), null);
89          events = new ArrayList<>();
90          events.add(new AuditEvent(this, "file4", message));
91          events.add(new AuditEvent(this, "file4", message));
92          events.add(new AuditEvent(this, "file4", message));
93          events.add(new AuditEvent(this, "file4", message));
94          files.put("file4", events);
95  
96          results.setFiles(files);
97  
98          assertEquals("test total files", 4, results.getFiles().size());
99          assertEquals("test file count", 4, results.getFileCount());
100 
101         assertEquals("test file severities", 0, results.getSeverityCount("file0", SeverityLevel.INFO));
102         assertEquals("test file severities", 0, results.getSeverityCount("file0", SeverityLevel.WARNING));
103         assertEquals("test file severities", 0, results.getSeverityCount("file0", SeverityLevel.ERROR));
104         assertEquals("test file severities", 0, results.getSeverityCount("file0", SeverityLevel.IGNORE));
105 
106         assertEquals(
107                 "test file violations", 1, results.getFileViolations("file1").size());
108         assertEquals("test file severities", 1, results.getSeverityCount("file1", SeverityLevel.INFO));
109         assertEquals("test file severities", 0, results.getSeverityCount("file1", SeverityLevel.WARNING));
110         assertEquals("test file severities", 0, results.getSeverityCount("file1", SeverityLevel.ERROR));
111         assertEquals("test file severities", 0, results.getSeverityCount("file1", SeverityLevel.IGNORE));
112 
113         assertEquals(
114                 "test file violations", 2, results.getFileViolations("file2").size());
115         assertEquals("test file severities", 0, results.getSeverityCount("file2", SeverityLevel.INFO));
116         assertEquals("test file severities", 2, results.getSeverityCount("file2", SeverityLevel.WARNING));
117         assertEquals("test file severities", 0, results.getSeverityCount("file2", SeverityLevel.ERROR));
118         assertEquals("test file severities", 0, results.getSeverityCount("file2", SeverityLevel.IGNORE));
119 
120         assertEquals(
121                 "test file violations", 3, results.getFileViolations("file3").size());
122         assertEquals("test file severities", 0, results.getSeverityCount("file3", SeverityLevel.INFO));
123         assertEquals("test file severities", 0, results.getSeverityCount("file3", SeverityLevel.WARNING));
124         assertEquals("test file severities", 3, results.getSeverityCount("file3", SeverityLevel.ERROR));
125         assertEquals("test file severities", 0, results.getSeverityCount("file3", SeverityLevel.IGNORE));
126 
127         assertEquals(
128                 "test file violations", 4, results.getFileViolations("file4").size());
129         assertEquals("test file severities", 0, results.getSeverityCount("file4", SeverityLevel.INFO));
130         assertEquals("test file severities", 0, results.getSeverityCount("file4", SeverityLevel.WARNING));
131         assertEquals("test file severities", 0, results.getSeverityCount("file4", SeverityLevel.ERROR));
132         assertEquals("test file severities", 4, results.getSeverityCount("file4", SeverityLevel.IGNORE));
133 
134         assertEquals("test INFO severity count", 1, results.getSeverityCount(SeverityLevel.INFO));
135         assertEquals("test WARNING severity count", 2, results.getSeverityCount(SeverityLevel.WARNING));
136         assertEquals("test ERROR severity count", 3, results.getSeverityCount(SeverityLevel.ERROR));
137         assertEquals("test IGNORE severity count", 4, results.getSeverityCount(SeverityLevel.IGNORE));
138 
139         results.setFileViolations("file", Collections.<AuditEvent>emptyList());
140         assertEquals(
141                 "test file violations", 0, results.getFileViolations("file").size());
142     }
143 }