package p.studio.architecture; import com.tngtech.archunit.core.importer.ClassFileImporter; import com.tngtech.archunit.core.importer.ImportOption; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; class PbsModuleClasspathTest { @Test void importerMustSeePbsAndRegistryModuleOrigins() { final var classes = new ClassFileImporter() .withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS) .importPackages("p.studio"); final var pbsSample = classes.stream() .filter(PbsModuleOrigins::isPbsModule) .findFirst(); final var registrySample = classes.stream() .filter(PbsModuleOrigins::isRegistryModule) .findFirst(); if (pbsSample.isEmpty() || registrySample.isEmpty()) { final var uris = classes.stream() .limit(20) .map(javaClass -> javaClass.getName() + " -> " + PbsModuleOrigins.sourceUri(javaClass)) .toList(); fail("PBS/registry module origins were not visible to ArchUnit. sample URIs: " + uris); } assertTrue(pbsSample.isPresent()); assertTrue(registrySample.isPresent()); } }