GH-317 - Detect violations from types located in root packages.

We now create artificial root application modules for all root packages to detect violations (for example, types located in root packages referring to module-internal types).
This commit is contained in:
Oliver Drotbohm
2023-10-15 19:34:25 +02:00
parent 4a857dcddf
commit 9148a57b02
6 changed files with 151 additions and 23 deletions

View File

@@ -17,6 +17,7 @@ package com.acme.myproject;
import static org.assertj.core.api.Assertions.*;
import org.assertj.core.api.InstanceOfAssertFactories;
import org.junit.jupiter.api.Test;
import org.springframework.modulith.core.ApplicationModule;
import org.springframework.modulith.core.ApplicationModuleDependencies;
@@ -56,7 +57,22 @@ class ModulithTest {
@Test
void verifyModulesWithoutInvalid() {
ApplicationModules.of(Application.class, DEFAULT_EXCLUSIONS.or(Filters.withoutModule("invalid"))).verify();
assertThatExceptionOfType(Violations.class).isThrownBy(() -> {
ApplicationModules
.of(Application.class, DEFAULT_EXCLUSIONS.or(Filters.withoutModule("invalid")))
.verify();
}).satisfies(it -> {
assertThat(it.getMessages())
.hasSize(1)
.element(0, as(InstanceOfAssertFactories.STRING))
.contains("root:com.acme.myproject")
.contains(InternalComponentB.class.getName());
});
}
@Test