From df664c659702b09eb8b63767d7713d0a372be3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Mino?= Date: Mon, 22 Apr 2024 22:29:04 +0200 Subject: [PATCH] Simplify HexagonalArchTest: compute rootPackagePath on the fly from root package name That way it's easier to change root package on generated code, and it also simplifies the generator that don't need anymore to compute walk paths --- .../javatool/archunit/domain/ArchUnitModuleFactory.java | 9 --------- .../archunit/test/HexagonalArchTest.java.mustache | 7 +++++-- src/test/java/tech/jhipster/lite/HexagonalArchTest.java | 9 ++++++--- .../archunit/domain/ArchUnitModuleFactoryTest.java | 3 --- 4 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/main/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactory.java index 274967d35c3..9620848cf6b 100644 --- a/src/main/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactory.java +++ b/src/main/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactory.java @@ -2,8 +2,6 @@ import static tech.jhipster.lite.module.domain.JHipsterModule.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; import tech.jhipster.lite.module.domain.JHipsterModule; import tech.jhipster.lite.module.domain.LogLevel; import tech.jhipster.lite.module.domain.file.JHipsterDestination; @@ -26,9 +24,6 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { //@formatter:off return moduleBuilder(properties) - .context() - .put("packageWalkPath", packageWalkPath(packagePath)) - .and() .files() .add(SOURCE.template("archunit.properties"), to("src/test/resources/archunit.properties")) .add(SOURCE.template("AnnotationArchTest.java"), testDestination.append("AnnotationArchTest.java")) @@ -42,10 +37,6 @@ public JHipsterModule buildModule(JHipsterModuleProperties properties) { //@formatter:on } - private String packageWalkPath(String packagePath) { - return Stream.of(packagePath.split("/")).map(folder -> QUOTE + folder + QUOTE).collect(Collectors.joining(", ")); - } - private JavaDependency archUnitDependency() { return javaDependency() .groupId("com.tngtech.archunit") diff --git a/src/main/resources/generator/server/javatool/archunit/test/HexagonalArchTest.java.mustache b/src/main/resources/generator/server/javatool/archunit/test/HexagonalArchTest.java.mustache index dd6081928f7..cde0774d7c4 100644 --- a/src/main/resources/generator/server/javatool/archunit/test/HexagonalArchTest.java.mustache +++ b/src/main/resources/generator/server/javatool/archunit/test/HexagonalArchTest.java.mustache @@ -48,8 +48,7 @@ class HexagonalArchTest { private static Collection packagesWithAnnotation(Class annotationClass) throws AssertionError { try { - return Files - .walk(Paths.get("src", "main", "java", {{packageWalkPath}})) + return Files.walk(rootPackagePath()) .filter(path -> path.toString().endsWith("package-info.java")) .map(toPackageName()) .map(path -> path.replaceAll("[\\/]", ".")) @@ -64,6 +63,10 @@ class HexagonalArchTest { } } + private static Path rootPackagePath() { + return Stream.of(ROOT_PACKAGE.split("\\.")).map(Paths::get).reduce(Paths.get("src", "main", "java"), Path::resolve); + } + private static Function toPackageName() { return path -> { String stringPath = path.toString(); diff --git a/src/test/java/tech/jhipster/lite/HexagonalArchTest.java b/src/test/java/tech/jhipster/lite/HexagonalArchTest.java index 6ace9724afb..15f4217e97c 100644 --- a/src/test/java/tech/jhipster/lite/HexagonalArchTest.java +++ b/src/test/java/tech/jhipster/lite/HexagonalArchTest.java @@ -1,7 +1,6 @@ package tech.jhipster.lite; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noClasses; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*; import com.tngtech.archunit.core.domain.JavaClasses; import com.tngtech.archunit.core.importer.ClassFileImporter; @@ -49,7 +48,7 @@ private static Collection buildPackagesPatterns(Collection packa private static Collection packagesWithAnnotation(Class annotationClass) throws AssertionError { try { - return Files.walk(Paths.get("src", "main", "java", "tech", "jhipster", "lite")) + return Files.walk(rootPackagePath()) .filter(path -> path.toString().endsWith("package-info.java")) .map(toPackageName()) .map(path -> path.replaceAll("[\\/]", ".")) @@ -64,6 +63,10 @@ private static Collection packagesWithAnnotation(Class toPackageName() { return path -> { String stringPath = path.toString(); diff --git a/src/test/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactoryTest.java b/src/test/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactoryTest.java index 869f24b6cb9..3cbbabb0bcc 100644 --- a/src/test/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactoryTest.java +++ b/src/test/java/tech/jhipster/lite/generator/server/javatool/archunit/domain/ArchUnitModuleFactoryTest.java @@ -24,9 +24,6 @@ void shouldBuildModule() { assertThatModuleWithFiles(module, pomFile(), testLogbackFile()) .hasFiles("src/test/resources/archunit.properties", "src/test/java/com/jhipster/test/AnnotationArchTest.java") - .hasFile("src/test/java/com/jhipster/test/HexagonalArchTest.java") - .containing("\"src\", \"main\", \"java\", \"com\", \"jhipster\", \"test\"") - .and() .hasFile("pom.xml") .containing("archunit-junit5-api") .and()