Skip to content

Commit 019a62a

Browse files
committed
Add precondition test
1 parent 3a91561 commit 019a62a

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

junit-jupiter-api/src/main/java/org/junit/jupiter/api/AssertionFailureBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ public AssertionFailureBuilder includeValuesInMessage(boolean includeValuesInMes
141141
* Set target and depth for trimming stacktrace.
142142
*
143143
* <p>Removes all but {@code retain - 1} frames before the last frame from
144-
* {@code target}. If {@code retain} is zero, all frames from
144+
* {@code target}. If {@code retain} is zero, all frames including
145145
* {@code target} are trimmed.
146146
*
147147
* @param target class to trim from the stacktrace

jupiter-tests/src/test/java/org/junit/jupiter/api/AssertionFailureBuilderTest.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@
1313
import static java.util.concurrent.Executors.newSingleThreadExecutor;
1414
import static org.assertj.core.api.Assertions.assertThat;
1515
import static org.junit.jupiter.api.AssertionFailureBuilder.assertionFailure;
16+
import static org.junit.jupiter.api.Assertions.*;
1617
import static org.junit.jupiter.api.Assertions.assertLinesMatch;
1718

1819
import java.util.Arrays;
1920
import java.util.List;
2021
import java.util.concurrent.ExecutionException;
2122
import java.util.concurrent.ExecutorService;
2223

24+
import org.junit.platform.commons.PreconditionViolationException;
2325
import org.opentest4j.AssertionFailedError;
2426

2527
class 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

Comments
 (0)