ExitCodeGeneratorsTests Class — spring-boot Architecture
Architecture documentation for the ExitCodeGeneratorsTests class in ExitCodeGeneratorsTests.java from the spring-boot codebase.
Entity Profile
Source Code
core/spring-boot/src/test/java/org/springframework/boot/ExitCodeGeneratorsTests.java lines 37–120
class ExitCodeGeneratorsTests {
@Test
@SuppressWarnings("NullAway") // Test null check
void addAllWhenGeneratorsIsNullShouldThrowException() {
assertThatIllegalArgumentException().isThrownBy(() -> {
List<ExitCodeGenerator> generators = null;
new ExitCodeGenerators().addAll(generators);
}).withMessageContaining("'generators' must not be null");
}
@Test
@SuppressWarnings("NullAway") // Test null check
void addWhenGeneratorIsNullShouldThrowException() {
assertThatIllegalArgumentException().isThrownBy(() -> new ExitCodeGenerators().add(null))
.withMessageContaining("'generator' must not be null");
}
@Test
void getExitCodeWhenNoGeneratorsShouldReturnZero() {
assertThat(new ExitCodeGenerators().getExitCode()).isZero();
}
@Test
void getExitCodeWhenGeneratorThrowsShouldReturnOne() {
ExitCodeGenerator generator = mock(ExitCodeGenerator.class);
given(generator.getExitCode()).willThrow(new IllegalStateException());
ExitCodeGenerators generators = new ExitCodeGenerators();
generators.add(generator);
assertThat(generators.getExitCode()).isOne();
}
@Test
void getExitCodeWithUnorderedGeneratorsReturnsFirstNonZeroExitCode() {
ExitCodeGenerators generators = new ExitCodeGenerators();
generators.add(mockGenerator(0));
generators.add(mockGenerator(3));
generators.add(mockGenerator(2));
assertThat(generators.getExitCode()).isEqualTo(3);
}
@Test
void getExitCodeWhenUsingExitCodeExceptionMapperShouldCallMapper() {
ExitCodeGenerators generators = new ExitCodeGenerators();
Exception e = new IOException();
generators.add(e, mockMapper(IllegalStateException.class, 1));
generators.add(e, mockMapper(IOException.class, 2));
generators.add(e, mockMapper(UnsupportedOperationException.class, 3));
assertThat(generators.getExitCode()).isEqualTo(2);
}
@Test
void getExitCodeWithOrderedGeneratorsReturnsFirstNonZeroExitCode() {
ExitCodeGenerators generators = new ExitCodeGenerators();
generators.add(orderedMockGenerator(0, 1));
generators.add(orderedMockGenerator(1, 3));
generators.add(orderedMockGenerator(2, 2));
generators.add(mockGenerator(3));
assertThat(generators.getExitCode()).isEqualTo(2);
}
private ExitCodeGenerator mockGenerator(int exitCode) {
ExitCodeGenerator generator = mock(ExitCodeGenerator.class);
given(generator.getExitCode()).willReturn(exitCode);
return generator;
}
private ExitCodeGenerator orderedMockGenerator(int exitCode, int order) {
ExitCodeGenerator generator = mock(ExitCodeGenerator.class, withSettings().extraInterfaces(Ordered.class));
given(generator.getExitCode()).willReturn(exitCode);
given(((Ordered) generator).getOrder()).willReturn(order);
return generator;
}
private ExitCodeExceptionMapper mockMapper(Class<?> exceptionType, int exitCode) {
return (exception) -> {
if (exceptionType.isInstance(exception)) {
return exitCode;
}
return 0;
};
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free