ArchUnitNET 0.13.4 coverage
A row reads as the tab claims only when every piece of its evidence passed: an upstream spec or ported case in conformance gate 1 or gate 2, or a named Rulebearing test. Any other row reads unproven, whatever the tab says (ADR-0009, ADR-0075). Written from nightly run 38190518342. Evidence marked upstream is the pinned suite's own; the rest is Rulebearing's tests.
69 of 69 rows proven; 0 unproven.
Selectors (select.kind)
| ArchUnitNET | Rulebearing | Languages | Evidence |
|---|---|---|---|
Types() | Parity | .NET, TS (class, interface, enum, type alias), Python (class) | |
Classes() | Parity | all | |
Interfaces() | Parity | .NET, TS | |
Attributes() | Parity | .NET; TS and Python decorators | |
Members() | Parity | all | |
FieldMembers() | Parity | .NET, TS class fields, Python class attributes | |
MethodMembers() | Parity | all | |
PropertyMembers() | Parity | .NET, TS accessors, Python @property | |
| (none) | Addition | TS, Python additions |
Predicates and conditions shared by every element (ObjectPredicatesDefinition, ObjectConditionsDefinition)
| ArchUnitNET (predicate / condition) | Rulebearing key | Status | Evidence |
|---|---|---|---|
Are / Be, AreNot / NotBe (a type, a list, or a selector) | are, be | Parity, Cross | |
Exist / NotExist | exist | Parity | |
HaveName, HaveNameMatching, HaveNameStartingWith, HaveNameEndingWith, HaveNameContaining (+ DoNot, Not) | haveName, haveNameMatching, haveNameStartingWith, haveNameEndingWith, haveNameContaining | Parity, Cross | |
HaveFullName, HaveFullNameMatching, ...StartingWith, ...EndingWith, ...Containing | haveFullName* | Parity, Cross (dotted module path) | |
HaveAssemblyQualifiedName and its four variants | haveAssemblyQualifiedName* | Parity (.NET); TS and Python: package-qualified name | |
ArePublic, ArePrivate, AreProtected, AreInternal, AreProtectedInternal, ArePrivateProtected / Be... | arePublic ... arePrivateProtected; be... | Parity; Cross for public / private / protected (TS), public / private by underscore (Python) | |
DependOnAny / DoNotDependOnAny / NotDependOnAny, DependOnAnyTypesThat | dependOnAny (value: names, regex, or nested selector) | Parity, Cross | |
OnlyDependOn / OnlyDependOnTypesThat | onlyDependOn | Parity, Cross | |
CallAny / DoNotCallAny / NotCallAny | callAny | Parity (.NET IL); TS and Python: resolved call expressions | |
HaveAnyAttributes, HaveAnyAttributesThat, OnlyHaveAttributes, OnlyHaveAttributesThat | haveAnyAttributes, onlyHaveAttributes | Parity, Cross (decorators) | |
HaveAttributeWithArguments, HaveAttributeWithNamedArguments, HaveAnyAttributesWithArguments, HaveAnyAttributesWithNamedArguments | haveAttributeWithArguments, haveAttributeWithNamedArguments, haveAnyAttributesWithArguments, haveAnyAttributesWithNamedArguments | Parity; Cross for literal decorator arguments | |
FollowCustomPredicate / FollowCustomCondition | none | Stays |
Type predicates and conditions (TypePredicatesDefinition, TypeConditionsDefinition)
| ArchUnitNET | Rulebearing key | Status | Evidence |
|---|---|---|---|
ResideInNamespace, ResideInNamespaceMatching (+ DoNot / Not) | resideInNamespace, resideInNamespaceMatching | Parity, Cross (dotted module path; TS folder path) | |
ResideInAssembly, ResideInAssemblyMatching | resideInAssembly, resideInAssemblyMatching | Parity; Cross as package / distribution | |
AreAssignableTo / BeAssignableTo, BeAssignableToTypesThat | areAssignableTo, beAssignableTo | Parity; Cross for extends chains | |
ImplementInterface, ImplementAny, ImplementAnyInterfacesThat | implementInterface, implementAny | Parity; TS implements | |
AreEnums, AreStructs, AreValueTypes / Be... | areEnums, areStructs, areValueTypes | Parity; areEnums Cross (TS enum, Python Enum) | |
AreNested, AreNestedIn / BeNested, BeNestedIn | areNested, areNestedIn | Parity, Cross | |
HaveMemberWithName, HaveFieldMemberWithName, HaveMethodMemberWithName, HavePropertyMemberWithName | haveMemberWithName, haveFieldMemberWithName, haveMethodMemberWithName, havePropertyMemberWithName | Parity, Cross | |
BeTypesThat | nested selector under be | Parity | |
AdhereToPlantUmlDiagram | adhereTo: <file>.puml (diagram rule) | Parity, Cross |
|
Class and attribute predicates and conditions
| ArchUnitNET | Rulebearing key | Status | Evidence |
|---|---|---|---|
AreAbstract / BeAbstract (classes, attributes) | areAbstract, beAbstract | Parity; TS abstract, Python ABC | |
AreSealed / BeSealed (classes, attributes) | areSealed, beSealed | Parity; TS and Python: validation error | |
AreRecord / BeRecord | areRecord, beRecord | Parity; Python @dataclass(frozen=True) as areImmutable | |
AreImmutable / BeImmutable | areImmutable, beImmutable | Parity |
Member predicates and conditions
| ArchUnitNET | Rulebearing key | Status | Evidence |
|---|---|---|---|
AreDeclaredIn, BeDeclaredIn, BeDeclaredInTypesThat (+ Not) | areDeclaredIn, declaredInTypesThat | Parity, Cross | |
AreStatic / BeStatic | areStatic, beStatic | Parity, Cross (TS static, Python @staticmethod / @classmethod) | |
AreReadOnly / BeReadOnly | areReadOnly, beReadOnly | Parity; TS readonly | |
AreImmutable / BeImmutable | areImmutable | Parity | |
Method: AreConstructors / BeConstructor, AreNoConstructors | areConstructors | Parity, Cross | |
Method: AreVirtual / BeVirtual | areVirtual | Parity | |
Method: HaveReturnType / DoNotHaveReturnType | haveReturnType | Parity; TS annotated return types | |
Method: HaveDependencyInMethodBodyTo / DoNotHave... | haveDependencyInMethodBodyTo | Parity; TS and Python: references inside the function body | |
Method: AreCalledBy / BeCalledBy / NotBeCalledBy | areCalledBy | Parity; Cross where calls resolve | |
Method: BeMethodMembersThat | nested selector | Parity | |
Property: HaveGetter, HaveNoGetter, HaveSetter, HaveNoSetter, HaveInitSetter | haveGetter, haveSetter, haveInitSetter | Parity; TS accessors | |
Property: HavePublicGetter, HavePrivateGetter, HaveProtectedGetter, HaveInternalGetter, HaveProtectedInternalGetter, HavePrivateProtectedGetter and the six setter twins | getterVisibility: public, setterVisibility: private, and so on | Parity | |
Property: AreVirtual / BeVirtual | areVirtual | Parity |
Combinators and rule operations
| ArchUnitNET | Rulebearing | Status | Evidence |
|---|---|---|---|
That(), Should() | Parity | Parity | |
And(), Or() in predicates; AndShould(), OrShould() in conditions | Parity | Parity | |
Because(reason) | Parity | Parity | |
Check(architecture), Evaluate(architecture) returning results per object | Parity | Parity | |
WithoutRequiringPositiveResults() | Parity | Parity | |
Combined rules (rule1.And(rule2), Or) | Parity | Parity |
Slices (SliceRuleDefinition)
| ArchUnitNET | Rulebearing | Status | Evidence |
|---|---|---|---|
Slices().Matching("Ns.(*)") | Parity, Cross (path or module pattern) | Parity, Cross (path or module pattern) | |
Slices().MatchingWithPackages("Ns.(**)") | Parity, Cross | Parity, Cross | |
Should().NotDependOnEachOther() | Parity, Cross | Parity, Cross | |
Should().BeFreeOfCycles() | Parity, Cross | Parity, Cross | |
slice filtering (Where, ignoring named slices) | Parity | Parity |
PlantUML
| ArchUnitNET | Rulebearing | Status | Evidence |
|---|---|---|---|
Types().Should().AdhereToPlantUmlDiagram(file) (component diagram with <<..pattern..>> stereotypes, aliases, associations) | Parity, Cross | Parity, Cross |
|
PlantUmlDefinition.ComponentDiagram().WithDependenciesFromSlices(...) / WithDependenciesFromTypes / WithDependenciesFromNamespaces, WriteToFile | types | types | |
GenerationOptions: LimitDependencies, C4Style, FocusOn, IncludeDependenciesToOther, DependencyFilters | Parity | Parity | |
Import exceptions (IllegalDiagramException, ComponentIntersectionException, ...) | Parity | Parity |
Loader and caches
| ArchUnitNET | Rulebearing | Status | Evidence |
|---|---|---|---|
LoadAssembly, LoadAssemblies, LoadAssemblyIncludingDependencies, LoadAssembliesIncludingDependencies, LoadAssembliesRecursively | Parity | Parity | |
LoadFilteredDirectory(dir, filter), LoadFilteredDirectoryIncludingDependencies | Parity | Parity | |
LoadNamespacesWithinAssembly(assembly, namespaces...) | Parity | Parity | |
Build() | Parity | Parity | |
WithoutArchitectureCache, WithoutRuleEvaluationCache | Parity | Parity | |
| solution-driven loading (none in ArchUnitNET) | Addition | Addition |
Test framework adapters
| ArchUnitNET | Rulebearing | Status | Evidence |
|---|---|---|---|
ArchUnitNET.xUnit, .xUnitV3, .NUnit, .MSTestV2, .MSTestV4, .TUnit (rule.Check(arch) throws a framework assertion) | Parity in effect | Parity in effect |