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.checks.blocks;
21  
22  import static com.google.common.truth.Truth.assertWithMessage;
23  import static com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck.MSG_KEY_LINE_ALONE;
24  import static com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck.MSG_KEY_LINE_BREAK_BEFORE;
25  import static com.puppycrawl.tools.checkstyle.checks.blocks.RightCurlyCheck.MSG_KEY_LINE_SAME;
26  
27  import org.junit.jupiter.api.Test;
28  
29  import com.puppycrawl.tools.checkstyle.AbstractModuleTestSupport;
30  import com.puppycrawl.tools.checkstyle.api.CheckstyleException;
31  import com.puppycrawl.tools.checkstyle.utils.CommonUtil;
32  
33  public class RightCurlyCheckTest extends AbstractModuleTestSupport {
34  
35      @Override
36      public String getPackageLocation() {
37          return "com/puppycrawl/tools/checkstyle/checks/blocks/rightcurly";
38      }
39  
40      /* Additional test for jacoco, since valueOf()
41       * is generated by javac and jacoco reports that
42       * valueOf() is uncovered.
43       */
44      @Test
45      public void testRightCurlyOptionValueOf() {
46          final RightCurlyOption option = RightCurlyOption.valueOf("ALONE");
47          assertWithMessage("Invalid valueOf result")
48              .that(option)
49              .isEqualTo(RightCurlyOption.ALONE);
50      }
51  
52      @Test
53      public void testDefault() throws Exception {
54          final String[] expected = {
55              "25:17: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 17),
56              "28:17: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 17),
57              "40:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
58              "44:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
59              "93:27: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 27),
60          };
61          verifyWithInlineConfigParser(
62                  getPath("InputRightCurlyLeftTestDefault.java"), expected);
63      }
64  
65      @Test
66      public void testSame() throws Exception {
67          final String[] expected = {
68              "26:17: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 17),
69              "29:17: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 17),
70              "41:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
71              "45:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
72              "87:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
73              "94:27: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 27),
74              "189:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
75              "190:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
76          };
77          verifyWithInlineConfigParser(
78                  getPath("InputRightCurlyLeftTestSame.java"), expected);
79      }
80  
81      @Test
82      public void testSameOmitOneLiners() throws Exception {
83          final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
84          verifyWithInlineConfigParser(
85                  getPath("InputRightCurlyTestSameOmitOneLiners.java"), expected);
86      }
87  
88      @Test
89      public void testSameDoesNotComplainForNonMultilineConstructs() throws Exception {
90          final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
91          verifyWithInlineConfigParser(
92                  getPath("InputRightCurlyTestSame.java"), expected);
93      }
94  
95      @Test
96      public void testAlone() throws Exception {
97          final String[] expected = {
98              "57:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
99              "94:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
100             "98:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
101             "174:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
102             "176:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
103             "178:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
104             "179:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
105             "184:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
106             "189:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
107             "190:53: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 53),
108         };
109         verifyWithInlineConfigParser(
110                 getPath("InputRightCurlyLeftTestAlone.java"), expected);
111     }
112 
113     @Test
114     public void testNewLine() throws Exception {
115         final String[] expected = {
116             "86:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
117             "111:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
118             "111:6: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 6),
119             "122:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
120             "122:6: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 6),
121             "136:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
122             "136:6: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 6),
123             "144:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
124             "149:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
125             "152:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
126             "154:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
127             "197:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
128             "202:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
129             "205:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
130             "211:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
131             "211:10: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 10),
132         };
133         verifyWithInlineConfigParser(
134                 getPath("InputRightCurlyLeftTestNewLine.java"), expected);
135     }
136 
137     @Test
138     public void testShouldStartLine2() throws Exception {
139         final String[] expected = {
140             "86:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
141             "111:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
142             "111:6: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 6),
143             "122:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
144             "122:6: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 6),
145             "136:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
146             "136:6: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 6),
147             "197:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
148             "202:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
149             "211:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
150             "211:10: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 10),
151         };
152         verifyWithInlineConfigParser(
153                 getPath("InputRightCurlyLeftTestShouldStartLine2.java"), expected);
154     }
155 
156     @Test
157     public void testForceLineBreakBefore() throws Exception {
158         final String[] expected = {
159             "38:43: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 43),
160             "41:17: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 17),
161             "44:71: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 71),
162             "46:38: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 38),
163             "50:25: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 25),
164         };
165         verifyWithInlineConfigParser(
166                 getPath("InputRightCurlyTestForceLineBreakBefore.java"), expected);
167     }
168 
169     @Test
170     public void testForceLineBreakBefore2() throws Exception {
171         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
172         verifyWithInlineConfigParser(
173                 getPath("InputRightCurlyTestForceLineBreakBefore2.java"), expected);
174     }
175 
176     @Test
177     public void testNullPointerException() throws Exception {
178         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
179         verifyWithInlineConfigParser(
180                 getPath("InputRightCurlyTestNullPointerException.java"), expected);
181     }
182 
183     @Test
184     public void testWithAnnotations() throws Exception {
185         final String[] expected = {
186             "18:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
187             "21:65: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 65),
188             "32:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
189             "36:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
190             "39:35: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 35),
191             "42:36: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 36),
192             "48:73: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 73),
193             "50:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
194             "55:66: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 66),
195             "58:96: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 96),
196             "61:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
197             "64:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
198             "67:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
199             "71:38: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 38),
200             "72:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
201             "78:62: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 62),
202             "87:28: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 28),
203             "89:21: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 21),
204             "91:20: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 20),
205             "93:14: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 14),
206             "104:26: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 26),
207             "105:20: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 20),
208             "114:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
209             "114:38: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 38),
210             "118:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
211             "118:38: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 38),
212             "122:40: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 40),
213             "122:88: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 88),
214             "125:18: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 18),
215             "129:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
216             "132:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
217             "134:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
218             "138:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
219             "147:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
220             "149:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
221             "149:33: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 33),
222             "161:75: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 75),
223             "162:58: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 58),
224             "162:74: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 74),
225             "163:58: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 58),
226             "165:58: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 58),
227             "165:73: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 73),
228             "171:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
229             "178:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
230             "193:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
231             "200:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
232             "200:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
233             "208:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
234             "208:10: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 10),
235             "212:54: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 54),
236             "212:55: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 55),
237             "215:75: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 75),
238             "215:76: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 76),
239             "215:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
240             "219:76: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 76),
241             "227:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
242             "231:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
243             "234:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
244             "236:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
245             "239:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
246             "242:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
247             "245:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
248             "248:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
249             "250:56: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 56),
250             "253:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
251             "263:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
252             "265:40: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 40),
253             "269:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
254             "272:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
255             "274:61: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 61),
256         };
257         verifyWithInlineConfigParser(
258                 getPath("InputRightCurlyTestWithAnnotations.java"), expected);
259     }
260 
261     @Test
262     public void testAloneOrSingleLine() throws Exception {
263         final String[] expected = {
264             "70:26: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 26),
265             "84:42: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 42),
266             "87:18: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 18),
267             "95:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
268             "99:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
269             "107:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
270             "109:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
271             "120:75: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 75),
272             "122:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
273             "122:93: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 93),
274             "124:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
275             "126:64: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 64),
276             "126:80: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 80),
277             "132:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
278             "139:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
279             "154:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
280             "161:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
281             "161:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
282             "170:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
283             "170:10: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 10),
284             "174:54: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 54),
285             "174:55: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 55),
286             "177:75: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 75),
287             "177:76: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 76),
288             "177:77: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 77),
289             "189:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
290             "195:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
291             "198:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
292             "201:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
293             "207:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
294             "209:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
295             "211:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
296             "212:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
297             "217:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
298             "222:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
299             "223:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
300             "231:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
301             "243:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
302             "249:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
303             "249:38: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 38),
304         };
305         verifyWithInlineConfigParser(
306                 getPath("InputRightCurlyTestAloneOrSingleline.java"), expected);
307     }
308 
309     @Test
310     public void testAloneOrSingleLineTryCatchBlock() throws Exception {
311         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
312         verifyWithInlineConfigParser(
313                 getPath("InputRightCurlyTestAloneOrSinglelineTryCatchBlock.java"), expected);
314     }
315 
316     @Test
317     public void testCatchWithoutFinally() throws Exception {
318         final String[] expected = {
319             "19:9: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 9),
320         };
321         verifyWithInlineConfigParser(
322                 getPath("InputRightCurlyTestWithoutFinally.java"), expected);
323     }
324 
325     @Test
326     public void testSingleLineClass() throws Exception {
327         final String[] expected = {
328             "29:56: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 56),
329         };
330         verifyWithInlineConfigParser(
331                 getPath("InputRightCurlyTestSingleLineClass.java"), expected);
332     }
333 
334     @Test
335     public void testInvalidOption() throws Exception {
336 
337         try {
338             final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
339 
340             verifyWithInlineConfigParser(
341                     getPath("InputRightCurlyTestInvalidOption.java"), expected);
342             assertWithMessage("exception expected").fail();
343         }
344         catch (CheckstyleException exc) {
345             assertWithMessage("Invalid exception message")
346                 .that(exc.getMessage())
347                 .isEqualTo("cannot initialize module com.puppycrawl.tools.checkstyle.TreeWalker - "
348                     + "cannot initialize module com.puppycrawl.tools.checkstyle.checks."
349                     + "blocks.RightCurlyCheck");
350         }
351     }
352 
353     @Test
354     public void testRightCurlySameAndLiteralDo() throws Exception {
355         final String[] expected = {
356             "70:9: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 9),
357             "75:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
358             "91:9: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 9),
359         };
360         verifyWithInlineConfigParser(
361                 getPath("InputRightCurlyTestSameAndLiteralDo.java"), expected);
362     }
363 
364     @Test
365     public void testTryWithResourceSame() throws Exception {
366         final String[] expected = {
367             "19:9: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 9),
368             "33:67: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 67),
369             "44:15: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 15),
370             "46:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
371         };
372         verifyWithInlineConfigParser(
373                 getPath("InputRightCurlyTestTryWithResourceSame.java"), expected);
374     }
375 
376     @Test
377     public void testTryWithResourceAlone() throws Exception {
378         final String[] expected = {
379             "27:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
380             "33:67: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 67),
381             "34:35: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 35),
382             "37:64: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 64),
383             "37:92: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 92),
384             "44:67: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 67),
385             "46:15: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 15),
386             "48:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
387         };
388         verifyWithInlineConfigParser(
389                 getPath("InputRightCurlyTestTryWithResourceAlone.java"), expected);
390     }
391 
392     @Test
393     public void testTryWithResourceAloneSingle() throws Exception {
394         final String[] expected = {
395             "27:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
396             "43:15: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 15),
397             "45:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
398         };
399         verifyWithInlineConfigParser(
400                 getPath("InputRightCurlyTryWithResourceAloneSingle.java"), expected);
401     }
402 
403     @Test
404     public void testBracePolicyAloneAndSinglelineIfBlocks() throws Exception {
405         final String[] expected = {
406             "13:32: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 32),
407             "15:45: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 45),
408             "15:47: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 47),
409         };
410         verifyWithInlineConfigParser(
411                 getPath("InputRightCurlyTestSinglelineIfBlocks.java"), expected);
412     }
413 
414     @Test
415     public void testRightCurlyIsAloneLambda() throws Exception {
416         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
417         verifyWithInlineConfigParser(
418                 getPath("InputRightCurlyTestIsAloneLambda.java"), expected);
419     }
420 
421     @Test
422     public void testRightCurlyIsAloneOrSinglelineLambda() throws Exception {
423         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
424         verifyWithInlineConfigParser(
425                 getPath("InputRightCurlyTestIsAloneOrSinglelineLambda.java"), expected);
426     }
427 
428     @Test
429     public void testRightCurlyIsSameLambda() throws Exception {
430         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
431         verifyWithInlineConfigParser(
432                 getPath("InputRightCurlyTestIsSameLambda.java"), expected);
433     }
434 
435     @Test
436     public void testOptionAlone() throws Exception {
437         final String[] expected = {
438             "16:15: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 15),
439             "17:21: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 21),
440             "21:26: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 26),
441             "30:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
442             "47:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
443             "51:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
444             "54:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
445             "56:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
446             "58:17: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 17),
447             "60:53: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 53),
448             "62:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
449             "62:52: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 52),
450             "75:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
451             "75:11: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 11),
452             "79:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
453             "81:56: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 56),
454             "84:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
455             "96:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
456             "99:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
457             "105:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
458             "105:10: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 10),
459         };
460         verifyWithInlineConfigParser(
461                 getPath("InputRightCurlyTestOptionAlone.java"),
462                 expected);
463     }
464 
465     @Test
466     public void testOptionAloneOrSingleLine() throws Exception {
467         final String[] expected = {
468             "21:26: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 26),
469             "30:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
470             "38:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
471             "47:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
472             "51:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
473             "72:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
474             "77:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
475             "86:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
476             "86:10: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 10),
477         };
478         verifyWithInlineConfigParser(
479                 getPath(
480                 "InputRightCurlyTestOptionAloneOrSingleLine.java"), expected);
481     }
482 
483     @Test
484     public void testBlocksEndingWithSemiOptionSame() throws Exception {
485         final String[] expected = {
486             "16:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
487             "21:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
488             "27:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
489             "35:29: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 29),
490             "41:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
491             "44:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
492             "51:20: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 20),
493             "57:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
494             "60:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
495             "65:30: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 30),
496             "74:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
497             "74:11: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 11),
498             "78:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
499         };
500         verifyWithInlineConfigParser(
501                 getPath("InputRightCurlyTestOptSameBlocksWithSemi.java"), expected);
502     }
503 
504     @Test
505     public void testBlocksEndingWithSemiOptionAlone() throws Exception {
506         final String[] expected = {
507             "13:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
508             "16:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
509             "18:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
510             "21:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
511             "24:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
512             "27:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
513             "35:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
514             "37:40: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 40),
515             "41:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
516             "44:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
517             "46:61: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 61),
518             "48:19: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 19),
519             "51:20: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 20),
520             "53:34: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 34),
521             "57:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
522             "60:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
523             "65:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
524             "71:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
525             "71:11: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 11),
526             "75:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
527         };
528         verifyWithInlineConfigParser(
529                 getPath("InputRightCurlyTestOptAloneBlocksWithSemi.java"), expected);
530     }
531 
532     @Test
533     public void testBlocksEndingWithSemiOptionAloneOrSingleLine() throws Exception {
534         final String[] expected = {
535             "16:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
536             "21:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
537             "27:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
538             "35:29: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 29),
539             "41:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
540             "44:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
541             "51:20: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 20),
542             "57:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
543             "60:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
544             "65:30: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 30),
545             "74:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
546             "74:11: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 11),
547             "78:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
548         };
549         verifyWithInlineConfigParser(
550                 getPath("InputRightCurlyTestOptAloneOrSingleLineBlocksWithSemi.java"), expected);
551     }
552 
553     @Test
554     public void testNewTokensAlone() throws Exception {
555         final String[] expected = {
556             "13:19: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 19),
557             "16:20: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 20),
558             "18:34: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 34),
559         };
560         verifyWithInlineConfigParser(
561                 getPath("InputRightCurlyTestNewTokensAlone.java"), expected);
562     }
563 
564     @Test
565     public void testNewTokensAloneOrSingleLine() throws Exception {
566         final String[] expected = {
567             "16:20: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 20),
568         };
569         verifyWithInlineConfigParser(
570                 getPath("InputRightCurlyNewTokensAloneOrSingleLine.java"), expected);
571     }
572 
573     @Test
574     public void testNewTokensSame() throws Exception {
575         final String[] expected = {
576             "16:20: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 20),
577         };
578         verifyWithInlineConfigParser(
579                 getPath("InputRightCurlyTestSameNewTokens.java"), expected);
580     }
581 
582     @Test
583     public void testRightCurlyDoubleBrace() throws Exception {
584         final String[] expected = {
585             "14:1: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 1),
586             "14:2: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 2),
587         };
588         verifyWithInlineConfigParser(
589                 getPath("InputRightCurlyTestDoubleBrace.java"), expected);
590     }
591 
592     @Test
593     public void testRightCurlyEmptyOnSingleLine() throws Exception {
594         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
595         verifyWithInlineConfigParser(
596                 getPath("InputRightCurlyTestEmptyOnSingleLine.java"), expected);
597     }
598 
599     @Test
600     public void testRightCurlyEndOfFile() throws Exception {
601         final String[] expected = {
602             "16:2: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 2),
603             "16:3: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 3),
604         };
605         verifyWithInlineConfigParser(
606                 getPath("InputRightCurlyTestEndOfFile.java"), expected);
607     }
608 
609     @Test
610     public void testRightCurlyRecordsAndCompactCtors() throws Exception {
611         final String[] expected = {
612             "23:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
613             "23:11: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 11),
614             "27:21: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 21),
615             "32:23: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 23),
616             "34:37: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 37),
617             "41:68: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 68),
618         };
619         verifyWithInlineConfigParser(
620                 getPath("InputRightCurlyTestRecordsAndCompactCtors.java"), expected);
621     }
622 
623     @Test
624     public void testRightCurlyWithEmoji() throws Exception {
625         final String[] expected = {
626             "24:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
627             "28:13: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 13),
628             "49:9: " + getCheckMessage(MSG_KEY_LINE_SAME, "}", 9),
629             "69:50: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 50),
630             "78:44: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 44),
631             "84:41: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 41),
632 
633         };
634         verifyWithInlineConfigParser(getPath("InputRightCurlyWithEmoji.java"), expected);
635     }
636 
637     @Test
638     public void testRightCurlyWithEmojiAloneOrSingleLine() throws Exception {
639         final String[] expected = {
640             "24:38: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 38),
641             "30:43: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 43),
642             "40:45: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 45),
643             "51:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
644             "54:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
645         };
646         verifyWithInlineConfigParser(
647                 getPath("InputRightCurlyWithEmojiAloneOrSingleLine.java"), expected);
648     }
649 
650     @Test
651     public void testUppercaseOptionProperty() throws Exception {
652         final String[] expected = {
653             "16:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
654             "21:35: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 35),
655         };
656         verifyWithInlineConfigParser(
657                 getPath("InputRightCurlyWithUppercaseOptionProperty.java"), expected);
658     }
659 
660     @Test
661     public void testRightCurlyWithIfElseAlone() throws Exception {
662         final String[] expected = {
663             "19:12: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 12),
664             "27:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
665         };
666         verifyWithInlineConfigParser(
667                 getPath("InputRightCurlyTestIfElseAlone.java"), expected);
668     }
669 
670     @Test
671     public void testSwitchCase() throws Exception {
672         final String[] expected = {
673             "20:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
674             "27:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
675             "51:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
676             "69:68: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 68),
677             "75:74: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 74),
678             "112:17: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 17),
679             "116:21: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 21),
680         };
681         verifyWithInlineConfigParser(
682                 getPath("InputRightCurlyTestSwitchCase.java"), expected);
683     }
684 
685     @Test
686     public void testSwitchCase2() throws Exception {
687         final String[] expected = {
688             "20:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
689             "27:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
690             "114:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
691         };
692         verifyWithInlineConfigParser(
693                 getPath("InputRightCurlyTestSwitchCase2.java"), expected);
694     }
695 
696     @Test
697     public void testSwitchCase3() throws Exception {
698         final String[] expected = {
699             "15:22: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 22),
700             "17:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
701             "19:36: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 36),
702             "25:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
703             "26:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
704             "28:22: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 22),
705             "29:22: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 22),
706             "37:26: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 26),
707             "37:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
708             "43:40: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 40),
709             "43:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
710             "48:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
711             "50:32: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 32),
712             "50:33: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 33),
713             "52:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
714             "52:14: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 14),
715         };
716         verifyWithInlineConfigParser(
717                 getPath("InputRightCurlyTestSwitchCase3.java"), expected);
718     }
719 
720     @Test
721     public void testSwitchCase4() throws Exception {
722         final String[] expected = {
723             "17:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
724             "19:36: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 36),
725             "25:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
726             "26:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
727             "28:22: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 22),
728             "35:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
729             "35:42: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 42),
730             "40:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
731             "42:32: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 32),
732         };
733         verifyWithInlineConfigParser(
734                 getPath("InputRightCurlyTestSwitchCase4.java"), expected);
735     }
736 
737     @Test
738     public void testSwitchCase5() throws Exception {
739         final String[] expected = {
740             "17:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
741             "19:36: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 36),
742             "25:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
743             "26:37: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 37),
744             "28:22: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 22),
745             "35:41: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 41),
746             "35:42: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 42),
747             "40:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
748             "42:32: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 32),
749             "65:49: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 49),
750         };
751         verifyWithInlineConfigParser(
752                 getPath("InputRightCurlyTestSwitchCase5.java"), expected);
753     }
754 
755     @Test
756     public void testSwitchExpression() throws Exception {
757         final String[] expected = {
758             "48:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
759             "56:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
760             "92:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
761         };
762         verifyWithInlineConfigParser(
763                 getPath("InputRightCurlyTestSwitchExpression.java"), expected);
764     }
765 
766     @Test
767     public void testSwitchExpression2() throws Exception {
768         final String[] expected = {
769             "46:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
770             "54:5: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 5),
771             "77:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
772             "90:9: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 9),
773         };
774         verifyWithInlineConfigParser(
775                 getPath("InputRightCurlyTestSwitchExpression2.java"), expected);
776     }
777 
778     @Test
779     public void testSwitchExpression3() throws Exception {
780         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
781         verifyWithInlineConfigParser(
782                 getPath("InputRightCurlyTestSwitchExpression3.java"), expected);
783     }
784 
785     @Test
786     public void testSwitchExpression4() throws Exception {
787         final String[] expected = {
788             "117:28: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 28),
789         };
790         verifyWithInlineConfigParser(
791                 getPath("InputRightCurlyTestSwitchExpression4.java"), expected);
792     }
793 
794     @Test
795     public void testSwitchExpression5() throws Exception {
796         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
797         verifyWithInlineConfigParser(
798                 getPath("InputRightCurlyTestSwitchExpression5.java"), expected);
799     }
800 
801     @Test
802     public void testSwitchWithComment() throws Exception {
803         final String[] expected = {
804             "16:66: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 66),
805             "23:61: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 61),
806             "24:57: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 57),
807             "31:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
808             "32:19: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 19),
809             "37:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
810             "38:33: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 33),
811         };
812         verifyWithInlineConfigParser(
813                 getPath("InputRightCurlyTestWithComment.java"), expected);
814     }
815 
816     @Test
817     public void testSwitchExpression6() throws Exception {
818         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
819         verifyWithInlineConfigParser(
820                 getPath("InputRightCurlyTestSwitchExpression6.java"), expected);
821     }
822 
823     @Test
824     public void testSwitchExpression7() throws Exception {
825         final String[] expected = CommonUtil.EMPTY_STRING_ARRAY;
826         verifyWithInlineConfigParser(
827                 getPath("InputRightCurlyTestSwitchExpression7.java"), expected);
828     }
829 
830     @Test
831     public void testCaseBlocksInSwitchStatementAlone() throws Exception {
832         final String[] expected = {
833             "33:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
834             "44:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
835             "73:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
836             "78:44: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 44),
837             "90:39: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 39),
838             "97:42: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 42),
839             "107:35: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 35),
840         };
841         verifyWithInlineConfigParser(
842                 getPath("InputRightCurlyCaseBlocksInSwitchStatementAlone.java"), expected);
843     }
844 
845     @Test
846     public void testCaseBlocksInSwitchStatementAlone2() throws Exception {
847         final String[] expected = {
848             "17:15: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 15),
849             "26:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
850             "38:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
851             "41:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
852             "49:24: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 24),
853             "49:45: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 45),
854             "57:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
855             "68:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
856             "68:26: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 26),
857             "75:34: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 34),
858             "75:47: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 47),
859             "82:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
860             "102:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
861         };
862         verifyWithInlineConfigParser(
863                 getPath("InputRightCurlyCaseBlocksInSwitchStatementAlone2.java"), expected);
864     }
865 
866     @Test
867     public void testCaseBlocksInSwitchStatementAloneOrSingleLine() throws Exception {
868         final String[] expected = {
869             "33:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
870             "44:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
871             "73:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
872             "78:51: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 51),
873         };
874         verifyWithInlineConfigParser(
875                 getPath("InputRightCurlyCaseBlocksInSwitchStatementAloneOrSingleline.java"),
876                 expected);
877     }
878 
879     @Test
880     public void testCaseBlocksInSwitchStatementAloneOrSingle2() throws Exception {
881         final String[] expected = {
882             "18:15: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 15),
883             "27:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
884             "39:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
885             "42:15: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 15),
886             "50:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
887             "71:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
888             "80:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
889             "100:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
890         };
891         verifyWithInlineConfigParser(
892                 getPath("InputRightCurlyCaseBlocksInSwitchStatementAloneOrSingleline2.java"),
893                 expected);
894     }
895 
896     @Test
897     public void testCaseBlocksInSwitchStatementSame() throws Exception {
898         final String[] expected = {
899             "33:16: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 16),
900             "44:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
901             "73:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
902             "78:51: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 51),
903             "106:23: " + getCheckMessage(MSG_KEY_LINE_BREAK_BEFORE, "}", 23),
904         };
905         verifyWithInlineConfigParser(
906                 getPath("InputRightCurlyCaseBlocksInSwitchStatementSame.java"), expected);
907     }
908 
909     @Test
910     public void testCaseBlocksInSwitchStatementSame2() throws Exception {
911         final String[] expected = {
912             "18:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
913             "27:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
914             "39:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
915             "42:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
916             "50:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
917             "70:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
918             "77:34: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 34),
919             "77:47: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 47),
920             "85:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
921             "103:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
922         };
923         verifyWithInlineConfigParser(
924                 getPath("InputRightCurlyCaseBlocksInSwitchStatementSame2.java"), expected);
925     }
926 
927     @Test
928     public void testCaseBlocksWithSwitchRuleAlone() throws Exception {
929         final String[] expected = {
930             "32:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
931             "44:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
932             "45:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
933             "56:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
934             "69:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
935             "74:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
936             "83:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
937             "83:36: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 36),
938             "93:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
939             "94:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
940         };
941         verifyWithInlineConfigParser(
942                 getPath("InputRightCurlyCaseBlocksWithSwitchRuleAlone.java"),
943                 expected);
944     }
945 
946     @Test
947     public void testCaseBlocksWithSwitchRuleAloneOrSingleLine() throws Exception {
948 
949         final String[] expected = {
950             "27:19: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 19),
951             "41:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
952             "53:23: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 23),
953             "54:27: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 27),
954             "64:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
955             "77:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
956             "82:46: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 46),
957             "91:13: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 13),
958             "102:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
959         };
960         final String fileName = "InputRightCurlyCaseBlocksWithSwitchRuleAloneOrSingleline.java";
961         verifyWithInlineConfigParser(getPath(fileName), expected);
962     }
963 
964     @Test
965     public void testCaseBlocksWithSwitchExpressionAlone() throws Exception {
966         final String[] expected = {
967             "63:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
968             "86:42: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 42),
969         };
970         final String fileName = "InputRightCurlyCaseBlocksWithSwitchExpressionAlone.java";
971         verifyWithInlineConfigParser(getPath(fileName), expected);
972     }
973 
974     @Test
975     public void testCaseBlocksWithSwitchExpressionAloneOrSingleLine() throws Exception {
976         final String[] expected = {
977             "63:31: " + getCheckMessage(MSG_KEY_LINE_ALONE, "}", 31),
978         };
979         final String fileName =
980                 "InputRightCurlyCaseBlocksWithSwitchExpressionAloneOrSingleline.java";
981         verifyWithInlineConfigParser(getPath(fileName), expected);
982     }
983 }