Browse Source

Add nullability annotations to tests in module/spring-boot-sql

See gh-47263
pull/47637/head
Moritz Halbritter 2 months ago
parent
commit
c629b83146
  1. 4
      module/spring-boot-sql/build.gradle
  2. 37
      module/spring-boot-sql/src/test/java/org/springframework/boot/sql/autoconfigure/init/OnDatabaseInitializationConditionTests.java
  3. 6
      module/spring-boot-sql/src/test/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurerTests.java

4
module/spring-boot-sql/build.gradle

@ -37,3 +37,7 @@ dependencies {
testRuntimeOnly("ch.qos.logback:logback-classic") testRuntimeOnly("ch.qos.logback:logback-classic")
} }
tasks.named("compileTestJava") {
options.nullability.checking = "tests"
}

37
module/spring-boot-sql/src/test/java/org/springframework/boot/sql/autoconfigure/init/OnDatabaseInitializationConditionTests.java

@ -21,6 +21,7 @@ import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.condition.ConditionOutcome; import org.springframework.boot.autoconfigure.condition.ConditionOutcome;
import org.springframework.boot.test.util.TestPropertyValues; import org.springframework.boot.test.util.TestPropertyValues;
import org.springframework.context.annotation.ConditionContext; import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;
import org.springframework.mock.env.MockEnvironment; import org.springframework.mock.env.MockEnvironment;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
@ -37,40 +38,43 @@ class OnDatabaseInitializationConditionTests {
@Test @Test
void getMatchOutcomeWithPropertyNoSetMatches() { void getMatchOutcomeWithPropertyNoSetMatches() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.another", "noise")), null); mockConditionContext(TestPropertyValues.of("test.another", "noise")),
mock(AnnotatedTypeMetadata.class));
assertThat(outcome.isMatch()).isTrue(); assertThat(outcome.isMatch()).isTrue();
} }
@Test @Test
void getMatchOutcomeWithPropertySetToAlwaysMatches() { void getMatchOutcomeWithPropertySetToAlwaysMatches() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.init-mode=always")), null); mockConditionContext(TestPropertyValues.of("test.init-mode=always")),
mock(AnnotatedTypeMetadata.class));
assertThat(outcome.isMatch()).isTrue(); assertThat(outcome.isMatch()).isTrue();
} }
@Test @Test
void getMatchOutcomeWithPropertySetToEmbeddedMatches() { void getMatchOutcomeWithPropertySetToEmbeddedMatches() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.init-mode=embedded")), null); mockConditionContext(TestPropertyValues.of("test.init-mode=embedded")),
mock(AnnotatedTypeMetadata.class));
assertThat(outcome.isMatch()).isTrue(); assertThat(outcome.isMatch()).isTrue();
} }
@Test @Test
void getMatchOutcomeWithPropertySetToNeverDoesNotMatch() { void getMatchOutcomeWithPropertySetToNeverDoesNotMatch() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.init-mode=never")), null); mockConditionContext(TestPropertyValues.of("test.init-mode=never")), mock(AnnotatedTypeMetadata.class));
assertThat(outcome.isMatch()).isFalse(); assertThat(outcome.isMatch()).isFalse();
} }
@Test @Test
void getMatchOutcomeWithPropertySetToEmptyStringIsIgnored() { void getMatchOutcomeWithPropertySetToEmptyStringIsIgnored() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.init-mode")), null); mockConditionContext(TestPropertyValues.of("test.init-mode")), mock(AnnotatedTypeMetadata.class));
assertThat(outcome.isMatch()).isTrue(); assertThat(outcome.isMatch()).isTrue();
} }
@ -78,8 +82,9 @@ class OnDatabaseInitializationConditionTests {
void getMatchOutcomeWithMultiplePropertiesUsesFirstSet() { void getMatchOutcomeWithMultiplePropertiesUsesFirstSet() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode", OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode",
"test.schema-mode", "test.init-schema-mode"); "test.schema-mode", "test.init-schema-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.init-schema-mode=embedded")), null); mockConditionContext(TestPropertyValues.of("test.init-schema-mode=embedded")),
mock(AnnotatedTypeMetadata.class));
assertThat(outcome.isMatch()).isTrue(); assertThat(outcome.isMatch()).isTrue();
assertThat(outcome.getMessage()).isEqualTo("TestDatabase Initialization test.init-schema-mode is EMBEDDED"); assertThat(outcome.getMessage()).isEqualTo("TestDatabase Initialization test.init-schema-mode is EMBEDDED");
} }
@ -87,15 +92,17 @@ class OnDatabaseInitializationConditionTests {
@Test @Test
void getMatchOutcomeHasDedicatedDescription() { void getMatchOutcomeHasDedicatedDescription() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition ConditionOutcome outcome = condition.getMatchOutcome(
.getMatchOutcome(mockConditionContext(TestPropertyValues.of("test.init-mode=embedded")), null); mockConditionContext(TestPropertyValues.of("test.init-mode=embedded")),
mock(AnnotatedTypeMetadata.class));
assertThat(outcome.getMessage()).isEqualTo("TestDatabase Initialization test.init-mode is EMBEDDED"); assertThat(outcome.getMessage()).isEqualTo("TestDatabase Initialization test.init-mode is EMBEDDED");
} }
@Test @Test
void getMatchOutcomeHasWhenPropertyIsNotSetHasDefaultDescription() { void getMatchOutcomeHasWhenPropertyIsNotSetHasDefaultDescription() {
OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode"); OnDatabaseInitializationCondition condition = new OnTestDatabaseInitializationCondition("test.init-mode");
ConditionOutcome outcome = condition.getMatchOutcome(mockConditionContext(TestPropertyValues.empty()), null); ConditionOutcome outcome = condition.getMatchOutcome(mockConditionContext(TestPropertyValues.empty()),
mock(AnnotatedTypeMetadata.class));
assertThat(outcome.getMessage()).isEqualTo("TestDatabase Initialization default value is EMBEDDED"); assertThat(outcome.getMessage()).isEqualTo("TestDatabase Initialization default value is EMBEDDED");
} }

