[java] Refactor JUnit specific rules that use ancestor axis
This commit is contained in:
@ -1436,13 +1436,7 @@ This rule detects JUnit assertions in object equality. These assertions should b
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//PrimaryExpression[
|
||||
PrimaryPrefix/Name[@Image = 'assertTrue']
|
||||
][
|
||||
PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name
|
||||
[ends-with(@Image, '.equals')]
|
||||
]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -1453,6 +1447,11 @@ This rule detects JUnit assertions in object equality. These assertions should b
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
//PrimaryExpression[
|
||||
PrimaryPrefix/Name[@Image = 'assertTrue']
|
||||
][
|
||||
PrimarySuffix/Arguments/ArgumentList/Expression/PrimaryExpression/PrimaryPrefix/Name
|
||||
[ends-with(@Image, '.equals')]
|
||||
]
|
||||
]]>
|
||||
</value>
|
||||
@ -1488,14 +1487,7 @@ more specific methods, like assertNull, assertNotNull.
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//PrimaryExpression[
|
||||
PrimaryPrefix/Name[@Image = 'assertTrue' or @Image = 'assertFalse']
|
||||
][
|
||||
PrimarySuffix/Arguments/ArgumentList[
|
||||
Expression/EqualityExpression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral
|
||||
]
|
||||
]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -1506,6 +1498,12 @@ more specific methods, like assertNull, assertNotNull.
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
//PrimaryExpression[
|
||||
PrimaryPrefix/Name[@Image = 'assertTrue' or @Image = 'assertFalse']
|
||||
][
|
||||
PrimarySuffix/Arguments/ArgumentList[
|
||||
Expression/EqualityExpression/PrimaryExpression/PrimaryPrefix/Literal/NullLiteral
|
||||
]
|
||||
]
|
||||
]]>
|
||||
</value>
|
||||
@ -1543,14 +1541,7 @@ by more specific methods, like assertSame, assertNotSame.
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//PrimaryExpression[
|
||||
PrimaryPrefix/Name[@Image = 'assertTrue' or @Image = 'assertFalse']
|
||||
]
|
||||
[
|
||||
PrimarySuffix/Arguments/ArgumentList/Expression/EqualityExpression
|
||||
[count(.//NullLiteral) = 0]
|
||||
]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -1561,6 +1552,12 @@ by more specific methods, like assertSame, assertNotSame.
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
//PrimaryExpression[
|
||||
PrimaryPrefix/Name[@Image = 'assertTrue' or @Image = 'assertFalse']
|
||||
]
|
||||
[
|
||||
PrimarySuffix/Arguments/ArgumentList/Expression/EqualityExpression
|
||||
[count(.//NullLiteral) = 0]
|
||||
]
|
||||
]]>
|
||||
</value>
|
||||
|
@ -1265,14 +1265,7 @@ as:
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//StatementExpression
|
||||
[
|
||||
.//Name[@Image='assertTrue' or @Image='assertFalse']
|
||||
and
|
||||
PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression/UnaryExpressionNotPlusMinus[@Image='!']
|
||||
/PrimaryExpression/PrimaryPrefix
|
||||
]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -1283,6 +1276,12 @@ as:
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
//StatementExpression
|
||||
[
|
||||
.//Name[@Image='assertTrue' or @Image='assertFalse']
|
||||
and
|
||||
PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression/UnaryExpressionNotPlusMinus[@Image='!']
|
||||
/PrimaryExpression/PrimaryPrefix
|
||||
]
|
||||
]]>
|
||||
</value>
|
||||
|
@ -2196,12 +2196,7 @@ Some JUnit framework methods are easy to misspell.
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//MethodDeclaration[(not(@Name = 'setUp')
|
||||
and translate(@Name, 'SETuP', 'setUp') = 'setUp')
|
||||
or (not(@Name = 'tearDown')
|
||||
and translate(@Name, 'TEARdOWN', 'tearDown') = 'tearDown')]
|
||||
[@Arity = 0]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -2212,7 +2207,11 @@ Some JUnit framework methods are easy to misspell.
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
]
|
||||
//MethodDeclaration[(not(@Name = 'setUp')
|
||||
and translate(@Name, 'SETuP', 'setUp') = 'setUp')
|
||||
or (not(@Name = 'tearDown')
|
||||
and translate(@Name, 'TEARdOWN', 'tearDown') = 'tearDown')]
|
||||
[@Arity = 0]
|
||||
]]>
|
||||
</value>
|
||||
</property>
|
||||
@ -2245,10 +2244,7 @@ The suite() method in a JUnit test needs to be both public and static.
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//MethodDeclaration[not(@Static= true()) or not(@Public= true())]
|
||||
[@Name='suite']
|
||||
[@Arity = 0]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -2259,7 +2255,9 @@ The suite() method in a JUnit test needs to be both public and static.
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
]
|
||||
//MethodDeclaration[not(@Static= true()) or not(@Public= true())]
|
||||
[@Name='suite']
|
||||
[@Arity = 0]
|
||||
]]>
|
||||
</value>
|
||||
</property>
|
||||
@ -3279,18 +3277,7 @@ an error, use the fail() method and provide an indication message of why it did.
|
||||
<property name="xpath">
|
||||
<value>
|
||||
<![CDATA[
|
||||
//StatementExpression
|
||||
[
|
||||
PrimaryExpression/PrimaryPrefix/Name[@Image='assertTrue' or @Image='assertFalse']
|
||||
and
|
||||
PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression[
|
||||
PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral
|
||||
or
|
||||
UnaryExpressionNotPlusMinus[@Image='!']
|
||||
/PrimaryExpression/PrimaryPrefix[Literal/BooleanLiteral or Name[count(../../*)=1]]
|
||||
]
|
||||
]
|
||||
[ancestor::ClassOrInterfaceDeclaration[
|
||||
//ClassOrInterfaceDeclaration[
|
||||
pmd-java:typeIs('junit.framework.TestCase')
|
||||
or .//MarkerAnnotation/Name[
|
||||
pmd-java:typeIs('org.junit.Test')
|
||||
@ -3301,6 +3288,16 @@ an error, use the fail() method and provide an indication message of why it did.
|
||||
or pmd-java:typeIs('org.junit.jupiter.params.ParameterizedTest')
|
||||
]
|
||||
]
|
||||
//StatementExpression
|
||||
[
|
||||
PrimaryExpression/PrimaryPrefix/Name[@Image='assertTrue' or @Image='assertFalse']
|
||||
and
|
||||
PrimaryExpression/PrimarySuffix/Arguments/ArgumentList/Expression[
|
||||
PrimaryExpression/PrimaryPrefix/Literal/BooleanLiteral
|
||||
or
|
||||
UnaryExpressionNotPlusMinus[@Image='!']
|
||||
/PrimaryExpression/PrimaryPrefix[Literal/BooleanLiteral or Name[count(../../*)=1]]
|
||||
]
|
||||
]
|
||||
]]>
|
||||
</value>
|
||||
|
Reference in New Issue
Block a user