diff --git a/pom.xml b/pom.xml
index 9d9ab00..f072cf8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -17,6 +17,7 @@
6.0.0-rc.1
0.8.10
+ 1.1.0
@@ -90,6 +91,12 @@
test
+
+ com.tngtech.archunit
+ archunit-junit5
+ ${archunit.version}
+
+
org.springframework.boot
--
2.51.2
From 5b0e01b4b7aceafbee27771844c476b6334bde63 Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:18:43 +0200
Subject: [PATCH 2/9] =?UTF-8?q?=E2=9C=85=20:=20add=20repository=20visibili?=
=?UTF-8?q?ty=20rule?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../gitlab/classrooms/ArchitectureTest.java | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)
create mode 100644 src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
new file mode 100644
index 0000000..248a76b
--- /dev/null
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -0,0 +1,24 @@
+package fr.univ_lille.gitlab.classrooms;
+
+import com.tngtech.archunit.core.importer.ClassFileImporter;
+import org.junit.jupiter.api.Test;
+import org.springframework.data.repository.Repository;
+
+import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
+
+class ArchitectureTest {
+
+ @Test
+ void repositoriesAreNotExposedOutsidePackages() {
+ var importedClasses = new ClassFileImporter()
+ .importPackages("fr.univ_lille.gitlab.classrooms");
+
+ var rule = classes()
+ .that()
+ .areAssignableTo(Repository.class)
+ .should()
+ .bePackagePrivate();
+
+ rule.check(importedClasses);
+ }
+}
--
2.51.2
From 0a709097988dbc42d89677b9f6ed1a4a2901ee85 Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:21:31 +0200
Subject: [PATCH 3/9] =?UTF-8?q?=E2=9C=85=20:=20service=20interface=20visib?=
=?UTF-8?q?ility=20rule?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../gitlab/classrooms/ArchitectureTest.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index 248a76b..2c28b9f 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -21,4 +21,20 @@ class ArchitectureTest {
rule.check(importedClasses);
}
+
+ @Test
+ void serviceInterfacesAreExposedAsPublic() {
+ var importedClasses = new ClassFileImporter()
+ .importPackages("fr.univ_lille.gitlab.classrooms");
+
+ var rule = classes()
+ .that()
+ .haveNameMatching(".*Service")
+ .should()
+ .beInterfaces()
+ .andShould()
+ .bePublic();
+
+ rule.check(importedClasses);
+ }
}
--
2.51.2
From e78b7cbf3d7c4c0aefd56bfadbcb627699fc4f8e Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:27:40 +0200
Subject: [PATCH 4/9] =?UTF-8?q?=E2=99=BB=20:=20rewrite=20using=20@ArchTest?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../gitlab/classrooms/ArchitectureTest.java | 50 +++++++------------
1 file changed, 19 insertions(+), 31 deletions(-)
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index 2c28b9f..913bd75 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -1,40 +1,28 @@
package fr.univ_lille.gitlab.classrooms;
-import com.tngtech.archunit.core.importer.ClassFileImporter;
-import org.junit.jupiter.api.Test;
+import com.tngtech.archunit.junit.AnalyzeClasses;
+import com.tngtech.archunit.junit.ArchTest;
+import com.tngtech.archunit.lang.ArchRule;
import org.springframework.data.repository.Repository;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
+@AnalyzeClasses(packages = "fr.univ_lille.gitlab.classrooms")
class ArchitectureTest {
- @Test
- void repositoriesAreNotExposedOutsidePackages() {
- var importedClasses = new ClassFileImporter()
- .importPackages("fr.univ_lille.gitlab.classrooms");
-
- var rule = classes()
- .that()
- .areAssignableTo(Repository.class)
- .should()
- .bePackagePrivate();
-
- rule.check(importedClasses);
- }
-
- @Test
- void serviceInterfacesAreExposedAsPublic() {
- var importedClasses = new ClassFileImporter()
- .importPackages("fr.univ_lille.gitlab.classrooms");
-
- var rule = classes()
- .that()
- .haveNameMatching(".*Service")
- .should()
- .beInterfaces()
- .andShould()
- .bePublic();
-
- rule.check(importedClasses);
- }
+ @ArchTest
+ final ArchRule repositoriesAreNotExposedOutsidePackages = classes()
+ .that()
+ .areAssignableTo(Repository.class)
+ .should()
+ .bePackagePrivate();
+
+ @ArchTest
+ final ArchRule serviceInterfacesAreExposedAsPublic = classes()
+ .that()
+ .haveNameMatching(".*Service")
+ .should()
+ .beInterfaces()
+ .andShould()
+ .bePublic();
}
--
2.51.2
From bff5c478874a11c7c9b55b8ac8a5e20157403c48 Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:29:40 +0200
Subject: [PATCH 5/9] =?UTF-8?q?=E2=9C=85=20:=20add=20controller=20visibili?=
=?UTF-8?q?ty=20rule?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../classrooms/dashboard/DashboardController.java | 2 +-
.../univ_lille/gitlab/classrooms/ArchitectureTest.java | 10 ++++++++++
2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java
index 5ba02d2..d37bc40 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java
@@ -15,7 +15,7 @@ import java.util.List;
@Controller
@RequestMapping("/")
-public class DashboardController {
+class DashboardController {
private final ClassroomService classroomService;
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index 913bd75..5d66e45 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -4,6 +4,7 @@ import com.tngtech.archunit.junit.AnalyzeClasses;
import com.tngtech.archunit.junit.ArchTest;
import com.tngtech.archunit.lang.ArchRule;
import org.springframework.data.repository.Repository;
+import org.springframework.stereotype.Controller;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
@@ -25,4 +26,13 @@ class ArchitectureTest {
.beInterfaces()
.andShould()
.bePublic();
+
+ @ArchTest
+ final ArchRule controllersAreNotExposedOutsidePackages = classes()
+ .that()
+ .haveNameMatching(".*Controller")
+ .or()
+ .areAnnotatedWith(Controller.class)
+ .should()
+ .bePackagePrivate();
}
--
2.51.2
From 6cb7281b0740a186cf586c93dd467f4fa067cf46 Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:31:22 +0200
Subject: [PATCH 6/9] =?UTF-8?q?=E2=9C=85=20:=20add=20service=20implementat?=
=?UTF-8?q?ions=20visibility=20rule?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assignments/AssignmentScoreServiceImpl.java | 2 +-
.../gitlab/classrooms/ArchitectureTest.java | 12 ++++++++++++
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentScoreServiceImpl.java b/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentScoreServiceImpl.java
index b1198bc..ce1cf8e 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentScoreServiceImpl.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentScoreServiceImpl.java
@@ -7,7 +7,7 @@ import org.springframework.stereotype.Service;
import java.time.ZonedDateTime;
@Service
-public class AssignmentScoreServiceImpl implements AssignmentScoreService{
+class AssignmentScoreServiceImpl implements AssignmentScoreService{
private final StudentAssignmentRepository studentAssignmentRepository;
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index 5d66e45..a4665c7 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -5,6 +5,7 @@ import com.tngtech.archunit.junit.ArchTest;
import com.tngtech.archunit.lang.ArchRule;
import org.springframework.data.repository.Repository;
import org.springframework.stereotype.Controller;
+import org.springframework.stereotype.Service;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
@@ -27,6 +28,17 @@ class ArchitectureTest {
.andShould()
.bePublic();
+ @ArchTest
+ final ArchRule serviceImplementationsAreNotExposedOutsidePackages = classes()
+ .that()
+ .haveNameMatching(".*ServiceImpl")
+ .or()
+ .areAnnotatedWith(Service.class)
+ .should()
+ .beTopLevelClasses()
+ .andShould()
+ .bePackagePrivate();
+
@ArchTest
final ArchRule controllersAreNotExposedOutsidePackages = classes()
.that()
--
2.51.2
From 61a65818c211c5beac675ed5f48fbe89a18a249c Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:40:18 +0200
Subject: [PATCH 7/9] =?UTF-8?q?=E2=9C=85=20:=20add=20only=20final=20fields?=
=?UTF-8?q?=20rule?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../classrooms/quiz/QuizAnswerController.java | 4 ++--
.../classrooms/quiz/QuizEditionController.java | 2 +-
.../gitlab/classrooms/ArchitectureTest.java | 17 +++++++++++++++++
3 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java
index 6247f8f..adebca7 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java
@@ -18,9 +18,9 @@ import java.util.UUID;
@RequestMapping("/assignments/{assignmentId}/quiz")
class QuizAnswerController {
- final AssignmentService assignmentService;
+ private final AssignmentService assignmentService;
- final AssignmentScoreService assignmentScoreService;
+ private final AssignmentScoreService assignmentScoreService;
public QuizAnswerController(AssignmentService assignmentService, AssignmentScoreService assignmentScoreService) {
this.assignmentService = assignmentService;
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java
index e029dc4..8a34fcf 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java
@@ -16,7 +16,7 @@ class QuizEditionController {
private static final String QUIZ_LIST_PAGE = "quiz/list";
private static final String QUIZ_EDIT_PAGE = "quiz/edit";
- QuizRepository quizRepository;
+ private final QuizRepository quizRepository;
public QuizEditionController(QuizRepository quizRepository) {
this.quizRepository = quizRepository;
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index a4665c7..157ef58 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -8,6 +8,7 @@ import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
+import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.fields;
@AnalyzeClasses(packages = "fr.univ_lille.gitlab.classrooms")
class ArchitectureTest {
@@ -47,4 +48,20 @@ class ArchitectureTest {
.areAnnotatedWith(Controller.class)
.should()
.bePackagePrivate();
+
+ @ArchTest
+ final ArchRule controllersAndServicesOnlyHaveFinalPrivateFields = fields()
+ .that()
+ .areDeclaredInClassesThat()
+ .haveNameMatching(".*Controller")
+ .or()
+ .areAnnotatedWith(Controller.class)
+ .or()
+ .haveNameMatching(".*ServiceImpl")
+ .or()
+ .areAnnotatedWith(Service.class)
+ .should()
+ .beFinal()
+ .andShould()
+ .bePrivate();
}
--
2.51.2
From 83cdc69831116d3ca9dd7d7908147c2f10e8e3f6 Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:47:02 +0200
Subject: [PATCH 8/9] =?UTF-8?q?=E2=9C=85=20:=20add=20constructors=20visibi?=
=?UTF-8?q?lity=20rule?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../assignments/AssignmentController.java | 2 +-
.../classrooms/ClassroomController.java | 2 +-
.../dashboard/DashboardController.java | 2 +-
.../classrooms/quiz/QuizAnswerController.java | 2 +-
.../classrooms/quiz/QuizEditionController.java | 2 +-
.../gitlab/classrooms/ArchitectureTest.java | 17 +++++++++++++++--
6 files changed, 20 insertions(+), 7 deletions(-)
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentController.java
index 13ced93..0be35ce 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/assignments/AssignmentController.java
@@ -31,7 +31,7 @@ class AssignmentController {
private static final System.Logger LOGGER = System.getLogger(AssignmentController.class.getName());
- public AssignmentController(AssignmentService assignmentService, QuizService quizService, ClassroomService classroomService, Gitlab gitlab) {
+ AssignmentController(AssignmentService assignmentService, QuizService quizService, ClassroomService classroomService, Gitlab gitlab) {
this.assignmentService = assignmentService;
this.quizService = quizService;
this.classroomService = classroomService;
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/classrooms/ClassroomController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/classrooms/ClassroomController.java
index 1aaef06..d03c15d 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/classrooms/ClassroomController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/classrooms/ClassroomController.java
@@ -26,7 +26,7 @@ class ClassroomController {
private static final System.Logger LOGGER = System.getLogger(ClassroomController.class.getName());
- public ClassroomController(ClassroomService classroomService, Gitlab gitlab) {
+ ClassroomController(ClassroomService classroomService, Gitlab gitlab) {
this.classroomService = classroomService;
this.gitlab = gitlab;
}
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java
index d37bc40..b22ca6f 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/dashboard/DashboardController.java
@@ -21,7 +21,7 @@ class DashboardController {
private final AssignmentService assignmentService;
- public DashboardController(ClassroomService classroomService, AssignmentService assignmentService) {
+ DashboardController(ClassroomService classroomService, AssignmentService assignmentService) {
this.classroomService = classroomService;
this.assignmentService = assignmentService;
}
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java
index adebca7..5e33373 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizAnswerController.java
@@ -22,7 +22,7 @@ class QuizAnswerController {
private final AssignmentScoreService assignmentScoreService;
- public QuizAnswerController(AssignmentService assignmentService, AssignmentScoreService assignmentScoreService) {
+ QuizAnswerController(AssignmentService assignmentService, AssignmentScoreService assignmentScoreService) {
this.assignmentService = assignmentService;
this.assignmentScoreService = assignmentScoreService;
}
diff --git a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java
index 8a34fcf..d4866b9 100644
--- a/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java
+++ b/src/main/java/fr/univ_lille/gitlab/classrooms/quiz/QuizEditionController.java
@@ -18,7 +18,7 @@ class QuizEditionController {
private final QuizRepository quizRepository;
- public QuizEditionController(QuizRepository quizRepository) {
+ QuizEditionController(QuizRepository quizRepository) {
this.quizRepository = quizRepository;
}
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index 157ef58..90e90d0 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -7,8 +7,7 @@ import org.springframework.data.repository.Repository;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
-import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes;
-import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.fields;
+import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*;
@AnalyzeClasses(packages = "fr.univ_lille.gitlab.classrooms")
class ArchitectureTest {
@@ -64,4 +63,18 @@ class ArchitectureTest {
.beFinal()
.andShould()
.bePrivate();
+
+ @ArchTest
+ final ArchRule controllersAndServicesOnlyHavePackagePrivateConstructors = constructors()
+ .that()
+ .areDeclaredInClassesThat()
+ .haveNameMatching(".*Controller")
+ .or()
+ .areAnnotatedWith(Controller.class)
+ .or()
+ .haveNameMatching(".*ServiceImpl")
+ .or()
+ .areAnnotatedWith(Service.class)
+ .should()
+ .bePackagePrivate();
}
--
2.51.2
From 9975bc92d29730fdbad5be25c02e77c288ea3859 Mon Sep 17 00:00:00 2001
From: Julien WITTOUCK
Date: Fri, 25 Aug 2023 11:52:42 +0200
Subject: [PATCH 9/9] =?UTF-8?q?=E2=9C=85=20:=20generate=20better=20display?=
=?UTF-8?q?=20names?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../gitlab/classrooms/ArchitectureTest.java | 12 ++++++------
src/test/resources/archunit.properties | 1 +
2 files changed, 7 insertions(+), 6 deletions(-)
create mode 100644 src/test/resources/archunit.properties
diff --git a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
index 90e90d0..d7750ba 100644
--- a/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
+++ b/src/test/java/fr/univ_lille/gitlab/classrooms/ArchitectureTest.java
@@ -13,14 +13,14 @@ import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*;
class ArchitectureTest {
@ArchTest
- final ArchRule repositoriesAreNotExposedOutsidePackages = classes()
+ final ArchRule repositories_are_not_exposed_outside_packages = classes()
.that()
.areAssignableTo(Repository.class)
.should()
.bePackagePrivate();
@ArchTest
- final ArchRule serviceInterfacesAreExposedAsPublic = classes()
+ final ArchRule service_interfaces_are_exposed_as_public = classes()
.that()
.haveNameMatching(".*Service")
.should()
@@ -29,7 +29,7 @@ class ArchitectureTest {
.bePublic();
@ArchTest
- final ArchRule serviceImplementationsAreNotExposedOutsidePackages = classes()
+ final ArchRule service_implementations_are_not_exposed_outside_packages = classes()
.that()
.haveNameMatching(".*ServiceImpl")
.or()
@@ -40,7 +40,7 @@ class ArchitectureTest {
.bePackagePrivate();
@ArchTest
- final ArchRule controllersAreNotExposedOutsidePackages = classes()
+ final ArchRule controllers_are_not_exposed_outside_packages = classes()
.that()
.haveNameMatching(".*Controller")
.or()
@@ -49,7 +49,7 @@ class ArchitectureTest {
.bePackagePrivate();
@ArchTest
- final ArchRule controllersAndServicesOnlyHaveFinalPrivateFields = fields()
+ final ArchRule controllers_and_services_only_have_private_final_fields = fields()
.that()
.areDeclaredInClassesThat()
.haveNameMatching(".*Controller")
@@ -65,7 +65,7 @@ class ArchitectureTest {
.bePrivate();
@ArchTest
- final ArchRule controllersAndServicesOnlyHavePackagePrivateConstructors = constructors()
+ final ArchRule controllers_and_services_only_have_package_private_constructors = constructors()
.that()
.areDeclaredInClassesThat()
.haveNameMatching(".*Controller")
diff --git a/src/test/resources/archunit.properties b/src/test/resources/archunit.properties
new file mode 100644
index 0000000..d93e375
--- /dev/null
+++ b/src/test/resources/archunit.properties
@@ -0,0 +1 @@
+junit.displayName.replaceUnderscoresBySpaces=true