Environment
SonarLint plugin 4.14.1.27745
InteliJ IDEA 2020.3.2
Problem
S2699 is raised when test gets runnable with assertion from another class in another file.
Example to reproduce with JUnit5
file 1:
class AssertionsInTest {
@Test
void compliantTest1() {
getRunnableWithAssertion();
}
@Test
void compliantTest2() {
LocalRunnableSupplier.getRunnableWithAssertion();
}
@Test
void compliantTest3() {
LocalFileRunnableSupplier.getRunnableWithAssertion();
}
@Test
void nonCompliantTest() {
ExternalRunnableSupplier.getRunnableWithAssertion();
}
static Runnable getRunnableWithAssertion() {
return () -> Assertions.assertTrue(true);
}
public static class LocalRunnableSupplier {
public static Runnable getRunnableWithAssertion() {
return () -> Assertions.assertTrue(true);
}
}
}
class LocalFileRunnableSupplier {
public static Runnable getRunnableWithAssertion() {
return () -> Assertions.assertTrue(true);
}
}
file 2:
public class ExternalRunnableSupplier {
public static Runnable getRunnableWithAssertion() {
return () -> Assertions.assertTrue(true);
}
}