1313import static java .util .concurrent .Executors .newSingleThreadExecutor ;
1414import static org .assertj .core .api .Assertions .assertThat ;
1515import static org .junit .jupiter .api .AssertionFailureBuilder .assertionFailure ;
16+ import static org .junit .jupiter .api .Assertions .*;
1617import static org .junit .jupiter .api .Assertions .assertLinesMatch ;
1718
1819import java .util .Arrays ;
1920import java .util .List ;
2021import java .util .concurrent .ExecutionException ;
2122import java .util .concurrent .ExecutorService ;
2223
24+ import org .junit .platform .commons .PreconditionViolationException ;
2325import org .opentest4j .AssertionFailedError ;
2426
2527class AssertionFailureBuilderTest {
@@ -89,6 +91,13 @@ void canTrimToEmptyStacktrace() throws ExecutionException, InterruptedException
8991 }
9092 }
9193
94+ @ Test
95+ void mustRetainNonNegativeNumberOfFrames () {
96+ var exception = assertThrows (PreconditionViolationException .class , //
97+ () -> assertionFailure ().trimStacktrace (Assertions .class , -1 ));
98+ assertThat (exception ).hasMessage ("retain must have a non-negative value" );
99+ }
100+
92101 private static void assertStackTraceMatch (AssertionFailedError assertionFailedError , String expectedLines ) {
93102 List <String > stackStraceAsLines = Arrays .stream (assertionFailedError .getStackTrace ()) //
94103 .map (StackTraceElement ::toString ) //
@@ -101,8 +110,8 @@ static AssertionFailedError fail() {
101110 return assertionFailure ().build ();
102111 }
103112
104- static AssertionFailedError failWithTrimmedStacktrace (Class <?> to , int depth ) {
105- return AssertionFailureBuilder .assertionFailure ().trimStacktrace (to , depth ).build ();
113+ static AssertionFailedError failWithTrimmedStacktrace (Class <?> to , int retain ) {
114+ return AssertionFailureBuilder .assertionFailure ().trimStacktrace (to , retain ).build ();
106115 }
107116
108117 }
0 commit comments