MethodBasedMetadataGenerationTests Class — spring-boot Architecture
Architecture documentation for the MethodBasedMetadataGenerationTests class in MethodBasedMetadataGenerationTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
configuration-metadata/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/MethodBasedMetadataGenerationTests.java lines 41–139
class MethodBasedMetadataGenerationTests extends AbstractMetadataGenerationTests {
@Test
void publicMethodConfig() {
methodConfig(PublicMethodConfig.class, PublicMethodConfig.Foo.class);
}
@Test
void protectedMethodConfig() {
methodConfig(ProtectedMethodConfig.class, ProtectedMethodConfig.Foo.class);
}
@Test
void packagePrivateMethodConfig() {
methodConfig(PackagePrivateMethodConfig.class, PackagePrivateMethodConfig.Foo.class);
}
private void methodConfig(Class<?> config, Class<?> properties) {
ConfigurationMetadata metadata = compile(config);
assertThat(metadata).has(Metadata.withGroup("foo").fromSource(config));
assertThat(metadata).has(Metadata.withProperty("foo.name", String.class).fromSource(properties));
assertThat(metadata)
.has(Metadata.withProperty("foo.flag", Boolean.class).withDefaultValue(false).fromSource(properties));
}
@Test
void privateMethodConfig() {
ConfigurationMetadata metadata = compile(PrivateMethodConfig.class);
assertThat(metadata).isNull();
}
@Test
void invalidMethodConfig() {
ConfigurationMetadata metadata = compile(InvalidMethodConfig.class);
assertThat(metadata)
.has(Metadata.withProperty("something.name", String.class).fromSource(InvalidMethodConfig.class));
assertThat(metadata).isNotEqualTo(Metadata.withProperty("invalid.name"));
}
@Test
void methodAndClassConfig() {
ConfigurationMetadata metadata = compile(MethodAndClassConfig.class);
assertThat(metadata)
.has(Metadata.withProperty("conflict.name", String.class).fromSource(MethodAndClassConfig.Foo.class));
assertThat(metadata).has(Metadata.withProperty("conflict.flag", Boolean.class)
.withDefaultValue(false)
.fromSource(MethodAndClassConfig.Foo.class));
assertThat(metadata)
.has(Metadata.withProperty("conflict.value", String.class).fromSource(MethodAndClassConfig.class));
}
@Test
void singleConstructorMethodConfig() {
ConfigurationMetadata metadata = compile(SingleConstructorMethodConfig.class);
assertThat(metadata).doesNotHave(Metadata.withProperty("foo.my-service", Object.class)
.fromSource(SingleConstructorMethodConfig.Foo.class));
assertThat(metadata)
.has(Metadata.withProperty("foo.name", String.class).fromSource(SingleConstructorMethodConfig.Foo.class));
assertThat(metadata).has(Metadata.withProperty("foo.flag", Boolean.class)
.withDefaultValue(false)
.fromSource(SingleConstructorMethodConfig.Foo.class));
}
@Test
void emptyTypeMethodConfig() {
ConfigurationMetadata metadata = compile(EmptyTypeMethodConfig.class);
assertThat(metadata).isNotEqualTo(Metadata.withProperty("something.foo"));
}
@Test
void deprecatedMethodConfig() {
Class<DeprecatedMethodConfig> type = DeprecatedMethodConfig.class;
ConfigurationMetadata metadata = compile(type);
assertThat(metadata).has(Metadata.withGroup("foo").fromSource(type));
assertThat(metadata).has(Metadata.withProperty("foo.name", String.class)
.fromSource(DeprecatedMethodConfig.Foo.class)
.withDeprecation());
assertThat(metadata).has(Metadata.withProperty("foo.flag", Boolean.class)
.withDefaultValue(false)
.fromSource(DeprecatedMethodConfig.Foo.class)
.withDeprecation());
}
@Test
@SuppressWarnings("deprecation")
void deprecatedMethodConfigOnClass() {
Class<?> type = org.springframework.boot.configurationsample.method.DeprecatedClassMethodConfig.class;
ConfigurationMetadata metadata = compile(type);
assertThat(metadata).has(Metadata.withGroup("foo").fromSource(type));
assertThat(metadata).has(Metadata.withProperty("foo.name", String.class)
.fromSource(org.springframework.boot.configurationsample.method.DeprecatedClassMethodConfig.Foo.class)
.withDeprecation());
assertThat(metadata).has(Metadata.withProperty("foo.flag", Boolean.class)
.withDefaultValue(false)
.fromSource(org.springframework.boot.configurationsample.method.DeprecatedClassMethodConfig.Foo.class)
.withDeprecation());
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free