From 752af8c5811a3effa1acce60f765e366a8149a97 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 13:50:04 +0100 Subject: [PATCH 01/12] Remove duplicated (and unused) abstract test class --- .../AbstractModuleTestArchitectureTest.java | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 src/test/java/de/tum/cit/aet/artemis/shared/architecture/AbstractModuleTestArchitectureTest.java diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/AbstractModuleTestArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/AbstractModuleTestArchitectureTest.java deleted file mode 100644 index cc4f8c80357c..000000000000 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/AbstractModuleTestArchitectureTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package de.tum.cit.aet.artemis.shared.architecture; - -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; -import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.noMembers; - -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; - -public abstract class AbstractModuleTestArchitectureTest extends AbstractArchitectureTest { - - abstract protected String getModulePackageName(); - - abstract protected Class getAbstractModuleIntegrationTestClass(); - - @Test - void integrationTestsShouldExtendAbstractModuleIntegrationTest() { - classes().that().resideInAPackage(ARTEMIS_PACKAGE + "." + getModulePackageName()).and().haveSimpleNameEndingWith("IntegrationTest").should() - .beAssignableTo(getAbstractModuleIntegrationTestClass()).because("All integration tests should extend %s".formatted(getAbstractModuleIntegrationTestClass())) - .check(testClasses); - } - - @Test - void integrationTestsShouldNotAutowireMembers() { - noMembers().that().areAnnotatedWith(Autowired.class).should().beDeclaredInClassesThat().areAssignableTo(getAbstractModuleIntegrationTestClass()).andShould() - .notBeDeclaredIn(getAbstractModuleIntegrationTestClass()) - .because("Integration tests should not autowire members in any class that inherits from %s".formatted(getAbstractModuleIntegrationTestClass())).check(testClasses); - } -} From 0158b580c2dbe51dbb3b9c07ae1a909c1bf0b606 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 13:52:44 +0100 Subject: [PATCH 02/12] Move testDtoImplementations to common AbstractModuleCodeStyleTest --- .../shared/architecture/ArchitectureTest.java | 20 --------- .../module/AbstractModuleCodeStyleTest.java | 42 +++++++++++++++++++ 2 files changed, 42 insertions(+), 20 deletions(-) create mode 100644 src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/ArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/ArchitectureTest.java index 2cbd4da31b86..8a6ae4a94243 100644 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/ArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/ArchitectureTest.java @@ -39,7 +39,6 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; @@ -200,25 +199,6 @@ void testJSONImplementations() { .check(allClasses); } - @Disabled // TODO: Enable this test once the restructuring is done - @Test - void testDTOImplementations() { - var dtoRecordRule = classes().that().haveSimpleNameEndingWith("DTO").and().areNotInterfaces().should().beRecords().andShould().beAnnotatedWith(JsonInclude.class) - .because("All DTOs should be records and annotated with @JsonInclude(JsonInclude.Include.NON_EMPTY)"); - var result = dtoRecordRule.evaluate(allClasses); - log.info("Current number of DTO classes: {}", result.getFailureReport().getDetails().size()); - log.info("Current DTO classes: {}", result.getFailureReport().getDetails()); - // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it - assertThat(result.getFailureReport().getDetails()).hasSize(26); - - var dtoPackageRule = classes().that().resideInAPackage("..dto").should().haveSimpleNameEndingWith("DTO"); - result = dtoPackageRule.evaluate(allClasses); - log.info("Current number of DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails().size()); - log.info("Current DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails()); - // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it - assertThat(result.getFailureReport().getDetails()).hasSize(32); - } - @Test void testGsonExclusion() { // TODO: Replace all uses of gson with Jackson and check that gson is not used any more diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java new file mode 100644 index 000000000000..9121ebbdf9a6 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java @@ -0,0 +1,42 @@ +package de.tum.cit.aet.artemis.shared.architecture.module; + +import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.classes; +import static org.assertj.core.api.Assertions.assertThat; + +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import com.fasterxml.jackson.annotation.JsonInclude; + +public abstract class AbstractModuleCodeStyleTest extends AbstractModuleAccessArchitectureTest { + + private static final Logger log = LoggerFactory.getLogger(AbstractModuleCodeStyleTest.class); + + /** + * Threshold for number of classes with name ending DTO, that are no records or not annotated with JsonInclude. + * We should aim to reduce this threshold. + */ + protected abstract int dtoAsAnnotatedRecordThreshold(); + + protected abstract int dtoNameEndingThreshold(); + + @Test + void testDTOImplementations() { + var dtoRecordRule = classes().that().resideInAPackage(getModuleDtoSubpackage()).and().haveSimpleNameEndingWith("DTO").and().areNotInterfaces().should().beRecords() + .andShould().beAnnotatedWith(JsonInclude.class).because("All DTOs should be records and annotated with @JsonInclude(JsonInclude.Include.NON_EMPTY)"); + var result = dtoRecordRule.evaluate(allClasses); + log.info("Current number of DTO classes: {}", result.getFailureReport().getDetails().size()); + log.info("Current DTO classes: {}", result.getFailureReport().getDetails()); + // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it + assertThat(result.getFailureReport().getDetails()).hasSize(dtoAsAnnotatedRecordThreshold()); + + var dtoPackageRule = classes().that().resideInAPackage(getModuleDtoSubpackage()).should().haveSimpleNameEndingWith("DTO"); + result = dtoPackageRule.evaluate(allClasses); + log.info("Current number of DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails().size()); + log.info("Current DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails()); + // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it + assertThat(result.getFailureReport().getDetails()).hasSize(dtoNameEndingThreshold()); + } + +} From aec23121bd454bba0a74508890f4de3bc3e55818 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 14:18:26 +0100 Subject: [PATCH 03/12] Handle no dto records for module in dto style test --- .../module/AbstractModuleCodeStyleTest.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java index 9121ebbdf9a6..196b45b3d9c3 100644 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java @@ -9,7 +9,9 @@ import com.fasterxml.jackson.annotation.JsonInclude; -public abstract class AbstractModuleCodeStyleTest extends AbstractModuleAccessArchitectureTest { +import de.tum.cit.aet.artemis.shared.architecture.AbstractArchitectureTest; + +public abstract class AbstractModuleCodeStyleTest extends AbstractArchitectureTest implements ModuleArchitectureTest { private static final Logger log = LoggerFactory.getLogger(AbstractModuleCodeStyleTest.class); @@ -25,18 +27,21 @@ public abstract class AbstractModuleCodeStyleTest extends AbstractModuleAccessAr void testDTOImplementations() { var dtoRecordRule = classes().that().resideInAPackage(getModuleDtoSubpackage()).and().haveSimpleNameEndingWith("DTO").and().areNotInterfaces().should().beRecords() .andShould().beAnnotatedWith(JsonInclude.class).because("All DTOs should be records and annotated with @JsonInclude(JsonInclude.Include.NON_EMPTY)"); - var result = dtoRecordRule.evaluate(allClasses); + var result = dtoRecordRule.allowEmptyShould(true).evaluate(allClasses); log.info("Current number of DTO classes: {}", result.getFailureReport().getDetails().size()); log.info("Current DTO classes: {}", result.getFailureReport().getDetails()); // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it assertThat(result.getFailureReport().getDetails()).hasSize(dtoAsAnnotatedRecordThreshold()); var dtoPackageRule = classes().that().resideInAPackage(getModuleDtoSubpackage()).should().haveSimpleNameEndingWith("DTO"); - result = dtoPackageRule.evaluate(allClasses); + result = dtoPackageRule.allowEmptyShould(true).evaluate(allClasses); log.info("Current number of DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails().size()); log.info("Current DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails()); // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it assertThat(result.getFailureReport().getDetails()).hasSize(dtoNameEndingThreshold()); } + private String getModuleDtoSubpackage() { + return getModulePackage() + ".dto.."; + } } From fc2d6f46d846ab693eaa031933bbd5e519642f9e Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 14:19:38 +0100 Subject: [PATCH 04/12] Implement AbstractModuleCodeStyleTest in every module with respective thresholds --- .../AssessmentCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../AthenaCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../AtlasCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ ...ommunicationCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../CoreCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../ExamCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../ExerciseCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../FileUploadCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../IrisCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../LectureCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../LtiCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../ModelingCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../PlagiarismCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../ProgrammingCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../QuizCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ .../TextCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ ...utorialGroupCodeStyleArchitectureTest.java | 21 +++++++++++++++++++ 17 files changed, 357 insertions(+) create mode 100644 src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java create mode 100644 src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java diff --git a/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..a9221acf67f3 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.assessment.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class AssessmentCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".assessment"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 3; + } + + @Override + protected int dtoNameEndingThreshold() { + return 1; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..41ed9156c76d --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.athena.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class AthenaCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".athena"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 1; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..52921039550f --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.atlas.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class AtlasCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".atlas"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 4; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..2aaa23911d33 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.communication.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class CommunicationCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".communication"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 7; + } + + @Override + protected int dtoNameEndingThreshold() { + return 6; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..ee28852ef7d9 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.core.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class CoreCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".core"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 10; + } + + @Override + protected int dtoNameEndingThreshold() { + return 10; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..3b5dbaf27979 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.exam.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class ExamCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".exam"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 4; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..a51628ce175c --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.exercise.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class ExerciseCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".exercise"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 1; + } + + @Override + protected int dtoNameEndingThreshold() { + return 7; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..abfd64678f19 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.fileupload.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class FileUploadCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".fileupload"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 0; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..0fce09a245e7 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.iris.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class IrisCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".iris"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 1; + } + + @Override + protected int dtoNameEndingThreshold() { + return 2; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..efe0ac22e9a6 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.lecture.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class LectureCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".lecture"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 0; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..871295690f9a --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.lti.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class LtiCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".lti"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 10; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..17da8cfea578 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.modeling.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class ModelingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".modeling"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 0; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..e4d563edc5d8 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.plagiarism.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class PlagiarismCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".plagiarism"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 1; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..826a10689b1d --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.programming.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class ProgrammingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".programming"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 2; + } + + @Override + protected int dtoNameEndingThreshold() { + return 6; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..3dbc57bc22ab --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.quiz.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class QuizCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".quiz"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 0; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..808900d0fbf3 --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.text.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class TextCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".text"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 1; + } + + @Override + protected int dtoNameEndingThreshold() { + return 1; + } +} diff --git a/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java new file mode 100644 index 000000000000..a9ccb011637e --- /dev/null +++ b/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java @@ -0,0 +1,21 @@ +package de.tum.cit.aet.artemis.tutorialgroup.architecture; + +import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; + +public class TutorialGroupCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { + + @Override + public String getModulePackage() { + return ARTEMIS_PACKAGE + ".tutorialgroup"; + } + + @Override + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } + + @Override + protected int dtoNameEndingThreshold() { + return 0; + } +} From bdcb96a84384b928789a30b29dec8b86b8000c88 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 14:30:17 +0100 Subject: [PATCH 05/12] Update JavaDoc on threshold values --- .../architecture/module/AbstractModuleCodeStyleTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java index 196b45b3d9c3..cf659f23f91a 100644 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java @@ -17,10 +17,14 @@ public abstract class AbstractModuleCodeStyleTest extends AbstractArchitectureTe /** * Threshold for number of classes with name ending DTO, that are no records or not annotated with JsonInclude. - * We should aim to reduce this threshold. + * We should aim to reduce this threshold to 0. */ protected abstract int dtoAsAnnotatedRecordThreshold(); + /** + * Threshold or number of classes in a 'dto'-package which file name does not end with DTO. + * We should aim to reduce this threshold to 0. + */ protected abstract int dtoNameEndingThreshold(); @Test From 7b12e3c291255874afed8226be23fc2b39d79454 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 14:37:55 +0100 Subject: [PATCH 06/12] Consider all descendant dtos package instead of only direct children of the module package --- .../shared/architecture/module/AbstractModuleCodeStyleTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java index cf659f23f91a..b68c367d55d3 100644 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java @@ -46,6 +46,6 @@ void testDTOImplementations() { } private String getModuleDtoSubpackage() { - return getModulePackage() + ".dto.."; + return getModulePackage() + "..dto.."; } } From 897ace8ed21e873b55a5fdd7e2d1e68d42e048fc Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 6 Dec 2024 14:48:14 +0100 Subject: [PATCH 07/12] Make inheritors of CodeStyleArchitectureTest package-private --- .../architecture/AssessmentCodeStyleArchitectureTest.java | 2 +- .../athena/architecture/AthenaCodeStyleArchitectureTest.java | 2 +- .../atlas/architecture/AtlasCodeStyleArchitectureTest.java | 2 +- .../architecture/CommunicationCodeStyleArchitectureTest.java | 2 +- .../core/architecture/CoreCodeStyleArchitectureTest.java | 2 +- .../exam/architecture/ExamCodeStyleArchitectureTest.java | 2 +- .../architecture/ExerciseCodeStyleArchitectureTest.java | 2 +- .../architecture/FileUploadCodeStyleArchitectureTest.java | 2 +- .../iris/architecture/IrisCodeStyleArchitectureTest.java | 2 +- .../lecture/architecture/LectureCodeStyleArchitectureTest.java | 2 +- .../artemis/lti/architecture/LtiCodeStyleArchitectureTest.java | 2 +- .../architecture/ModelingCodeStyleArchitectureTest.java | 2 +- .../architecture/PlagiarismCodeStyleArchitectureTest.java | 2 +- .../architecture/ProgrammingCodeStyleArchitectureTest.java | 2 +- .../quiz/architecture/QuizCodeStyleArchitectureTest.java | 2 +- .../text/architecture/TextCodeStyleArchitectureTest.java | 2 +- .../architecture/TutorialGroupCodeStyleArchitectureTest.java | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java index a9221acf67f3..4fc43324c1af 100644 --- a/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/assessment/architecture/AssessmentCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class AssessmentCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class AssessmentCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java index 41ed9156c76d..bf94b43d2d63 100644 --- a/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class AthenaCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class AthenaCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java index 52921039550f..4cc6b5cecf29 100644 --- a/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class AtlasCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class AtlasCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java index 2aaa23911d33..5d0d6e3dc705 100644 --- a/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/communication/architecture/CommunicationCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class CommunicationCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class CommunicationCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java index ee28852ef7d9..3106bcd0e0b0 100644 --- a/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/core/architecture/CoreCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class CoreCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class CoreCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java index 3b5dbaf27979..9b6ce999e989 100644 --- a/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class ExamCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class ExamCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java index a51628ce175c..9bcfd3b15cc5 100644 --- a/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class ExerciseCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class ExerciseCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java index abfd64678f19..89586c8e1d79 100644 --- a/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class FileUploadCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class FileUploadCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java index 0fce09a245e7..c8809ce6d258 100644 --- a/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class IrisCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class IrisCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java index efe0ac22e9a6..aae773a1e135 100644 --- a/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class LectureCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class LectureCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java index 871295690f9a..d57a36ea7894 100644 --- a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class LtiCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class LtiCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java index 17da8cfea578..e8d60e6e8bee 100644 --- a/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class ModelingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class ModelingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java index e4d563edc5d8..f16b73070211 100644 --- a/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class PlagiarismCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class PlagiarismCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java index 826a10689b1d..047379ab290b 100644 --- a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class ProgrammingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class ProgrammingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java index 3dbc57bc22ab..cada05b323ae 100644 --- a/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class QuizCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class QuizCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java index 808900d0fbf3..3733922c44da 100644 --- a/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/text/architecture/TextCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class TextCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class TextCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { diff --git a/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java index a9ccb011637e..2e55813e3d95 100644 --- a/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java @@ -2,7 +2,7 @@ import de.tum.cit.aet.artemis.shared.architecture.module.AbstractModuleCodeStyleTest; -public class TutorialGroupCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { +class TutorialGroupCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { @Override public String getModulePackage() { From cb76b889b6abc6c09eec3d143e623b8238693f86 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Tue, 17 Dec 2024 11:39:26 +0100 Subject: [PATCH 08/12] adjust DTO violation thresholds --- .../iris/architecture/IrisCodeStyleArchitectureTest.java | 4 ++-- .../architecture/ProgrammingCodeStyleArchitectureTest.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java index c8809ce6d258..28c42c67d205 100644 --- a/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/iris/architecture/IrisCodeStyleArchitectureTest.java @@ -11,11 +11,11 @@ public String getModulePackage() { @Override protected int dtoAsAnnotatedRecordThreshold() { - return 1; + return 2; } @Override protected int dtoNameEndingThreshold() { - return 2; + return 4; } } diff --git a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java index 047379ab290b..e0b3d4eddd9c 100644 --- a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java @@ -11,11 +11,11 @@ public String getModulePackage() { @Override protected int dtoAsAnnotatedRecordThreshold() { - return 2; + return 6; } @Override protected int dtoNameEndingThreshold() { - return 6; + return 7; } } From 106e133d99562f28ee0ff5a8152f71ae546bf8b6 Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Tue, 17 Dec 2024 11:55:53 +0100 Subject: [PATCH 09/12] adjust DTO violation thresholds --- .../architecture/ProgrammingCodeStyleArchitectureTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java index e0b3d4eddd9c..b15c7b54ed2a 100644 --- a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java @@ -11,7 +11,7 @@ public String getModulePackage() { @Override protected int dtoAsAnnotatedRecordThreshold() { - return 6; + return 7; } @Override From 58555a9fd99bfc8789ededd8f87803b373a29e5f Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 20 Dec 2024 19:12:59 +0100 Subject: [PATCH 10/12] provide default implementation for threshold methods (return 0) --- .../architecture/AthenaCodeStyleArchitectureTest.java | 5 ----- .../architecture/AtlasCodeStyleArchitectureTest.java | 5 ----- .../architecture/ExamCodeStyleArchitectureTest.java | 5 ----- .../FileUploadCodeStyleArchitectureTest.java | 10 ---------- .../architecture/LectureCodeStyleArchitectureTest.java | 10 ---------- .../lti/architecture/LtiCodeStyleArchitectureTest.java | 5 ----- .../ModelingCodeStyleArchitectureTest.java | 10 ---------- .../PlagiarismCodeStyleArchitectureTest.java | 5 ----- .../architecture/QuizCodeStyleArchitectureTest.java | 10 ---------- .../module/AbstractModuleCodeStyleTest.java | 8 ++++++-- .../TutorialGroupCodeStyleArchitectureTest.java | 10 ---------- 11 files changed, 6 insertions(+), 77 deletions(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java index bf94b43d2d63..7c3d9804dc2b 100644 --- a/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/athena/architecture/AthenaCodeStyleArchitectureTest.java @@ -9,11 +9,6 @@ public String getModulePackage() { return ARTEMIS_PACKAGE + ".athena"; } - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - @Override protected int dtoNameEndingThreshold() { return 1; diff --git a/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java index 4cc6b5cecf29..f6289d2cd019 100644 --- a/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/atlas/architecture/AtlasCodeStyleArchitectureTest.java @@ -9,11 +9,6 @@ public String getModulePackage() { return ARTEMIS_PACKAGE + ".atlas"; } - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - @Override protected int dtoNameEndingThreshold() { return 4; diff --git a/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java index 9b6ce999e989..e108a581f7e4 100644 --- a/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/exam/architecture/ExamCodeStyleArchitectureTest.java @@ -9,11 +9,6 @@ public String getModulePackage() { return ARTEMIS_PACKAGE + ".exam"; } - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - @Override protected int dtoNameEndingThreshold() { return 4; diff --git a/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java index 89586c8e1d79..a4df22af3dca 100644 --- a/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/fileupload/architecture/FileUploadCodeStyleArchitectureTest.java @@ -8,14 +8,4 @@ class FileUploadCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { public String getModulePackage() { return ARTEMIS_PACKAGE + ".fileupload"; } - - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - - @Override - protected int dtoNameEndingThreshold() { - return 0; - } } diff --git a/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java index aae773a1e135..f7ab2161169f 100644 --- a/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/lecture/architecture/LectureCodeStyleArchitectureTest.java @@ -8,14 +8,4 @@ class LectureCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { public String getModulePackage() { return ARTEMIS_PACKAGE + ".lecture"; } - - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - - @Override - protected int dtoNameEndingThreshold() { - return 0; - } } diff --git a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java index d57a36ea7894..5b1b6b7c28f9 100644 --- a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java @@ -9,11 +9,6 @@ public String getModulePackage() { return ARTEMIS_PACKAGE + ".lti"; } - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - @Override protected int dtoNameEndingThreshold() { return 10; diff --git a/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java index e8d60e6e8bee..d6dc2219ab45 100644 --- a/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/modeling/architecture/ModelingCodeStyleArchitectureTest.java @@ -8,14 +8,4 @@ class ModelingCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { public String getModulePackage() { return ARTEMIS_PACKAGE + ".modeling"; } - - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - - @Override - protected int dtoNameEndingThreshold() { - return 0; - } } diff --git a/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java index f16b73070211..7acab6337b89 100644 --- a/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/plagiarism/architecture/PlagiarismCodeStyleArchitectureTest.java @@ -9,11 +9,6 @@ public String getModulePackage() { return ARTEMIS_PACKAGE + ".plagiarism"; } - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - @Override protected int dtoNameEndingThreshold() { return 1; diff --git a/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java index cada05b323ae..06d44e70908a 100644 --- a/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/quiz/architecture/QuizCodeStyleArchitectureTest.java @@ -8,14 +8,4 @@ class QuizCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest { public String getModulePackage() { return ARTEMIS_PACKAGE + ".quiz"; } - - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - - @Override - protected int dtoNameEndingThreshold() { - return 0; - } } diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java index b68c367d55d3..5659aea4b0ca 100644 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java @@ -19,13 +19,17 @@ public abstract class AbstractModuleCodeStyleTest extends AbstractArchitectureTe * Threshold for number of classes with name ending DTO, that are no records or not annotated with JsonInclude. * We should aim to reduce this threshold to 0. */ - protected abstract int dtoAsAnnotatedRecordThreshold(); + protected int dtoAsAnnotatedRecordThreshold() { + return 0; + } /** * Threshold or number of classes in a 'dto'-package which file name does not end with DTO. * We should aim to reduce this threshold to 0. */ - protected abstract int dtoNameEndingThreshold(); + protected int dtoNameEndingThreshold() { + return 0; + } @Test void testDTOImplementations() { diff --git a/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java index 2e55813e3d95..4bf807b83f89 100644 --- a/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/tutorialgroup/architecture/TutorialGroupCodeStyleArchitectureTest.java @@ -8,14 +8,4 @@ class TutorialGroupCodeStyleArchitectureTest extends AbstractModuleCodeStyleTest public String getModulePackage() { return ARTEMIS_PACKAGE + ".tutorialgroup"; } - - @Override - protected int dtoAsAnnotatedRecordThreshold() { - return 0; - } - - @Override - protected int dtoNameEndingThreshold() { - return 0; - } } From 750a60e17e489010d8138d43199ab6bb046fd78c Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Fri, 20 Dec 2024 19:13:53 +0100 Subject: [PATCH 11/12] remove redundant inline comments --- .../shared/architecture/module/AbstractModuleCodeStyleTest.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java index 5659aea4b0ca..73d517a8f2ce 100644 --- a/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/shared/architecture/module/AbstractModuleCodeStyleTest.java @@ -38,14 +38,12 @@ void testDTOImplementations() { var result = dtoRecordRule.allowEmptyShould(true).evaluate(allClasses); log.info("Current number of DTO classes: {}", result.getFailureReport().getDetails().size()); log.info("Current DTO classes: {}", result.getFailureReport().getDetails()); - // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it assertThat(result.getFailureReport().getDetails()).hasSize(dtoAsAnnotatedRecordThreshold()); var dtoPackageRule = classes().that().resideInAPackage(getModuleDtoSubpackage()).should().haveSimpleNameEndingWith("DTO"); result = dtoPackageRule.allowEmptyShould(true).evaluate(allClasses); log.info("Current number of DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails().size()); log.info("Current DTOs that do not end with \"DTO\": {}", result.getFailureReport().getDetails()); - // TODO: reduce the following number to 0, if the current number is less and the test fails, decrease it assertThat(result.getFailureReport().getDetails()).hasSize(dtoNameEndingThreshold()); } From 65b5a7fabcead0f1d58269237799bd0992c6da0d Mon Sep 17 00:00:00 2001 From: Ole Vester Date: Mon, 6 Jan 2025 19:29:40 +0100 Subject: [PATCH 12/12] adjust dto violation thresholds to current values --- .../architecture/ExerciseCodeStyleArchitectureTest.java | 2 +- .../lti/architecture/LtiCodeStyleArchitectureTest.java | 2 +- .../architecture/ProgrammingCodeStyleArchitectureTest.java | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java index 9bcfd3b15cc5..10d68925cfdd 100644 --- a/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/exercise/architecture/ExerciseCodeStyleArchitectureTest.java @@ -11,7 +11,7 @@ public String getModulePackage() { @Override protected int dtoAsAnnotatedRecordThreshold() { - return 1; + return 2; } @Override diff --git a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java index 5b1b6b7c28f9..911a388cab3b 100644 --- a/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/lti/architecture/LtiCodeStyleArchitectureTest.java @@ -11,6 +11,6 @@ public String getModulePackage() { @Override protected int dtoNameEndingThreshold() { - return 10; + return 11; } } diff --git a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java index b15c7b54ed2a..35687c7a9667 100644 --- a/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java +++ b/src/test/java/de/tum/cit/aet/artemis/programming/architecture/ProgrammingCodeStyleArchitectureTest.java @@ -11,11 +11,11 @@ public String getModulePackage() { @Override protected int dtoAsAnnotatedRecordThreshold() { - return 7; + return 1; } @Override protected int dtoNameEndingThreshold() { - return 7; + return 17; } }