Skip to content

Commit 1b5ce5b

Browse files
authored
#36: simplified the Package rule (#43)
1 parent 8bc0c8e commit 1b5ce5b

File tree

1 file changed

+3
-44
lines changed

1 file changed

+3
-44
lines changed

src/test/java/com/devonfw/sample/archunit/PackageRuleTest.java

Lines changed: 3 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.devonfw.sample.archunit;
22
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
33

4-
import java.util.regex.Matcher;
5-
import java.util.regex.Pattern;
6-
74
import com.tngtech.archunit.core.domain.JavaClass;
85
import com.tngtech.archunit.core.importer.ImportOption;
96
import com.tngtech.archunit.junit.AnalyzeClasses;
@@ -19,43 +16,6 @@
1916
@AnalyzeClasses(packages = "com.devonfw.sample.archunit", importOptions = ImportOption.DoNotIncludeTests.class)
2017
public class PackageRuleTest {
2118

22-
/* Layer */
23-
private static final String LAYER_COMMON = "common";
24-
25-
private static final String LAYER_DATA_ACCESS = "dataaccess";
26-
27-
private static final String LAYER_LOGIC = "logic";
28-
29-
private static final String LAYER_SERVICE = "service";
30-
31-
private static final String LAYER_CLIENT = "client";
32-
33-
private static final String LAYER_BATCH = "batch";
34-
35-
/* Pattern */
36-
private static final String PATTERN_SEGMENT = "[a-z0-9_]+";
37-
38-
private static final String PATTERN_LAYERS = LAYER_COMMON + "|" + LAYER_DATA_ACCESS + "|" + LAYER_SERVICE + "|"
39-
+ LAYER_LOGIC + "|" + LAYER_BATCH + "|" + LAYER_CLIENT;
40-
41-
private static final String ROOT_PACKAGE =
42-
// ....1..........................2
43-
"(" + PATTERN_SEGMENT + ")(\\." + PATTERN_SEGMENT + ")*";
44-
45-
private static final String DEFAULT_PATTERN =
46-
// ....1......................2...........................3...........................4
47-
"(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + PATTERN_LAYERS + ")(\\." + PATTERN_SEGMENT + ")*";
48-
49-
public static final String COMMON_PATTERN =
50-
// ....1......................2...........................3...........................4
51-
"(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + LAYER_COMMON + ")(\\." + PATTERN_SEGMENT + ")*";
52-
53-
public static final String DATAACCESS_PATTERN =
54-
// ....1......................2...........................3...........................4
55-
"(" + ROOT_PACKAGE + ")\\.(" + PATTERN_SEGMENT + ")\\.(" + LAYER_DATA_ACCESS + ")(\\." + PATTERN_SEGMENT + ")*";
56-
57-
private static final Pattern PATTERN = Pattern.compile(DEFAULT_PATTERN);
58-
5919
/* ArchRule and Condition */
6020
@ArchTest
6121
public ArchRule shouldHaveValidLayers = classes().should(containsValidPackageStructureCondition());
@@ -66,10 +26,9 @@ private static ArchCondition<JavaClass> containsValidPackageStructureCondition()
6626
}) {
6727
@Override
6828
public void check(JavaClass javaClass, ConditionEvents events) {
69-
70-
Matcher matcher = PATTERN.matcher(javaClass.getPackageName());
71-
String message = javaClass.getSimpleName() + " test result is " + matcher.matches();
72-
events.add(new SimpleConditionEvent(javaClass, matcher.matches(), message));
29+
PackageStructure packageStructure = PackageStructure.of(javaClass);
30+
String message = javaClass.getSimpleName() + " test result is " + packageStructure.isValid();
31+
events.add(new SimpleConditionEvent(javaClass, packageStructure.isValid(), message));
7332
}
7433
};
7534
};

0 commit comments

Comments
 (0)