@ -10,9 +10,7 @@
package endtoend.java.infer ;
import static org.hamcrest.MatcherAssert.assertThat ;
import static utils.matchers.ResultContainsErrorInMethod.contains ;
import static utils.matchers.ResultContainsLineNumbers.containsLines ;
import static utils.matchers.ResultContainsOnlyTheseErrors.containsOnly ;
import static utils.matchers.ResultContainsExactly.containsExactly ;
import org.junit.BeforeClass ;
import org.junit.Test ;
@ -24,7 +22,7 @@ import utils.InferResults;
public class DivideByZeroTest {
public static final String DivideByZero =
public static final String SOURCE_FILE =
"infer/tests/codetoanalyze/java/infer/DivideByZero.java" ;
public static final String DIVIDE_BY_ZERO = "DIVIDE_BY_ZERO" ;
@ -33,74 +31,22 @@ public class DivideByZeroTest {
@BeforeClass
public static void loadResults ( ) throws InterruptedException , IOException {
inferResults = InferResults . loadInferResults ( DivideByZeroTest . class , DivideByZero ) ;
inferResults = InferResults . loadInferResults ( DivideByZeroTest . class , SOURCE_FILE ) ;
}
@Test
public void whenInferRunsOnDivideByZeroLocalThenDivideByZeroErrorFound ( )
throws InterruptedException , IOException , InferException {
assertThat (
"Results should contain divide by zero error." , inferResults ,
contains (
DIVIDE_BY_ZERO ,
DivideByZero ,
"divByZeroLocal"
)
) ;
}
@Test
public void whenInferRunsOnCallDivideByZeroInterProcThenDivideByZeroErrorFound ( )
throws InterruptedException , IOException , InferException {
assertThat (
"Results should contain divide by zero error." ,
inferResults ,
contains (
DIVIDE_BY_ZERO ,
DivideByZero ,
"callDivideByZeroInterProc"
)
) ;
}
@Test
public void whenInferRunsOnDivideByZeroWithStaticFieldThenDivideByZeroErrorFound ( )
throws InterruptedException , IOException , InferException {
assertThat (
"Results should contain divide by zero error." ,
inferResults ,
contains (
DIVIDE_BY_ZERO ,
DivideByZero ,
"divideByZeroWithStaticField"
)
) ;
}
@Test
public void whenInferRunsOnDivideByZeroThenTheLineNumbersAreReportedCorr ( )
throws InterruptedException , IOException , InferException {
int [ ] lines = { 28 } ;
assertThat (
"Result should contain correct line numbers." ,
inferResults ,
containsLines ( lines ) ) ;
}
@Test
public void whenInferRunsOnDivideByZeroThenOnlyTheExpectedErrorsAreFound ( )
throws InterruptedException , IOException , InferException {
String [ ] expectedMethods = {
"divByZeroLocal" ,
"callDivideByZeroInterProc" ,
"divideByZeroWithStaticField"
public void matchErrors ( )
throws IOException , InterruptedException , InferException {
String [ ] methods = {
"divByZeroLocal" ,
"callDivideByZeroInterProc" ,
"divideByZeroWithStaticField" ,
} ;
assertThat (
"No unexpected errors should be found" , inferResults ,
containsOnly (
DIVIDE_BY_ZERO ,
DivideByZero ,
expectedMethods ) ) ;
assertThat ( "Results should contain " + DIVIDE_BY_ZERO ,
inferResults ,
containsExactly ( DIVIDE_BY_ZERO ,
SOURCE_FILE ,
methods ) ) ;
}
}