//////////////////////////////////////////////////////////////////////////////// // checkstyle: Checks Java source code for adherence to a set of rules. // Copyright (C) 2001-2017 the original author or authors. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either // version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // Lesser General Public License for more details. // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA //////////////////////////////////////////////////////////////////////////////// package com.github.sevntu.checkstyle.checks.annotation; import static com.github.sevntu.checkstyle.checks.annotation.RequiredParameterForAnnotationCheck.MSG_KEY; import org.junit.Assert; import org.junit.Test; import com.github.sevntu.checkstyle.BaseCheckTestSupport; import com.puppycrawl.tools.checkstyle.DefaultConfiguration; public class RequiredParameterForAnnotationCheckTest extends BaseCheckTestSupport { @Test public void testValidateRequiredParameter() throws Exception { final DefaultConfiguration checkConfig = createCheckConfig(RequiredParameterForAnnotationCheck.class); checkConfig.addAttribute("annotationName", "testAnnotation1"); checkConfig.addAttribute("requiredParameters", "firstParameter"); final String[] expected = { "6:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter"), "33:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter"), "66:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter"), "87:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter"), "114:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter"), }; verify(checkConfig, getPath("InputRequiredParameterForAnnotationCheck.java"), expected); } @Test public void testMultipleProperties1() throws Exception { final DefaultConfiguration checkConfig = createCheckConfig(RequiredParameterForAnnotationCheck.class); checkConfig.addAttribute("annotationName", "testAnnotation1"); checkConfig.addAttribute("requiredParameters", "firstParameter,secondParameter,thirdParameter"); final String[] expected = { "6:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter, thirdParameter"), "10:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "thirdParameter"), "18:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter, thirdParameter"), "33:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter, thirdParameter"), "38:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "thirdParameter"), "48:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter, thirdParameter"), "66:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter, thirdParameter"), "69:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "thirdParameter"), "75:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter, thirdParameter"), "87:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter, thirdParameter"), "91:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "thirdParameter"), "99:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter, thirdParameter"), "114:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter, thirdParameter"), "118:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "thirdParameter"), "126:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter, thirdParameter"), }; verify(checkConfig, getPath("InputRequiredParameterForAnnotationCheck.java"), expected); } @Test public void testMultipleProperties2() throws Exception { final DefaultConfiguration checkConfig = createCheckConfig(RequiredParameterForAnnotationCheck.class); checkConfig.addAttribute("annotationName", "testAnnotation1"); checkConfig.addAttribute("requiredParameters", "firstParameter,secondParameter"); final String[] expected = { "6:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter"), "18:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter"), "33:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter"), "48:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter"), "66:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter"), "75:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter"), "87:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter"), "99:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter"), "114:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "firstParameter, secondParameter"), "126:4: " + getCheckMessage(MSG_KEY, "testAnnotation1", "secondParameter"), }; verify(checkConfig, getPath("InputRequiredParameterForAnnotationCheck.java"), expected); } @Test public void testForAnnotationWithCanonicalName() throws Exception { final DefaultConfiguration checkConfig = createCheckConfig(RequiredParameterForAnnotationCheck.class); checkConfig.addAttribute("annotationName", "com.github.sevntu.checkstyle.checks" + ".annotation.InputRequiredParameterForAnnotationCheck.testAnnotation2"); checkConfig.addAttribute("requiredParameters", "par1"); final String[] expected = { "27:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1"), "59:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1"), "82:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1"), "108:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1"), "135:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1"), }; verify(checkConfig, getPath("InputRequiredParameterForAnnotationCheck.java"), expected); } @Test public void testMultipleParametersForAnnotationWithCanonicalName() throws Exception { final DefaultConfiguration checkConfig = createCheckConfig(RequiredParameterForAnnotationCheck.class); checkConfig.addAttribute("annotationName", "com.github.sevntu.checkstyle.checks" + ".annotation.InputRequiredParameterForAnnotationCheck.testAnnotation2"); checkConfig.addAttribute("requiredParameters", "par1,par2"); final String[] expected = { "27:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1, par2"), "59:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1, par2"), "82:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1, par2"), "108:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1, par2"), "135:4: " + getCheckMessage(MSG_KEY, "com.github.sevntu.checkstyle.checks.annotation" + ".InputRequiredParameterForAnnotationCheck.testAnnotation2", "par1, par2"), }; verify(checkConfig, getPath("InputRequiredParameterForAnnotationCheck.java"), expected); } @Test public void temporaryTestForCallGetRequiredTokens() { final RequiredParameterForAnnotationCheck check = new RequiredParameterForAnnotationCheck(); final int[] tokens = check.getRequiredTokens(); Assert.assertNotNull(tokens); } }