From af2436de84a0cfa9d49620233afea65a560c5d73 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Thu, 18 Sep 2025 12:27:00 +0200 Subject: [PATCH] Add nullability annotations to tests in module/spring-boot-data-commons See gh-47263 --- module/spring-boot-data-commons/build.gradle | 4 ++++ .../boot/data/metrics/DefaultRepositoryTagsProviderTests.java | 4 +++- .../MetricsRepositoryMethodInvocationListenerTests.java | 1 + .../boot/data/metrics/TimedAnnotationsTests.java | 3 +++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/module/spring-boot-data-commons/build.gradle b/module/spring-boot-data-commons/build.gradle index 7a2cde511cc..dcc22d6427a 100644 --- a/module/spring-boot-data-commons/build.gradle +++ b/module/spring-boot-data-commons/build.gradle @@ -45,3 +45,7 @@ dependencies { testRuntimeOnly("com.zaxxer:HikariCP") testRuntimeOnly("jakarta.servlet:jakarta.servlet-api") } + +tasks.named("compileTestJava") { + options.nullability.checking = "tests" +} diff --git a/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/DefaultRepositoryTagsProviderTests.java b/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/DefaultRepositoryTagsProviderTests.java index ef760887c13..502550c720c 100644 --- a/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/DefaultRepositoryTagsProviderTests.java +++ b/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/DefaultRepositoryTagsProviderTests.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.lang.reflect.Method; import io.micrometer.core.instrument.Tag; +import org.jspecify.annotations.Nullable; import org.junit.jupiter.api.Test; import org.springframework.data.repository.Repository; @@ -80,9 +81,10 @@ class DefaultRepositoryTagsProviderTests { return createInvocation(null); } - private RepositoryMethodInvocation createInvocation(Throwable error) { + private RepositoryMethodInvocation createInvocation(@Nullable Throwable error) { Class repositoryInterface = ExampleRepository.class; Method method = ReflectionUtils.findMethod(repositoryInterface, "findById", long.class); + assertThat(method).isNotNull(); RepositoryMethodInvocationResult result = mock(RepositoryMethodInvocationResult.class); given(result.getState()).willReturn((error != null) ? State.ERROR : State.SUCCESS); given(result.getError()).willReturn(error); diff --git a/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/MetricsRepositoryMethodInvocationListenerTests.java b/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/MetricsRepositoryMethodInvocationListenerTests.java index bef84137f83..cd43e0aa7ba 100644 --- a/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/MetricsRepositoryMethodInvocationListenerTests.java +++ b/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/MetricsRepositoryMethodInvocationListenerTests.java @@ -90,6 +90,7 @@ class MetricsRepositoryMethodInvocationListenerTests { private RepositoryMethodInvocation createInvocation(Class repositoryInterface) { Method method = ReflectionUtils.findMethod(repositoryInterface, "findById", long.class); + assertThat(method).isNotNull(); RepositoryMethodInvocationResult result = mock(RepositoryMethodInvocationResult.class); given(result.getState()).willReturn(State.SUCCESS); return new RepositoryMethodInvocation(repositoryInterface, method, result, 0); diff --git a/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/TimedAnnotationsTests.java b/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/TimedAnnotationsTests.java index ad0252affe1..304465e6466 100644 --- a/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/TimedAnnotationsTests.java +++ b/module/spring-boot-data-commons/src/test/java/org/springframework/boot/data/metrics/TimedAnnotationsTests.java @@ -37,6 +37,7 @@ class TimedAnnotationsTests { void getWhenNoneReturnsEmptySet() { Object bean = new None(); Method method = ReflectionUtils.findMethod(bean.getClass(), "handle"); + assertThat(method).isNotNull(); Set annotations = TimedAnnotations.get(method, bean.getClass()); assertThat(annotations).isEmpty(); } @@ -45,6 +46,7 @@ class TimedAnnotationsTests { void getWhenOnMethodReturnsMethodAnnotations() { Object bean = new OnMethod(); Method method = ReflectionUtils.findMethod(bean.getClass(), "handle"); + assertThat(method).isNotNull(); Set annotations = TimedAnnotations.get(method, bean.getClass()); assertThat(annotations).extracting(Timed::value).containsOnly("y", "z"); } @@ -53,6 +55,7 @@ class TimedAnnotationsTests { void getWhenNonOnMethodReturnsBeanAnnotations() { Object bean = new OnBean(); Method method = ReflectionUtils.findMethod(bean.getClass(), "handle"); + assertThat(method).isNotNull(); Set annotations = TimedAnnotations.get(method, bean.getClass()); assertThat(annotations).extracting(Timed::value).containsOnly("y", "z"); }