Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
248 changes: 234 additions & 14 deletions ArchUnit.sln

Large diffs are not rendered by default.

37 changes: 21 additions & 16 deletions ArchUnitNET/Fluent/Syntax/Elements/Types/AddTypeCondition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,23 @@ internal AddTypeCondition(IArchRuleCreator<TRuleType> ruleCreator)
: base(ruleCreator) { }

// csharpier-ignore-start
public TNextElement Be(Type firstType, params Type[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.Be(firstType, moreTypes));
public TNextElement Be(IEnumerable<Type> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.Be(types));
public TNextElement Be(params Type[] types) => Be(new SystemTypeObjectProvider<IType>(types));
public TNextElement Be(IEnumerable<Type> types) => Be(new SystemTypeObjectProvider<IType>(types));
public TNextElement Be(IObjectProvider<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.Be(types));

public TNextElement BeAssignableTo(IType firstType, params IType[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeAssignableTo(firstType, moreTypes));
public TNextElement BeAssignableTo(Type firstType, params Type[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeAssignableTo(firstType, moreTypes));
public TNextElement BeAssignableTo() => BeAssignableTo(new ObjectProvider<IType>());
public TNextElement BeAssignableTo(params IType[] types) => BeAssignableTo(new ObjectProvider<IType>(types));
public TNextElement BeAssignableTo(params Type[] types) => BeAssignableTo(new SystemTypeObjectProvider<IType>(types));
public TNextElement BeAssignableTo(IObjectProvider<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeAssignableTo(types));
public TNextElement BeAssignableTo(IEnumerable<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeAssignableTo(types));
public TNextElement BeAssignableTo(IEnumerable<Type> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeAssignableTo(types));
public TNextElement BeAssignableTo(IEnumerable<IType> types) => BeAssignableTo(new ObjectProvider<IType>(types));
public TNextElement BeAssignableTo(IEnumerable<Type> types) => BeAssignableTo(new SystemTypeObjectProvider<IType>(types));

public TNextElement BeNestedIn(IType firstType, params IType[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeNestedIn(firstType, moreTypes));
public TNextElement BeNestedIn(Type firstType, params Type[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeNestedIn(firstType, moreTypes));
public TNextElement BeNestedIn() => BeNestedIn(new ObjectProvider<IType>());
public TNextElement BeNestedIn(params IType[] types) => BeNestedIn(new ObjectProvider<IType>(types));
public TNextElement BeNestedIn(params Type[] types) => BeNestedIn(new SystemTypeObjectProvider<IType>(types));
public TNextElement BeNestedIn(IObjectProvider<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeNestedIn(types));
public TNextElement BeNestedIn(IEnumerable<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeNestedIn(types));
public TNextElement BeNestedIn(IEnumerable<Type> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeNestedIn(types));
public TNextElement BeNestedIn(IEnumerable<IType> types) => BeNestedIn(new ObjectProvider<IType>(types));
public TNextElement BeNestedIn(IEnumerable<Type> types) => BeNestedIn(new SystemTypeObjectProvider<IType>(types));

public TNextElement BeValueTypes() => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeValueTypes());
public TNextElement BeEnums() => CreateNextElement(TypeConditionsDefinition<TRuleType>.BeEnums());
Expand Down Expand Up @@ -68,14 +71,16 @@ internal AddTypeCondition(IArchRuleCreator<TRuleType> ruleCreator)

//Negations

public TNextElement NotBe(Type firstType, params Type[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBe(firstType, moreTypes));
public TNextElement NotBe(IEnumerable<Type> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBe(types));
public TNextElement NotBe(params Type[] types) => NotBe(new SystemTypeObjectProvider<IType>(types));
public TNextElement NotBe(IEnumerable<Type> types) => NotBe(new SystemTypeObjectProvider<IType>(types));
public TNextElement NotBe(IObjectProvider<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBe(types));

public TNextElement NotBeAssignableTo(IType firstType, params IType[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeAssignableTo(firstType, moreTypes));
public TNextElement NotBeAssignableTo(Type firstType, params Type[] moreTypes) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeAssignableTo(firstType, moreTypes));
public TNextElement NotBeAssignableTo() => NotBeAssignableTo(new ObjectProvider<IType>());
public TNextElement NotBeAssignableTo(params IType[] types) => NotBeAssignableTo(new ObjectProvider<IType>(types));
public TNextElement NotBeAssignableTo(params Type[] types) => NotBeAssignableTo(new SystemTypeObjectProvider<IType>(types));
public TNextElement NotBeAssignableTo(IObjectProvider<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeAssignableTo(types));
public TNextElement NotBeAssignableTo(IEnumerable<IType> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeAssignableTo(types));
public TNextElement NotBeAssignableTo(IEnumerable<Type> types) => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeAssignableTo(types));
public TNextElement NotBeAssignableTo(IEnumerable<IType> types) => NotBeAssignableTo(new ObjectProvider<IType>(types));
public TNextElement NotBeAssignableTo(IEnumerable<Type> types) => NotBeAssignableTo(new SystemTypeObjectProvider<IType>(types));

public TNextElement NotBeValueTypes() => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeValueTypes());
public TNextElement NotBeEnums() => CreateNextElement(TypeConditionsDefinition<TRuleType>.NotBeEnums());
Expand Down
37 changes: 21 additions & 16 deletions ArchUnitNET/Fluent/Syntax/Elements/Types/AddTypePredicate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,23 @@ internal AddTypePredicate(IArchRuleCreator<TRelatedType> archRuleCreator)
: base(archRuleCreator) { }

// csharpier-ignore-start
public TNextElement Are(Type firstType, params Type[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.Are(firstType, moreTypes));
public TNextElement Are(IEnumerable<Type> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.Are(types));
public TNextElement Are(params Type[] types) => Are(new SystemTypeObjectProvider<IType>(types));
public TNextElement Are(IEnumerable<Type> types) => Are(new SystemTypeObjectProvider<IType>(types));
public TNextElement Are(IObjectProvider<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.Are(types));

public TNextElement AreAssignableTo(IType firstType, params IType[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreAssignableTo(firstType, moreTypes));
public TNextElement AreAssignableTo(Type firstType, params Type[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreAssignableTo(firstType, moreTypes));
public TNextElement AreAssignableTo() => AreAssignableTo(new ObjectProvider<IType>());
public TNextElement AreAssignableTo(params IType[] types) => AreAssignableTo(new ObjectProvider<IType>(types));
public TNextElement AreAssignableTo(params Type[] types) => AreAssignableTo(new SystemTypeObjectProvider<IType>(types));
public TNextElement AreAssignableTo(IObjectProvider<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreAssignableTo(types));
public TNextElement AreAssignableTo(IEnumerable<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreAssignableTo(types));
public TNextElement AreAssignableTo(IEnumerable<Type> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreAssignableTo(types));
public TNextElement AreAssignableTo(IEnumerable<IType> types) => AreAssignableTo(new ObjectProvider<IType>(types));
public TNextElement AreAssignableTo(IEnumerable<Type> types) => AreAssignableTo(new SystemTypeObjectProvider<IType>(types));

public TNextElement AreNestedIn(IType firstType, params IType[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNestedIn(firstType, moreTypes));
public TNextElement AreNestedIn(Type firstType, params Type[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNestedIn(firstType, moreTypes));
public TNextElement AreNestedIn() => AreNestedIn(new ObjectProvider<IType>());
public TNextElement AreNestedIn(params IType[] types) => AreNestedIn(new ObjectProvider<IType>(types));
public TNextElement AreNestedIn(params Type[] types) => AreNestedIn(new SystemTypeObjectProvider<IType>(types));
public TNextElement AreNestedIn(IObjectProvider<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNestedIn(types));
public TNextElement AreNestedIn(IEnumerable<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNestedIn(types));
public TNextElement AreNestedIn(IEnumerable<Type> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNestedIn(types));
public TNextElement AreNestedIn(IEnumerable<IType> types) => AreNestedIn(new ObjectProvider<IType>(types));
public TNextElement AreNestedIn(IEnumerable<Type> types) => AreNestedIn(new SystemTypeObjectProvider<IType>(types));

public TNextElement AreValueTypes() => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreValueTypes());
public TNextElement AreEnums() => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreEnums());
Expand Down Expand Up @@ -60,14 +63,16 @@ internal AddTypePredicate(IArchRuleCreator<TRelatedType> archRuleCreator)

//Negations

public TNextElement AreNot(Type firstType, params Type[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNot(firstType, moreTypes));
public TNextElement AreNot(IEnumerable<Type> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNot(types));
public TNextElement AreNot(params Type[] types) => AreNot(new SystemTypeObjectProvider<IType>(types));
public TNextElement AreNot(IEnumerable<Type> types) => AreNot(new SystemTypeObjectProvider<IType>(types));
public TNextElement AreNot(IObjectProvider<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNot(types));

public TNextElement AreNotAssignableTo(IType firstType, params IType[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotAssignableTo(firstType, moreTypes));
public TNextElement AreNotAssignableTo(Type firstType, params Type[] moreTypes) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotAssignableTo(firstType, moreTypes));
public TNextElement AreNotAssignableTo() => AreNotAssignableTo(new ObjectProvider<IType>());
public TNextElement AreNotAssignableTo(params IType[] types) => AreNotAssignableTo(new ObjectProvider<IType>(types));
public TNextElement AreNotAssignableTo(params Type[] types) => AreNotAssignableTo(new SystemTypeObjectProvider<IType>(types));
public TNextElement AreNotAssignableTo(IObjectProvider<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotAssignableTo(types));
public TNextElement AreNotAssignableTo(IEnumerable<IType> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotAssignableTo(types));
public TNextElement AreNotAssignableTo(IEnumerable<Type> types) => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotAssignableTo(types));
public TNextElement AreNotAssignableTo(IEnumerable<IType> types) => AreNotAssignableTo(new ObjectProvider<IType>(types));
public TNextElement AreNotAssignableTo(IEnumerable<Type> types) => AreNotAssignableTo(new SystemTypeObjectProvider<IType>(types));

public TNextElement AreNotValueTypes() => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotValueTypes());
public TNextElement AreNotEnums() => CreateNextElement(TypePredicatesDefinition<TRuleType>.AreNotEnums());
Expand Down
14 changes: 8 additions & 6 deletions ArchUnitNET/Fluent/Syntax/Elements/Types/IAddTypeCondition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,12 @@ public interface IAddTypeCondition<TNextElement, TRuleType>
: IAddObjectCondition<TNextElement, TRuleType>
where TRuleType : ICanBeAnalyzed
{
TNextElement Be(Type firstType, params Type[] moreTypes);
TNextElement Be(params Type[] types);
TNextElement Be(IEnumerable<Type> types);

TNextElement BeAssignableTo(IType firstType, params IType[] moreTypes);
TNextElement BeAssignableTo(Type type, params Type[] moreTypes);
TNextElement BeAssignableTo();
TNextElement BeAssignableTo(params IType[] types);
TNextElement BeAssignableTo(params Type[] types);
TNextElement BeAssignableTo(IObjectProvider<IType> types);
TNextElement BeAssignableTo(IEnumerable<IType> types);
TNextElement BeAssignableTo(IEnumerable<Type> types);
Expand Down Expand Up @@ -55,11 +56,12 @@ params Domain.Assembly[] moreAssemblies

//Negations

TNextElement NotBe(Type firstType, params Type[] moreTypes);
TNextElement NotBe(params Type[] types);
TNextElement NotBe(IEnumerable<Type> types);

TNextElement NotBeAssignableTo(IType type, params IType[] moreTypes);
TNextElement NotBeAssignableTo(Type type, params Type[] moreTypes);
TNextElement NotBeAssignableTo();
TNextElement NotBeAssignableTo(params IType[] types);
TNextElement NotBeAssignableTo(params Type[] types);
TNextElement NotBeAssignableTo(IObjectProvider<IType> types);
TNextElement NotBeAssignableTo(IEnumerable<IType> types);
TNextElement NotBeAssignableTo(IEnumerable<Type> types);
Expand Down
14 changes: 8 additions & 6 deletions ArchUnitNET/Fluent/Syntax/Elements/Types/IAddTypePredicate.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,12 @@ public interface IAddTypePredicate<out TNextElement, TRuleType>
: IAddObjectPredicate<TNextElement, TRuleType>
where TRuleType : ICanBeAnalyzed
{
TNextElement Are(Type firstType, params Type[] moreTypes);
TNextElement Are(params Type[] types);
TNextElement Are(IEnumerable<Type> types);

TNextElement AreAssignableTo(IType firstType, params IType[] moreTypes);
TNextElement AreAssignableTo(Type type, params Type[] moreTypes);
TNextElement AreAssignableTo();
TNextElement AreAssignableTo(params IType[] types);
TNextElement AreAssignableTo(params Type[] types);
TNextElement AreAssignableTo(IObjectProvider<IType> types);
TNextElement AreAssignableTo(IEnumerable<IType> types);
TNextElement AreAssignableTo(IEnumerable<Type> types);
Expand Down Expand Up @@ -49,11 +50,12 @@ params Domain.Assembly[] moreAssemblies

//Negations

TNextElement AreNot(Type firstType, params Type[] moreTypes);
TNextElement AreNot(params Type[] types);
TNextElement AreNot(IEnumerable<Type> types);

TNextElement AreNotAssignableTo(IType type, params IType[] moreTypes);
TNextElement AreNotAssignableTo(Type type, params Type[] moreTypes);
TNextElement AreNotAssignableTo();
TNextElement AreNotAssignableTo(params IType[] types);
TNextElement AreNotAssignableTo(params Type[] types);
TNextElement AreNotAssignableTo(IObjectProvider<IType> types);
TNextElement AreNotAssignableTo(IEnumerable<IType> types);
TNextElement AreNotAssignableTo(IEnumerable<Type> types);
Expand Down
Loading
Loading