View Javadoc
1   ///////////////////////////////////////////////////////////////////////////////////////////////
2   // checkstyle: Checks Java source code and other text files for adherence to a set of rules.
3   // Copyright (C) 2001-2026 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.filters;
21  
22  import org.junit.jupiter.api.Test;
23  
24  import com.puppycrawl.tools.checkstyle.AbstractExamplesModuleTestSupport;
25  import com.puppycrawl.tools.checkstyle.checks.UniquePropertiesCheck;
26  import com.puppycrawl.tools.checkstyle.checks.coding.MagicNumberCheck;
27  import com.puppycrawl.tools.checkstyle.checks.sizes.LineLengthCheck;
28  
29  public class SuppressWithNearbyTextFilterExamplesTest extends AbstractExamplesModuleTestSupport {
30  
31      @Override
32      public String getPackageLocation() {
33          return "com/puppycrawl/tools/checkstyle/filters/suppresswithnearbytextfilter";
34      }
35  
36      @Test
37      public void testExample1() throws Exception {
38  
39          final String[] expectedWithoutFilter = {
40              "18:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
41              "19:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
42              "21: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
43              "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
44              "28: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
45          };
46  
47          final String[] expectedWithFilter = {
48              "19:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
49              "21: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
50              "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
51              "28: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
52          };
53  
54          verifyFilterWithInlineConfigParser(getPath("Example1.java"),
55                  expectedWithoutFilter, expectedWithFilter);
56      }
57  
58      @Test
59      public void testExample2() throws Exception {
60  
61          final String[] expectedWithoutFilter = {
62              "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
63              "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
64              "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
65              "27: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
66              "31: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
67          };
68  
69          final String[] expectedWithFilter = {
70              "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
71              "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
72              "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
73              "27: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
74              "31: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
75          };
76  
77          verifyFilterWithInlineConfigParser(getPath("Example2.java"),
78                  expectedWithoutFilter, expectedWithFilter);
79      }
80  
81      @Test
82      public void testUseCase1() throws Exception {
83  
84          final String[] expectedWithoutFilter = {
85              "15:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
86              "16:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
87          };
88  
89          final String[] expectedWithFilter = {
90              "16:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
91          };
92  
93          verifyFilterWithInlineConfigParser(getPath("UseCase1.java"),
94                  expectedWithoutFilter, expectedWithFilter);
95      }
96  
97      @Test
98      public void testExample3() throws Exception {
99  
100         final String[] expectedWithoutFilter = {
101             "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
102             "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
103             "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
104             "27: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
105             "31: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
106         };
107 
108         final String[] expectedWithFilter = {
109             "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
110             "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
111         };
112 
113         verifyFilterWithInlineConfigParser(getPath("Example3.java"),
114                 expectedWithoutFilter, expectedWithFilter);
115     }
116 
117     @Test
118     public void testExample4() throws Exception {
119 
120         final String[] expectedWithoutFilter = {
121             "20:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
122             "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
123             "23: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
124             "26: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
125             "30: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
126         };
127 
128         final String[] expectedWithFilter = {
129             "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
130             "23: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
131             "26: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
132             "30: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
133         };
134 
135         verifyFilterWithInlineConfigParser(getPath("Example4.java"),
136                 expectedWithoutFilter, expectedWithFilter);
137     }
138 
139     @Test
140     public void testExample5() throws Exception {
141 
142         final String[] expectedWithoutFilter = {
143             "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
144             "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
145             "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
146             "27: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
147             "31: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
148         };
149 
150         final String[] expectedWithFilter = {
151             "24: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
152             "27: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
153             "31: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
154         };
155 
156         verifyFilterWithInlineConfigParser(getPath("Example5.java"),
157                 expectedWithoutFilter, expectedWithFilter);
158     }
159 
160     @Test
161     public void testUseCase2() throws Exception {
162 
163         final String[] expectedWithoutFilters = {
164             "10: " + getCheckMessage(UniquePropertiesCheck.class, UniquePropertiesCheck.MSG_KEY,
165                     "key.one", 2),
166             "12: " + getCheckMessage(UniquePropertiesCheck.class, UniquePropertiesCheck.MSG_KEY,
167                     "key.two", 2),
168         };
169 
170         final String[] expectedWithFilters = {
171             "12: " + getCheckMessage(UniquePropertiesCheck.class, UniquePropertiesCheck.MSG_KEY,
172                     "key.two", 2),
173         };
174 
175         verifyFilterWithInlineConfigParser(getPath("UseCase2.properties"),
176                 expectedWithoutFilters, expectedWithFilters);
177     }
178 
179     @Test
180     public void testUseCase3() throws Exception {
181 
182         final String[] expectedWithoutFilter = {
183             "17:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
184             "18:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
185         };
186 
187         final String[] expectedWithFilter = {
188             "18:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
189         };
190 
191         verifyFilterWithInlineConfigParser(getPath("UseCase3.java"),
192                 expectedWithoutFilter, expectedWithFilter);
193     }
194 
195     @Test
196     public void testUseCase4() throws Exception {
197 
198         final String[] expectedWithoutFilter = {
199             "18:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
200             "19:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
201             "20:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "44"),
202             "21:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "45"),
203             "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "46"),
204         };
205 
206         final String[] expectedWithFilter = {
207             "22:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "46"),
208         };
209 
210         verifyFilterWithInlineConfigParser(getPath("UseCase4.java"),
211                 expectedWithoutFilter, expectedWithFilter);
212     }
213 
214     @Test
215     public void testExample6() throws Exception {
216 
217         final String[] expectedWithoutFilter = {
218             "23:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
219             "24:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
220             "26: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
221             "29: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
222             "33: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 72),
223         };
224 
225         final String[] expectedWithFilter = {
226             "23:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "42"),
227             "24:11: " + getCheckMessage(MagicNumberCheck.class, MagicNumberCheck.MSG_KEY, "43"),
228             "26: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 74),
229             "29: " + getCheckMessage(LineLengthCheck.class, LineLengthCheck.MSG_KEY, 55, 84),
230         };
231 
232         verifyFilterWithInlineConfigParser(getPath("Example6.java"),
233                 expectedWithoutFilter, expectedWithFilter);
234     }
235 
236 }