diff --git a/pom.xml b/pom.xml
index 73e77e86f..31c99a151 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1668,8 +1668,8 @@
.*.checks.SuppressWarningsHolder
- 75
- 93
+ 86
+ 97
diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolder.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolder.java
index 8b51b1734..1de978d83 100644
--- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolder.java
+++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolder.java
@@ -151,8 +151,8 @@ public class SuppressWarningsHolder
for (Entry entry : entries) {
final boolean afterStart =
entry.getFirstLine() < line
- || entry.getFirstLine() == line && entry
- .getFirstColumn() <= column;
+ || entry.getFirstLine() == line
+ && entry.getFirstColumn() <= column;
final boolean beforeEnd =
entry.getLastLine() > line
|| entry.getLastLine() == line && entry
@@ -306,42 +306,36 @@ public class SuppressWarningsHolder
private static DetailAST getAnnotationTarget(DetailAST ast) {
DetailAST targetAST = null;
DetailAST parentAST = ast.getParent();
- if (parentAST != null) {
- switch (parentAST.getType()) {
- case TokenTypes.MODIFIERS:
- case TokenTypes.ANNOTATIONS:
- parentAST = parentAST.getParent();
- if (parentAST != null) {
- switch (parentAST.getType()) {
- case TokenTypes.ANNOTATION_DEF:
- case TokenTypes.PACKAGE_DEF:
- case TokenTypes.CLASS_DEF:
- case TokenTypes.INTERFACE_DEF:
- case TokenTypes.ENUM_DEF:
- case TokenTypes.ENUM_CONSTANT_DEF:
- case TokenTypes.CTOR_DEF:
- case TokenTypes.METHOD_DEF:
- case TokenTypes.PARAMETER_DEF:
- case TokenTypes.VARIABLE_DEF:
- case TokenTypes.ANNOTATION_FIELD_DEF:
- case TokenTypes.TYPE:
- case TokenTypes.LITERAL_NEW:
- case TokenTypes.LITERAL_THROWS:
- case TokenTypes.TYPE_ARGUMENT:
- case TokenTypes.IMPLEMENTS_CLAUSE:
- case TokenTypes.DOT:
- targetAST = parentAST;
- break;
-
- default:
- // unexpected target type
- }
- }
- break;
-
- default:
- // unexpected container type
- }
+ switch (parentAST.getType()) {
+ case TokenTypes.MODIFIERS:
+ case TokenTypes.ANNOTATIONS:
+ parentAST = parentAST.getParent();
+ switch (parentAST.getType()) {
+ case TokenTypes.ANNOTATION_DEF:
+ case TokenTypes.PACKAGE_DEF:
+ case TokenTypes.CLASS_DEF:
+ case TokenTypes.INTERFACE_DEF:
+ case TokenTypes.ENUM_DEF:
+ case TokenTypes.ENUM_CONSTANT_DEF:
+ case TokenTypes.CTOR_DEF:
+ case TokenTypes.METHOD_DEF:
+ case TokenTypes.PARAMETER_DEF:
+ case TokenTypes.VARIABLE_DEF:
+ case TokenTypes.ANNOTATION_FIELD_DEF:
+ case TokenTypes.TYPE:
+ case TokenTypes.LITERAL_NEW:
+ case TokenTypes.LITERAL_THROWS:
+ case TokenTypes.TYPE_ARGUMENT:
+ case TokenTypes.IMPLEMENTS_CLAUSE:
+ case TokenTypes.DOT:
+ targetAST = parentAST;
+ break;
+ default:
+ // unexpected target type
+ }
+ break;
+ default:
+ // unexpected container type
}
return targetAST;
}
diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolderTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolderTest.java
index e9d488861..bf0d14ec6 100644
--- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolderTest.java
+++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/SuppressWarningsHolderTest.java
@@ -20,16 +20,31 @@
package com.puppycrawl.tools.checkstyle.checks;
import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
+import static org.powermock.api.mockito.PowerMockito.mock;
import java.io.File;
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.lang3.ArrayUtils;
import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
import com.puppycrawl.tools.checkstyle.BaseCheckTestSupport;
import com.puppycrawl.tools.checkstyle.api.Configuration;
import com.puppycrawl.tools.checkstyle.api.TokenTypes;
+@RunWith(PowerMockRunner.class)
+@PrepareForTest({ SuppressWarningsHolder.class, SuppressWarningsHolderTest.class })
public class SuppressWarningsHolderTest extends BaseCheckTestSupport {
@Test
@@ -57,4 +72,73 @@ public class SuppressWarningsHolderTest extends BaseCheckTestSupport {
verify(checkConfig, new File("src/test/resources-noncompilable/com/puppycrawl/tools/"
+ "checkstyle/InputSuppressWarningsHolder.java").getCanonicalPath(), expected);
}
+
+ @Test
+ public void testGetDefaultAlias() {
+ assertEquals("somename", SuppressWarningsHolder.getDefaultAlias("SomeName"));
+ assertEquals("somename", SuppressWarningsHolder.getDefaultAlias("SomeNameCheck"));
+ }
+
+ @Test
+ public void testSetAliasListEmpty() {
+ SuppressWarningsHolder holder = new SuppressWarningsHolder();
+ holder.setAliasList("");
+ }
+
+ @Test
+ public void testSetAliasListCorrect() {
+ SuppressWarningsHolder holder = new SuppressWarningsHolder();
+ holder.setAliasList("alias=value");
+ assertEquals("value", SuppressWarningsHolder.getAlias("alias"));
+ }
+
+ @Test
+ public void testSetAliasListWrong() {
+ SuppressWarningsHolder holder = new SuppressWarningsHolder();
+
+ try {
+ holder.setAliasList("SomeAlias");
+ fail("Exception expected");
+ }
+ catch (ConversionException ex) {
+ assertEquals("'=' expected in alias list item: SomeAlias", ex.getMessage());
+ }
+
+ }
+
+ @Test
+ public void testIsSuppressed() throws Exception {
+ Class> entry = Class
+ .forName("com.puppycrawl.tools.checkstyle.checks.SuppressWarningsHolder$Entry");
+ Constructor> entryConstr = entry.getDeclaredConstructor(String.class, int.class,
+ int.class, int.class, int.class);
+ entryConstr.setAccessible(true);
+
+ Object entryInstance = entryConstr.newInstance("MockEntry", 100, 100, 350, 350);
+
+ List