6
module/spring-boot-sql/src/test/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurerTests.java

@ -33,6 +33,7 @@ import java.util.Properties;
import java.util.Set; import java.util.Set;
import java.util.function.Consumer; import java.util.function.Consumer;
import org.jspecify.annotations.Nullable;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.api.io.TempDir;
@ -67,6 +68,7 @@ class DatabaseInitializationDependencyConfigurerTests {
private final ConfigurableEnvironment environment = new MockEnvironment(); private final ConfigurableEnvironment environment = new MockEnvironment();
@TempDir @TempDir
@SuppressWarnings("NullAway.Init")
File temp; File temp;
@BeforeEach @BeforeEach
@ -217,7 +219,7 @@ class DatabaseInitializationDependencyConfigurerTests {
static class ConstructorInjectionDatabaseInitializerDetector implements DatabaseInitializerDetector { static class ConstructorInjectionDatabaseInitializerDetector implements DatabaseInitializerDetector {
private static Environment environment; private static @Nullable Environment environment;
ConstructorInjectionDatabaseInitializerDetector(Environment environment) { ConstructorInjectionDatabaseInitializerDetector(Environment environment) {
ConstructorInjectionDatabaseInitializerDetector.environment = environment; ConstructorInjectionDatabaseInitializerDetector.environment = environment;
@ -233,7 +235,7 @@ class DatabaseInitializationDependencyConfigurerTests {
static class ConstructorInjectionDependsOnDatabaseInitializationDetector static class ConstructorInjectionDependsOnDatabaseInitializationDetector
implements DependsOnDatabaseInitializationDetector { implements DependsOnDatabaseInitializationDetector {
private static Environment environment; private static @Nullable Environment environment;
ConstructorInjectionDependsOnDatabaseInitializationDetector(Environment environment) { ConstructorInjectionDependsOnDatabaseInitializationDetector(Environment environment) {
ConstructorInjectionDependsOnDatabaseInitializationDetector.environment = environment; ConstructorInjectionDependsOnDatabaseInitializationDetector.environment = environment;

Loading…
Cancel
Save