ArchUnit gestern in Version 0.18.0 veröffentlicht oder wie validiere ich die Architektur am Beispiel einer Blockchain

Gestern wurde ArchUnit in Version 0.18.0 veröffentlicht.

ArchUnit

Wenn das keine Grund ist mal zu zeigen, wie man eine Package-Abhängigkeit überprüfen kann.
Also wir wollen einen Test schreiben, der durchläuft wenn nur aus dem Package blockchain auf das Package be zugegriffen wird. Wie hier im UML Diagramm gezeigt:…

Umgekehrt soll der Testfall fehlschlagen. In Junit 5 geht das mit einem 2 Zeiler. Hier die ganze Testklasse:

Interessant ist auch, wie das UML zeigt, das die ArchUnit Validierung keine statischen Abhängigkeiten zu den beiden Packages hat. Das läuft alles über Reflections und Classpath-Scann.

Natürlich brauchen wir noch ArchUnit in der pom.xml, aber nur mit Test Scope:

Das ganze Blockchain Beispiel-Projekt gibt es hier.