TestOnly inspection should validate classes

This commit is contained in:
Alexander Zolotov
2015-09-14 14:47:48 +03:00
parent 1eeeb4c02a
commit 74d1b638f6
7 changed files with 182 additions and 29 deletions
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="UTF-8"?>
<problems>
<problem>
<file>B.java</file>
<line>10</line>
<package>&lt;default&gt;</package>
<description>Test-only class is referenced in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>10</line>
<package>&lt;default&gt;</package>
<description>Test-only class is referenced in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>11</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>13</line>
<package>&lt;default&gt;</package>
<description>Test-only class is referenced in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>13</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>14</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>15</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>16</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>18</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>19</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
<problem>
<file>B.java</file>
<line>20</line>
<package>&lt;default&gt;</package>
<description>Test-only method is called in production code</description>
</problem>
</problems>
@@ -0,0 +1,22 @@
import packageA.A;
import java.util.ArrayList;
import static packageA.A.staticImportedField;
import static packageA.A.staticImportedMethod;
public class B {
public void foo() {
Iterable<A> iterable = new ArrayList<A>();
System.out.println(iterable.iterator().next().field);
A a = new A();
a.method();
A.staticMethod();
staticImportedMethod();
System.out.println(a.field);
System.out.println(A.staticField);
System.out.println(staticImportedField);
}
}
@@ -0,0 +1,14 @@
package packageA;
@org.jetbrains.annotations.TestOnly
public class A {
public String field;
public static String staticField;
public static String staticImportedField;
public A() {}
public void method() {}
public static void staticMethod() {}
public static void staticImportedMethod() {}
}