From c4e641c97557006e10acf5f0b09351629a5170c2 Mon Sep 17 00:00:00 2001 From: Dmytro Nosan Date: Mon, 18 Aug 2025 15:43:56 +0300 Subject: [PATCH] Restore NullMarked ArchRule tests Signed-off-by: Dmytro Nosan --- .../architecture/ArchitectureCheckTests.java | 13 ++++++++++++ .../nullmarked/notannotated/TestClass.java | 21 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 buildSrc/src/test/java/org/springframework/boot/build/architecture/nullmarked/notannotated/TestClass.java diff --git a/buildSrc/src/test/java/org/springframework/boot/build/architecture/ArchitectureCheckTests.java b/buildSrc/src/test/java/org/springframework/boot/build/architecture/ArchitectureCheckTests.java index b14e64ac869c..213cd3f402ad 100644 --- a/buildSrc/src/test/java/org/springframework/boot/build/architecture/ArchitectureCheckTests.java +++ b/buildSrc/src/test/java/org/springframework/boot/build/architecture/ArchitectureCheckTests.java @@ -270,6 +270,19 @@ void whenBeanMethodExposesNonPrivateTypeShouldSucceedAndWriteEmptyReport(Task ta build(this.gradleBuild.withDependencies(SPRING_CONTEXT), task); } + @Test + void whenPackageIsNotAnnotatedWithNullMarkedWithMainSourcesShouldFailAndWriteEmptyReport() throws IOException { + prepareTask(Task.CHECK_ARCHITECTURE_MAIN, "nullmarked/notannotated"); + buildAndFail(this.gradleBuild.withNullMarked(true), Task.CHECK_ARCHITECTURE_MAIN, + "Package org.springframework.boot.build.architecture.nullmarked.notannotated is not annotated with @NullMarked"); + } + + @Test + void whenPackageIsNotAnnotatedWithNullMarkedWithTestSourcesShouldSucceedAndWriteEmptyReport() throws IOException { + prepareTask(Task.CHECK_ARCHITECTURE_TEST, "nullmarked/notannotated"); + build(this.gradleBuild.withNullMarked(true), Task.CHECK_ARCHITECTURE_TEST); + } + private void prepareTask(Task task, String... sourceDirectories) throws IOException { for (String sourceDirectory : sourceDirectories) { FileSystemUtils.copyRecursively( diff --git a/buildSrc/src/test/java/org/springframework/boot/build/architecture/nullmarked/notannotated/TestClass.java b/buildSrc/src/test/java/org/springframework/boot/build/architecture/nullmarked/notannotated/TestClass.java new file mode 100644 index 000000000000..89b0d0d6d080 --- /dev/null +++ b/buildSrc/src/test/java/org/springframework/boot/build/architecture/nullmarked/notannotated/TestClass.java @@ -0,0 +1,21 @@ +/* + * Copyright 2012-present the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.build.architecture.nullmarked.notannotated; + +public class TestClass { + +}