Skip to content

Commit

Permalink
feat(architecture): don't allow wire to depend on shared kernels, exc…
Browse files Browse the repository at this point in the history
…epted for the "generation" package
  • Loading branch information
murdos committed Apr 22, 2024
1 parent 00d2640 commit ea753b0
Showing 1 changed file with 7 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/test/java/tech/jhipster/lite/HexagonalArchTest.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package tech.jhipster.lite;

import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*;
import static java.util.function.Predicate.*;

import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.importer.ClassFileImporter;
Expand All @@ -24,6 +25,7 @@
class HexagonalArchTest {

private static final String ROOT_PACKAGE = "tech.jhipster.lite";
private static final String GENERATION_SHARED_KERNEL_PACKAGES = ROOT_PACKAGE.concat(".shared.generation..");

private static final JavaClasses classes = new ClassFileImporter()
.withImportOption(ImportOption.Predefined.DO_NOT_INCLUDE_TESTS)
Expand Down Expand Up @@ -250,7 +252,7 @@ void shouldNotDependOnBoundedContextsOrSharedKernels() {
.resideInAPackage("..wire..")
.should()
.dependOnClassesThat()
.resideInAnyPackage(businessContextsPackages.toArray(String[]::new))
.resideInAnyPackage(businessContextsOrSharedKernelsPackages())
.because("Wire should not depend on business contexts or shared kernel should not depend")
.check(classes);
}
Expand All @@ -268,7 +270,10 @@ void boundedContextsOrSharedKernelsShouldNotDependOnWire() {
}

private static String[] businessContextsOrSharedKernelsPackages() {
return Stream.of(businessContextsPackages, sharedKernelsPackages).flatMap(Collection::stream).toArray(String[]::new);
return Stream.of(businessContextsPackages, sharedKernelsPackages)
.flatMap(Collection::stream)
.filter(not(GENERATION_SHARED_KERNEL_PACKAGES::equals))
.toArray(String[]::new);
}

@Test
Expand Down

0 comments on commit ea753b0

Please sign in to comment.