View Javadoc
1   ///////////////////////////////////////////////////////////////////////////////////////////////
2   // checkstyle: Checks Java source code and other text files for adherence to a set of rules.
3   // Copyright (C) 2001-2024 the original author or authors.
4   //
5   // This library is free software; you can redistribute it and/or
6   // modify it under the terms of the GNU Lesser General Public
7   // License as published by the Free Software Foundation; either
8   // version 2.1 of the License, or (at your option) any later version.
9   //
10  // This library is distributed in the hope that it will be useful,
11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  // Lesser General Public License for more details.
14  //
15  // You should have received a copy of the GNU Lesser General Public
16  // License along with this library; if not, write to the Free Software
17  // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  ///////////////////////////////////////////////////////////////////////////////////////////////
19  
20  package com.puppycrawl.tools.checkstyle.api;
21  
22  import static com.google.common.truth.Truth.assertWithMessage;
23  
24  import org.junit.jupiter.api.Test;
25  
26  public class SeverityLevelCounterTest {
27  
28      @Test
29      public void testCtorException() {
30          try {
31              final Object test = new SeverityLevelCounter(null);
32              assertWithMessage("exception expected but got %s", test)
33                      .fail();
34          }
35          catch (IllegalArgumentException ex) {
36              assertWithMessage("Invalid exception message")
37                      .that(ex)
38                      .hasMessageThat()
39                      .isEqualTo("'level' cannot be null");
40          }
41      }
42  
43      @Test
44      public void testAddError() {
45          final SeverityLevelCounter counter = new SeverityLevelCounter(SeverityLevel.ERROR);
46          assertWithMessage("Invalid severity level count")
47                  .that(counter.getCount())
48                  .isEqualTo(0);
49          // not counted
50          counter.addError(new AuditEvent(this, "ATest.java", null));
51          counter.addError(new AuditEvent(this, "ATest.java", new Violation(1, 2, 0, null,
52                  null, null, SeverityLevel.INFO, null, null, null)));
53          // counted
54          counter.addError(new AuditEvent(this, "ATest.java", new Violation(1, 2, 0, null,
55                  null, null, SeverityLevel.ERROR, null, null, null)));
56          assertWithMessage("Invalid severity level count")
57                  .that(counter.getCount())
58                  .isEqualTo(1);
59      }
60  
61      @Test
62      public void testAddException() {
63          final SeverityLevelCounter counter = new SeverityLevelCounter(SeverityLevel.ERROR);
64          final AuditEvent event = new AuditEvent(this, "ATest.java", null);
65          assertWithMessage("Invalid severity level count")
66                  .that(counter.getCount())
67                  .isEqualTo(0);
68          counter.addException(event, new IllegalStateException("Test IllegalStateException"));
69          assertWithMessage("Invalid severity level count")
70                  .that(counter.getCount())
71                  .isEqualTo(1);
72      }
73  
74      @Test
75      public void testAddExceptionWarning() {
76          final SeverityLevelCounter counter = new SeverityLevelCounter(SeverityLevel.WARNING);
77          final AuditEvent event = new AuditEvent(this, "ATest.java", null);
78          assertWithMessage("Invalid severity level count")
79                  .that(counter.getCount())
80                  .isEqualTo(0);
81          counter.addException(event, new IllegalStateException("Test IllegalStateException"));
82          assertWithMessage("Invalid severity level count")
83                  .that(counter.getCount())
84                  .isEqualTo(0);
85      }
86  
87      @Test
88      public void testAuditStartedClearsState() {
89          final SeverityLevelCounter counter = new SeverityLevelCounter(SeverityLevel.ERROR);
90          final AuditEvent event = new AuditEvent(this, "ATest.java", null);
91          final AuditEvent secondEvent = new AuditEvent(this, "BTest.java", null);
92  
93          counter.auditStarted(event);
94          assertWithMessage("Invalid severity level count")
95                  .that(counter.getCount())
96                  .isEqualTo(0);
97  
98          counter.addException(event, new IllegalStateException("Test IllegalStateException"));
99          assertWithMessage("Invalid severity level count")
100                 .that(counter.getCount())
101                 .isEqualTo(1);
102 
103         counter.auditStarted(secondEvent);
104         assertWithMessage("Invalid severity level count")
105                 .that(counter.getCount())
106                 .isEqualTo(0);
107     }
108 
109 }