update ArchUnit rules (#11671)

This commit is contained in:
sullis 2022-02-20 19:26:04 -08:00 committed by GitHub
parent aec4a12cae
commit 636e87568d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,36 +4,34 @@ import com.tngtech.archunit.core.domain.JavaClasses;
import com.tngtech.archunit.core.domain.JavaModifier; import com.tngtech.archunit.core.domain.JavaModifier;
import com.tngtech.archunit.core.importer.ClassFileImporter; import com.tngtech.archunit.core.importer.ClassFileImporter;
import com.tngtech.archunit.lang.ArchRule; import com.tngtech.archunit.lang.ArchRule;
import com.tngtech.archunit.library.GeneralCodingRules;
import org.junit.Test; import org.junit.Test;
import org.slf4j.Logger;
import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*; import static com.tngtech.archunit.lang.syntax.ArchRuleDefinition.*;
import static com.tngtech.archunit.library.GeneralCodingRules.NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS;
import static com.tngtech.archunit.library.GeneralCodingRules.NO_CLASSES_SHOULD_USE_JAVA_UTIL_LOGGING;
public class ArchUnitRulesTest { public class ArchUnitRulesTest {
private static final JavaClasses CLASSES = new ClassFileImporter()
.importPackages("org.openapitools.codegen.languages");
@Test @Test
public void testLoggersAreNotPublicFinalAndNotStatic() { public void testLoggersAreNotPublicFinalAndNotStatic() {
final JavaClasses importedClasses = new ClassFileImporter() ArchUnitRulesTest.LOGGERS_SHOULD_BE_NOT_PUBLIC_NOT_STATIC_AND_FINAL.check(CLASSES);
.importPackages("org.openapitools.codegen.languages");
ArchUnitRulesTest.LOGGERS_SHOULD_BE_NOT_PUBLIC_NOT_STATIC_AND_FINAL.check(importedClasses);
} }
@Test @Test
public void classesNotAllowedToUseStandardStreams() { public void classesNotAllowedToUseStandardStreams() {
final JavaClasses importedClasses = new ClassFileImporter() NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS.check(CLASSES);
.importPackages("org.openapitools.codegen.languages"); }
GeneralCodingRules.NO_CLASSES_SHOULD_ACCESS_STANDARD_STREAMS.check(importedClasses); @Test
public void disallowJavaUtilLogging() {
NO_CLASSES_SHOULD_USE_JAVA_UTIL_LOGGING.check(CLASSES);
} }
@Test @Test
public void abstractClassesAreAbstract() { public void abstractClassesAreAbstract() {
final JavaClasses importedClasses = new ClassFileImporter() ArchUnitRulesTest.ABSTRACT_CLASS_MUST_BE_ABSTRACT.check(CLASSES);
.importPackages("org.openapitools.codegen.languages");
ArchUnitRulesTest.ABSTRACT_CLASS_MUST_BE_ABSTRACT.check(importedClasses);
} }
/** /**
@ -43,7 +41,7 @@ public class ArchUnitRulesTest {
public static final ArchRule LOGGERS_SHOULD_BE_NOT_PUBLIC_NOT_STATIC_AND_FINAL = public static final ArchRule LOGGERS_SHOULD_BE_NOT_PUBLIC_NOT_STATIC_AND_FINAL =
fields() fields()
.that() .that()
.haveRawType(Logger.class) .haveRawType(org.slf4j.Logger.class)
.should().notBePublic() .should().notBePublic()
.andShould().notBeStatic() .andShould().notBeStatic()
.andShould().beFinal() .andShould().beFinal()