From c51ba5c3310108803e9fffa476bb134e50ee0780 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Mon, 6 Feb 2023 10:02:46 +0100 Subject: [PATCH 01/13] implemeted PackeageRuleTest --- .../sample/archunit/ArchitectureTest.java | 30 -------- .../sample/archunit/PackageRuleTest.java | 76 +++++++++++++++++++ 2 files changed, 76 insertions(+), 30 deletions(-) delete mode 100644 src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java create mode 100644 src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java diff --git a/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java b/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java deleted file mode 100644 index b9c6742..0000000 --- a/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package com.devonfw.sample.archunit; - -import static com.tngtech.archunit.library.Architectures.layeredArchitecture; - -import com.tngtech.archunit.core.importer.ImportOption; -import com.tngtech.archunit.junit.AnalyzeClasses; -import com.tngtech.archunit.junit.ArchTest; -import com.tngtech.archunit.lang.ArchRule; - -/** - * JUnit test that validates the architecture of this application. - */ -@AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class) -public class ArchitectureTest { - - @ArchTest - private static final ArchRule shouldOnlyAccessValidLayers = // - layeredArchitecture().consideringAllDependencies() // - .layer("common").definedBy("..common..") // - .layer("logic").definedBy("..logic..") // - .layer("dataaccess").definedBy("..dataaccess..") // - .layer("service").definedBy("..service..") // - .layer("batch").definedBy("..batch..") // - .layer("ui").definedBy("..ui..") // - // TODO - .because("Dependency of technical layers violates architecture rules."); - - // ... - -} diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java new file mode 100644 index 0000000..41eb295 --- /dev/null +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -0,0 +1,76 @@ +package com.devonfw.sample.archunit; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; + +import com.tngtech.archunit.core.domain.JavaClass; +import com.tngtech.archunit.core.importer.ImportOption; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchCondition; +import com.tngtech.archunit.lang.ArchRule; +import com.tngtech.archunit.lang.ConditionEvents; + + +import java.util.Arrays; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import com.tngtech.archunit.lang.SimpleConditionEvent; + +/** + * JUnit test that validates the Packages of this application. + */ + + +@AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class) +public class PackageRuleTest { + +/*Components */ +public static final String COMPONENT_GENERAL = "general"; + +public static final String COMPONENT_TASK = "task"; + +/*Layer */ +public static final String LAYER_COMMON = "common"; + +public static final String LAYER_DATA_ACCESS = "dataaccess"; + +public static final String LAYER_LOGIC = "logic"; + +public static final String LAYER_SERVICE = "service"; + +public static final String LAYER_CLIENT = "client"; + +public static final String LAYER_BATCH = "batch"; + +public static final List LAYERS = Arrays.asList(LAYER_CLIENT, LAYER_COMMON, LAYER_DATA_ACCESS, +LAYER_LOGIC, LAYER_SERVICE, LAYER_BATCH); + +/* Pattern */ +private static final String PATTERN_SEGMENT = "[a-zA-Z0-9_]+"; + +private static final String PATTERN_LAYERS = LAYER_COMMON + "|" + + LAYER_DATA_ACCESS + "|" + LAYER_SERVICE + "|" + LAYER_LOGIC + "|" + LAYER_BATCH + "|" + + LAYER_CLIENT; + +private static final String COMPONENT_LAYERS = COMPONENT_GENERAL + "|" + COMPONENT_TASK; + +public static final String DEFAULT_PATTERN = "(" + PATTERN_SEGMENT + ")\\.(" + COMPONENT_LAYERS + ")\\.(" + PATTERN_LAYERS + ")\\.(" + PATTERN_SEGMENT + ")*"; + +/* ArchRule and Condition */ + @ArchTest + public ArchRule shouldHaveValidLayers = classes().should(containsValidPackageStructureCondition()); + + + private static ArchCondition containsValidPackageStructureCondition() { + return new ArchCondition("check for the package structure to be valid", new Object(){}) { + @Override + public void check(JavaClass javaClass, ConditionEvents events) { + Pattern pattern = Pattern.compile(DEFAULT_PATTERN); + Matcher matcher = pattern.matcher(javaClass.getName()); + events.add(new SimpleConditionEvent(javaClass, + matcher.find(), "true if valid, flase if invalid")); + } + }; + }; +} \ No newline at end of file From 96b2a49e50c4cf69411c51a16e591d9b24da1f9d Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Mon, 6 Feb 2023 10:06:46 +0100 Subject: [PATCH 02/13] implement PackageRuleTest --- .../sample/archunit/ArchitectureTest.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java diff --git a/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java b/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java new file mode 100644 index 0000000..b9c6742 --- /dev/null +++ b/src/test/java/com/devonfw/sample/archunit/ArchitectureTest.java @@ -0,0 +1,30 @@ +package com.devonfw.sample.archunit; + +import static com.tngtech.archunit.library.Architectures.layeredArchitecture; + +import com.tngtech.archunit.core.importer.ImportOption; +import com.tngtech.archunit.junit.AnalyzeClasses; +import com.tngtech.archunit.junit.ArchTest; +import com.tngtech.archunit.lang.ArchRule; + +/** + * JUnit test that validates the architecture of this application. + */ +@AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class) +public class ArchitectureTest { + + @ArchTest + private static final ArchRule shouldOnlyAccessValidLayers = // + layeredArchitecture().consideringAllDependencies() // + .layer("common").definedBy("..common..") // + .layer("logic").definedBy("..logic..") // + .layer("dataaccess").definedBy("..dataaccess..") // + .layer("service").definedBy("..service..") // + .layer("batch").definedBy("..batch..") // + .layer("ui").definedBy("..ui..") // + // TODO + .because("Dependency of technical layers violates architecture rules."); + + // ... + +} From aefe8383eca0cd573a224e21d8ee283444662b67 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Thu, 9 Feb 2023 12:42:15 +0100 Subject: [PATCH 03/13] implemented suggestions/improvements --- .../sample/archunit/PackageRuleTest.java | 46 +++++++++---------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index 41eb295..fc5a88c 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -1,6 +1,7 @@ package com.devonfw.sample.archunit; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static org.mockito.ArgumentMatchers.matches; import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.core.importer.ImportOption; @@ -9,53 +10,47 @@ import com.tngtech.archunit.lang.ArchCondition; import com.tngtech.archunit.lang.ArchRule; import com.tngtech.archunit.lang.ConditionEvents; +import com.tngtech.archunit.lang.SimpleConditionEvent; - -import java.util.Arrays; -import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; -import com.tngtech.archunit.lang.SimpleConditionEvent; /** * JUnit test that validates the Packages of this application. */ - @AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class) public class PackageRuleTest { -/*Components */ -public static final String COMPONENT_GENERAL = "general"; - -public static final String COMPONENT_TASK = "task"; - /*Layer */ -public static final String LAYER_COMMON = "common"; - -public static final String LAYER_DATA_ACCESS = "dataaccess"; +private static final String LAYER_COMMON = "common"; -public static final String LAYER_LOGIC = "logic"; +private static final String LAYER_DATA_ACCESS = "dataaccess"; -public static final String LAYER_SERVICE = "service"; +private static final String LAYER_LOGIC = "logic"; -public static final String LAYER_CLIENT = "client"; +private static final String LAYER_SERVICE = "service"; -public static final String LAYER_BATCH = "batch"; +private static final String LAYER_CLIENT = "client"; -public static final List LAYERS = Arrays.asList(LAYER_CLIENT, LAYER_COMMON, LAYER_DATA_ACCESS, -LAYER_LOGIC, LAYER_SERVICE, LAYER_BATCH); +private static final String LAYER_BATCH = "batch"; /* Pattern */ -private static final String PATTERN_SEGMENT = "[a-zA-Z0-9_]+"; +private static final String PATTERN_SEGMENT = "[a-z0-9_]+"; private static final String PATTERN_LAYERS = LAYER_COMMON + "|" + LAYER_DATA_ACCESS + "|" + LAYER_SERVICE + "|" + LAYER_LOGIC + "|" + LAYER_BATCH + "|" + LAYER_CLIENT; + +private static final String ROOT_PACKAGE = + // ....1..........................2 + "(" + PATTERN_SEGMENT +")\\.(" + PATTERN_SEGMENT +".)*"; -private static final String COMPONENT_LAYERS = COMPONENT_GENERAL + "|" + COMPONENT_TASK; +private static final String DEFAULT_PATTERN = + // ....1......................2...........................3...........................4 + "(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + PATTERN_LAYERS + ")\\.?(" + PATTERN_SEGMENT + ")*"; -public static final String DEFAULT_PATTERN = "(" + PATTERN_SEGMENT + ")\\.(" + COMPONENT_LAYERS + ")\\.(" + PATTERN_LAYERS + ")\\.(" + PATTERN_SEGMENT + ")*"; +private static final Pattern pattern = Pattern.compile(DEFAULT_PATTERN); /* ArchRule and Condition */ @ArchTest @@ -66,10 +61,11 @@ private static ArchCondition containsValidPackageStructureCondition() return new ArchCondition("check for the package structure to be valid", new Object(){}) { @Override public void check(JavaClass javaClass, ConditionEvents events) { - Pattern pattern = Pattern.compile(DEFAULT_PATTERN); - Matcher matcher = pattern.matcher(javaClass.getName()); + Matcher matcher = pattern.matcher(javaClass.getPackageName()); + System.out.println(javaClass.getPackageName() +" ---- " +matcher.matches()); + String message = javaClass.getSimpleName() + "test result is" + matcher.matches(); events.add(new SimpleConditionEvent(javaClass, - matcher.find(), "true if valid, flase if invalid")); + matcher.matches(), message)); } }; }; From 2f0591cc99c8ef5a46700c570ae2592be9e7e0a8 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Thu, 9 Feb 2023 12:45:21 +0100 Subject: [PATCH 04/13] removed Println --- src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index fc5a88c..e280759 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -62,7 +62,6 @@ private static ArchCondition containsValidPackageStructureCondition() @Override public void check(JavaClass javaClass, ConditionEvents events) { Matcher matcher = pattern.matcher(javaClass.getPackageName()); - System.out.println(javaClass.getPackageName() +" ---- " +matcher.matches()); String message = javaClass.getSimpleName() + "test result is" + matcher.matches(); events.add(new SimpleConditionEvent(javaClass, matcher.matches(), message)); From 1b0cb973fe2650e16208d79b68ba48f1bbcc7e41 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Thu, 9 Feb 2023 12:48:46 +0100 Subject: [PATCH 05/13] removed 1 Space --- src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index e280759..81c9117 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -18,7 +18,6 @@ /** * JUnit test that validates the Packages of this application. */ - @AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class) public class PackageRuleTest { From cbee2e611b96847da61ac13871e0b491b1524a44 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Thu, 9 Feb 2023 12:49:48 +0100 Subject: [PATCH 06/13] removed unnessary Import --- src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index 81c9117..9926a01 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -1,7 +1,6 @@ package com.devonfw.sample.archunit; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; -import static org.mockito.ArgumentMatchers.matches; import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.core.importer.ImportOption; From fb55de045b1f98a0be4e1adfa5eb70ae3b2f6624 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Mon, 13 Feb 2023 11:01:56 +0100 Subject: [PATCH 07/13] added Spaces to message + Capitalised Constant --- .../java/com/devonfw/sample/archunit/PackageRuleTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index 9926a01..bec9d5b 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -48,7 +48,7 @@ public class PackageRuleTest { // ....1......................2...........................3...........................4 "(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + PATTERN_LAYERS + ")\\.?(" + PATTERN_SEGMENT + ")*"; -private static final Pattern pattern = Pattern.compile(DEFAULT_PATTERN); +private static final Pattern PATTERN = Pattern.compile(DEFAULT_PATTERN); /* ArchRule and Condition */ @ArchTest @@ -59,8 +59,8 @@ private static ArchCondition containsValidPackageStructureCondition() return new ArchCondition("check for the package structure to be valid", new Object(){}) { @Override public void check(JavaClass javaClass, ConditionEvents events) { - Matcher matcher = pattern.matcher(javaClass.getPackageName()); - String message = javaClass.getSimpleName() + "test result is" + matcher.matches(); + Matcher matcher = PATTERN.matcher(javaClass.getPackageName()); + String message = javaClass.getSimpleName() + " test result is " + matcher.matches(); events.add(new SimpleConditionEvent(javaClass, matcher.matches(), message)); } From 84573ff688e8133131cfbbe0880fa409da20e871 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Mon, 13 Feb 2023 12:23:51 +0100 Subject: [PATCH 08/13] Fix Point mistake in ROOT_PACKAGE --- .../java/com/devonfw/sample/archunit/PackageRuleTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index bec9d5b..49c7f6f 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -42,8 +42,8 @@ public class PackageRuleTest { private static final String ROOT_PACKAGE = // ....1..........................2 - "(" + PATTERN_SEGMENT +")\\.(" + PATTERN_SEGMENT +".)*"; - + "(" + PATTERN_SEGMENT +")(\\." + PATTERN_SEGMENT +")*"; + private static final String DEFAULT_PATTERN = // ....1......................2...........................3...........................4 "(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + PATTERN_LAYERS + ")\\.?(" + PATTERN_SEGMENT + ")*"; From b5711fb6be6de5bcf04b0999faaecada71e63ca5 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Mon, 13 Feb 2023 12:33:00 +0100 Subject: [PATCH 09/13] fixed minor mistake in DEFAULT_PATTERN --- .../java/com/devonfw/sample/archunit/PackageRuleTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index 49c7f6f..4ff0ee7 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -43,10 +43,10 @@ public class PackageRuleTest { private static final String ROOT_PACKAGE = // ....1..........................2 "(" + PATTERN_SEGMENT +")(\\." + PATTERN_SEGMENT +")*"; - + private static final String DEFAULT_PATTERN = // ....1......................2...........................3...........................4 - "(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + PATTERN_LAYERS + ")\\.?(" + PATTERN_SEGMENT + ")*"; + "(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + PATTERN_LAYERS + ")(\\." + PATTERN_SEGMENT + ")*"; private static final Pattern PATTERN = Pattern.compile(DEFAULT_PATTERN); From e2cbc8718a60e495e24d8f83aa477cb0fa49a5ab Mon Sep 17 00:00:00 2001 From: moritzLanger <44358321+moritzLanger@users.noreply.github.com> Date: Thu, 30 Mar 2023 14:16:36 +0200 Subject: [PATCH 10/13] Add files via upload --- .../violation/CaptialViolation/P3CapitalViolation.java | 5 +++++ .../com/devonfw/sample/archunit/violation/P1NoLayer.java | 5 +++++ .../archunit/violation/violationlayer/P2ViolationLayer.java | 5 +++++ 3 files changed, 15 insertions(+) create mode 100644 src/main/java/com/devonfw/sample/archunit/violation/CaptialViolation/P3CapitalViolation.java create mode 100644 src/main/java/com/devonfw/sample/archunit/violation/P1NoLayer.java create mode 100644 src/main/java/com/devonfw/sample/archunit/violation/violationlayer/P2ViolationLayer.java diff --git a/src/main/java/com/devonfw/sample/archunit/violation/CaptialViolation/P3CapitalViolation.java b/src/main/java/com/devonfw/sample/archunit/violation/CaptialViolation/P3CapitalViolation.java new file mode 100644 index 0000000..cec55e0 --- /dev/null +++ b/src/main/java/com/devonfw/sample/archunit/violation/CaptialViolation/P3CapitalViolation.java @@ -0,0 +1,5 @@ +package com.devonfw.sample.archunit.violation.CaptialViolation; + +public class P3CapitalViolation { + // No layer have capital letters in its name. +} \ No newline at end of file diff --git a/src/main/java/com/devonfw/sample/archunit/violation/P1NoLayer.java b/src/main/java/com/devonfw/sample/archunit/violation/P1NoLayer.java new file mode 100644 index 0000000..2a3168e --- /dev/null +++ b/src/main/java/com/devonfw/sample/archunit/violation/P1NoLayer.java @@ -0,0 +1,5 @@ +package com.devonfw.sample.archunit.violation; + +public class P1NoLayer { + // no class should be without a Layer +} \ No newline at end of file diff --git a/src/main/java/com/devonfw/sample/archunit/violation/violationlayer/P2ViolationLayer.java b/src/main/java/com/devonfw/sample/archunit/violation/violationlayer/P2ViolationLayer.java new file mode 100644 index 0000000..fc2d3e7 --- /dev/null +++ b/src/main/java/com/devonfw/sample/archunit/violation/violationlayer/P2ViolationLayer.java @@ -0,0 +1,5 @@ +package com.devonfw.sample.archunit.violation.violationlayer; + +public class P2ViolationLayer { + // No layer should have the name violation, resulting in the error for this class. +} \ No newline at end of file From b6b32699a3489cbc8ad8a6c5bfb38ded3872a8ef Mon Sep 17 00:00:00 2001 From: moritzLanger <44358321+moritzLanger@users.noreply.github.com> Date: Thu, 30 Mar 2023 14:17:16 +0200 Subject: [PATCH 11/13] Update PackageRuleTest.java --- .../java/com/devonfw/sample/archunit/PackageRuleTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index 266f595..86ee270 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -19,18 +19,18 @@ public class PackageRuleTest { /* ArchRule and Condition */ @ArchTest - public ArchRule shouldHaveValidLayers = priority(Priority.HIGH).classes().should(containsValidPackageStructureCondition()); + public ArchRule shouldHaveValidLayers = classes().should(containsValidPackageStructureCondition()); private static ArchCondition containsValidPackageStructureCondition() { - return new ArchCondition("check for the package structure to be valid", new Object() { + return new ArchCondition("have a valid package structure according to the devon framework", new Object() { }) { @Override public void check(JavaClass javaClass, ConditionEvents events) { PackageStructure packageStructure = PackageStructure.of(javaClass); - String message = javaClass.getSimpleName() + " test result is " + packageStructure.isValid(); + String message = "The Class or Interface named " + javaClass.getSimpleName() + " is violating the package structure."; events.add(new SimpleConditionEvent(javaClass, packageStructure.isValid(), message)); } }; }; -} \ No newline at end of file +} From 3cb08c37d974bc7cead634d748ea8d0a4c5cbc89 Mon Sep 17 00:00:00 2001 From: moritzLanger Date: Thu, 30 Mar 2023 14:23:49 +0200 Subject: [PATCH 12/13] fixed import error --- src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java index 86ee270..87a91b6 100644 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java @@ -1,5 +1,6 @@ package com.devonfw.sample.archunit; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.priority; +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; import com.tngtech.archunit.core.domain.JavaClass; import com.tngtech.archunit.core.importer.ImportOption; From b9e9acbd64ef26f3cecc1d633c16d67217c7c8fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Hohwiller?= Date: Mon, 24 Apr 2023 18:11:33 +0200 Subject: [PATCH 13/13] Delete PackageRuleTest.java --- .../sample/archunit/PackageRuleTest.java | 37 ------------------- 1 file changed, 37 deletions(-) delete mode 100644 src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java diff --git a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java b/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java deleted file mode 100644 index 87a91b6..0000000 --- a/src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java +++ /dev/null @@ -1,37 +0,0 @@ -package com.devonfw.sample.archunit; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.priority; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; - -import com.tngtech.archunit.core.domain.JavaClass; -import com.tngtech.archunit.core.importer.ImportOption; -import com.tngtech.archunit.junit.AnalyzeClasses; -import com.tngtech.archunit.junit.ArchTest; -import com.tngtech.archunit.lang.ArchCondition; -import com.tngtech.archunit.lang.ArchRule; -import com.tngtech.archunit.lang.ConditionEvents; -import com.tngtech.archunit.lang.Priority; -import com.tngtech.archunit.lang.SimpleConditionEvent; - -/** - * JUnit test that validates the Packages of this application. - */ -@AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class) -public class PackageRuleTest { - - /* ArchRule and Condition */ - @ArchTest - public ArchRule shouldHaveValidLayers = classes().should(containsValidPackageStructureCondition()); - - private static ArchCondition containsValidPackageStructureCondition() { - - return new ArchCondition("have a valid package structure according to the devon framework", new Object() { - }) { - @Override - public void check(JavaClass javaClass, ConditionEvents events) { - PackageStructure packageStructure = PackageStructure.of(javaClass); - String message = "The Class or Interface named " + javaClass.getSimpleName() + " is violating the package structure."; - events.add(new SimpleConditionEvent(javaClass, packageStructure.isValid(), message)); - } - }; - }; -}