Home / Class/ SimpleMainTests Class — spring-boot Architecture

SimpleMainTests Class — spring-boot Architecture

Architecture documentation for the SimpleMainTests class in SimpleMainTests.java from the spring-boot codebase.

Entity Profile

Source Code

core/spring-boot/src/test/java/org/springframework/boot/SimpleMainTests.java lines 40–86

@Configuration(proxyBeanMethods = false)
@ExtendWith(OutputCaptureExtension.class)
class SimpleMainTests {

	private static final String SPRING_STARTUP = "Started SpringApplication in";

	@Test
	void emptyApplicationContext() {
		assertThatIllegalStateException().isThrownBy(() -> SpringApplication.main(getArgs()));
	}

	@Test
	void basePackageScan(CapturedOutput output) throws Exception {
		SpringApplication.main(getArgs(ClassUtils.getPackageName(getClass()) + ".sampleconfig"));
		assertThat(output).contains(SPRING_STARTUP);
	}

	@Test
	void configClassContext(CapturedOutput output) throws Exception {
		SpringApplication.main(getArgs(getClass().getName()));
		assertThat(output).contains(SPRING_STARTUP);
	}

	@Test
	@WithSampleBeansXmlResource
	void xmlContext(CapturedOutput output) throws Exception {
		SpringApplication.main(getArgs("org/springframework/boot/sample-beans.xml"));
		assertThat(output).contains(SPRING_STARTUP);
	}

	@Test
	@WithSampleBeansXmlResource
	void mixedContext(CapturedOutput output) throws Exception {
		SpringApplication.main(getArgs(getClass().getName(), "org/springframework/boot/sample-beans.xml"));
		assertThat(output).contains(SPRING_STARTUP);
	}

	private String[] getArgs(String... args) {
		List<String> list = new ArrayList<>(Arrays.asList("--spring.main.web-application-type=none",
				"--spring.main.show-banner=OFF", "--spring.main.register-shutdownHook=false"));
		if (args.length > 0) {
			list.add("--spring.main.sources=" + StringUtils.arrayToCommaDelimitedString(args));
		}
		return StringUtils.toStringArray(list);
	}

}

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free