Home / Class/ MetadataStoreTests Class — spring-boot Architecture

MetadataStoreTests Class — spring-boot Architecture

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

Entity Profile

Source Code

configuration-metadata/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/MetadataStoreTests.java lines 37–106

class MetadataStoreTests {

	@TempDir
	File tempDir;

	private final ProcessingEnvironment environment = mock(ProcessingEnvironment.class);

	private final MetadataStore metadataStore = new MetadataStore(this.environment, mock(TypeUtils.class));

	@Test
	void additionalMetadataIsLocatedInMavenBuild() throws IOException {
		File app = new File(this.tempDir, "app");
		File classesLocation = new File(app, "target/classes");
		File metaInf = new File(classesLocation, "META-INF");
		metaInf.mkdirs();
		File additionalMetadata = new File(metaInf, "additional-spring-configuration-metadata.json");
		additionalMetadata.createNewFile();
		assertThat(this.metadataStore.locateAdditionalMetadataFile(
				new File(classesLocation, "META-INF/additional-spring-configuration-metadata.json"),
				"META-INF/additional-spring-configuration-metadata.json"))
			.isEqualTo(additionalMetadata);
	}

	@Test
	void additionalMetadataIsLocatedInGradle3Build() throws IOException {
		File app = new File(this.tempDir, "app");
		File classesLocation = new File(app, "build/classes/main");
		File resourcesLocation = new File(app, "build/resources/main");
		File metaInf = new File(resourcesLocation, "META-INF");
		metaInf.mkdirs();
		File additionalMetadata = new File(metaInf, "additional-spring-configuration-metadata.json");
		additionalMetadata.createNewFile();
		assertThat(this.metadataStore.locateAdditionalMetadataFile(
				new File(classesLocation, "META-INF/additional-spring-configuration-metadata.json"),
				"META-INF/additional-spring-configuration-metadata.json"))
			.isEqualTo(additionalMetadata);
	}

	@Test
	void additionalMetadataIsLocatedInGradle4Build() throws IOException {
		File app = new File(this.tempDir, "app");
		File classesLocation = new File(app, "build/classes/java/main");
		File resourcesLocation = new File(app, "build/resources/main");
		File metaInf = new File(resourcesLocation, "META-INF");
		metaInf.mkdirs();
		File additionalMetadata = new File(metaInf, "additional-spring-configuration-metadata.json");
		additionalMetadata.createNewFile();
		assertThat(this.metadataStore.locateAdditionalMetadataFile(
				new File(classesLocation, "META-INF/additional-spring-configuration-metadata.json"),
				"META-INF/additional-spring-configuration-metadata.json"))
			.isEqualTo(additionalMetadata);
	}

	@Test
	void additionalMetadataIsLocatedUsingLocationsOption() throws IOException {
		File app = new File(this.tempDir, "app");
		File location = new File(app, "src/main/resources");
		File metaInf = new File(location, "META-INF");
		metaInf.mkdirs();
		File additionalMetadata = new File(metaInf, "additional-spring-configuration-metadata.json");
		additionalMetadata.createNewFile();
		given(this.environment.getOptions()).willReturn(
				Collections.singletonMap(ConfigurationMetadataAnnotationProcessor.ADDITIONAL_METADATA_LOCATIONS_OPTION,
						location.getAbsolutePath()));
		assertThat(this.metadataStore.locateAdditionalMetadataFile(new File(app, "foo"),
				"META-INF/additional-spring-configuration-metadata.json"))
			.isEqualTo(additionalMetadata);
	}

}

Analyze Your Own Codebase

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

Try Supermodel Free