diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index 747a25af9..41f36c6a7 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,7 +3,7 @@ "isRoot": true, "tools": { "csharpier": { - "version": "1.0.1", + "version": "1.1.2", "commands": [ "csharpier" ], @@ -17,7 +17,7 @@ "rollForward": false }, "dotnet-reportgenerator-globaltool": { - "version": "5.4.4", + "version": "5.4.16", "commands": [ "reportgenerator" ], diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 83b49ebe0..863858455 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,5 +1,4 @@ name: build -run-name: Build and test on: pull_request: types: [opened, reopened, synchronize] @@ -17,11 +16,11 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Setup .NET - uses: actions/setup-dotnet@3951f0dfe7a07e2313ec93c75700083e2005cbab # v4.3.0 + uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # v5.0.0 with: - dotnet-version: 9.0.304 + dotnet-version: 10.0.100 - name: Install tools run: dotnet tool restore - name: Check formatting @@ -31,15 +30,15 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Setup .NET - uses: actions/setup-dotnet@3951f0dfe7a07e2313ec93c75700083e2005cbab # v4.3.0 + uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # v5.0.0 with: - dotnet-version: 9.0.304 + dotnet-version: 10.0.100 - name: Run tests run: dotnet test -c Debug --collect:"XPlat Code Coverage" --settings coverlet.runsettings ArchUnitNETTests/ - name: Upload coverage reports to Codecov - uses: codecov/codecov-action@v5.3.1 + uses: codecov/codecov-action@v5.5.1 with: token: ${{ secrets.CODECOV_TOKEN }} run-tests: @@ -50,11 +49,11 @@ jobs: runs-on: ${{ matrix.os }} steps: - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Setup .NET - uses: actions/setup-dotnet@3951f0dfe7a07e2313ec93c75700083e2005cbab # v4.3.0 + uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # v5.0.0 with: - dotnet-version: 9.0.304 + dotnet-version: 10.0.100 - name: Run tests run: dotnet test -c Debug publish-docs: @@ -68,7 +67,7 @@ jobs: contents: write steps: - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Setup doxygen run: sudo apt-get install doxygen graphviz - name: Create temporary directory @@ -88,7 +87,7 @@ jobs: fi fi - name: Checkout gh-pages branch - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 with: ref: gh-pages path: ${{ env.DOCS_TEMP_DIR }} @@ -136,11 +135,11 @@ jobs: - run-tests steps: - name: Checkout - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Setup .NET - uses: actions/setup-dotnet@3951f0dfe7a07e2313ec93c75700083e2005cbab # v4.3.0 + uses: actions/setup-dotnet@d4c94342e560b34958eacfc5d055d21461ed1c5d # v5.0.0 with: - dotnet-version: 9.0.304 + dotnet-version: 10.0.100 - name: Build run: dotnet build -c Release - name: Pack diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index d6f444a5c..8daf24a32 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -21,14 +21,14 @@ jobs: language: ["csharp"] steps: - name: Checkout repository - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 - name: Initialize CodeQL - uses: github/codeql-action/init@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9 + uses: github/codeql-action/init@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5 with: languages: ${{ matrix.language }} - name: Autobuild - uses: github/codeql-action/autobuild@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9 + uses: github/codeql-action/autobuild@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5 - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@9e8d0789d4a0fa9ceb6b1738f7e269594bdd67f0 # v3.28.9 + uses: github/codeql-action/analyze@fdbfb4d2750291e159f0156def62b853c2798ca2 # v4.31.5 with: category: "/language:${{matrix.language}}" diff --git a/ArchUnitNET.MSTestV2/ArchUnitNET.MSTestV2.csproj b/ArchUnitNET.MSTestV2/ArchUnitNET.MSTestV2.csproj index f20ffa976..b9a5d45cb 100644 --- a/ArchUnitNET.MSTestV2/ArchUnitNET.MSTestV2.csproj +++ b/ArchUnitNET.MSTestV2/ArchUnitNET.MSTestV2.csproj @@ -1,6 +1,6 @@  - netstandard2.0;net45 + netstandard2.0;net462 true ArchUnit C# MSTestV2 Extension MSTestV2 Extension for the C# Version of ArchUnit (see: archunit.org) diff --git a/ArchUnitNET.MSTestV2Tests/ArchUnitNET.MSTestV2Tests.csproj b/ArchUnitNET.MSTestV2Tests/ArchUnitNET.MSTestV2Tests.csproj index 789081472..0ac1a52d0 100644 --- a/ArchUnitNET.MSTestV2Tests/ArchUnitNET.MSTestV2Tests.csproj +++ b/ArchUnitNET.MSTestV2Tests/ArchUnitNET.MSTestV2Tests.csproj @@ -1,14 +1,14 @@  - net9.0 + net10.0 false TNG Technology Consulting GmbH true - - - + + + diff --git a/ArchUnitNET.MSTestV2Tests/RuleEvaluationTests.cs b/ArchUnitNET.MSTestV2Tests/RuleEvaluationTests.cs index fada9f3b4..621fa150c 100644 --- a/ArchUnitNET.MSTestV2Tests/RuleEvaluationTests.cs +++ b/ArchUnitNET.MSTestV2Tests/RuleEvaluationTests.cs @@ -31,14 +31,14 @@ public static void Setup(TestContext context) public void ArchRuleAssertTest() { ArchRuleAssert.FulfilsRule(_architecture, _trueRule); - Assert.ThrowsException(() => + Assert.ThrowsExactly(() => ArchRuleAssert.FulfilsRule(_architecture, _falseRule) ); Assert.AreEqual( _expectedErrorMessage, RemoveAssertionText( Assert - .ThrowsException(() => + .ThrowsExactly(() => ArchRuleAssert.FulfilsRule(_architecture, _falseRule) ) .Message @@ -51,14 +51,13 @@ public void ArchRuleExtensionsTest() { _architecture.CheckRule(_trueRule); _trueRule.Check(_architecture); - Assert.ThrowsException(() => _architecture.CheckRule(_falseRule) - ); - Assert.ThrowsException(() => _falseRule.Check(_architecture)); + Assert.ThrowsExactly(() => _architecture.CheckRule(_falseRule)); + Assert.ThrowsExactly(() => _falseRule.Check(_architecture)); Assert.AreEqual( _expectedErrorMessage, RemoveAssertionText( Assert - .ThrowsException(() => + .ThrowsExactly(() => _architecture.CheckRule(_falseRule) ) .Message @@ -68,9 +67,7 @@ public void ArchRuleExtensionsTest() _expectedErrorMessage, RemoveAssertionText( Assert - .ThrowsException(() => - _falseRule.Check(_architecture) - ) + .ThrowsExactly(() => _falseRule.Check(_architecture)) .Message ) ); diff --git a/ArchUnitNET.NUnit/ArchUnitNET.NUnit.csproj b/ArchUnitNET.NUnit/ArchUnitNET.NUnit.csproj index cff6011a1..1a15bd805 100644 --- a/ArchUnitNET.NUnit/ArchUnitNET.NUnit.csproj +++ b/ArchUnitNET.NUnit/ArchUnitNET.NUnit.csproj @@ -1,6 +1,6 @@  - netstandard2.0;net45 + netstandard2.0;net462 true ArchUnit C# NUnit Extension NUnit Extension for the C# Version of ArchUnit (see: archunit.org) diff --git a/ArchUnitNET.NUnitTests/ArchUnitNET.NUnitTests.csproj b/ArchUnitNET.NUnitTests/ArchUnitNET.NUnitTests.csproj index 5d43060b8..945a5abcc 100644 --- a/ArchUnitNET.NUnitTests/ArchUnitNET.NUnitTests.csproj +++ b/ArchUnitNET.NUnitTests/ArchUnitNET.NUnitTests.csproj @@ -1,13 +1,13 @@  - net9.0 + net10.0 false TNG Technology Consulting GmbH true - - + + diff --git a/ArchUnitNET.TUnitTests/ArchUnitNET.TUnitTests.csproj b/ArchUnitNET.TUnitTests/ArchUnitNET.TUnitTests.csproj index 353c36d72..d6e3c0964 100644 --- a/ArchUnitNET.TUnitTests/ArchUnitNET.TUnitTests.csproj +++ b/ArchUnitNET.TUnitTests/ArchUnitNET.TUnitTests.csproj @@ -1,13 +1,13 @@  - net9.0 + net10.0 false TNG Technology Consulting GmbH true - + diff --git a/ArchUnitNET.xUnit/ArchUnitNET.xUnit.csproj b/ArchUnitNET.xUnit/ArchUnitNET.xUnit.csproj index db3266136..1141b49aa 100644 --- a/ArchUnitNET.xUnit/ArchUnitNET.xUnit.csproj +++ b/ArchUnitNET.xUnit/ArchUnitNET.xUnit.csproj @@ -1,6 +1,6 @@  - netstandard2.0;net45 + netstandard2.0;net462 true ArchUnit C# xUnit Extension xUnit Extension for the C# Version of ArchUnit (see: archunit.org) diff --git a/ArchUnitNET.xUnitTests/ArchUnitNET.xUnitTests.csproj b/ArchUnitNET.xUnitTests/ArchUnitNET.xUnitTests.csproj index 8c727ea6a..29967bcfa 100644 --- a/ArchUnitNET.xUnitTests/ArchUnitNET.xUnitTests.csproj +++ b/ArchUnitNET.xUnitTests/ArchUnitNET.xUnitTests.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 false TNG Technology Consulting GmbH true @@ -8,7 +8,7 @@ - + diff --git a/ArchUnitNET.xUnitV3Tests/ArchUnitNET.xUnitV3Tests.csproj b/ArchUnitNET.xUnitV3Tests/ArchUnitNET.xUnitV3Tests.csproj index d47df0d83..c5aa1c7fc 100644 --- a/ArchUnitNET.xUnitV3Tests/ArchUnitNET.xUnitV3Tests.csproj +++ b/ArchUnitNET.xUnitV3Tests/ArchUnitNET.xUnitV3Tests.csproj @@ -1,14 +1,14 @@  - net9.0 + net10.0 false TNG Technology Consulting GmbH true - - + + diff --git a/ArchUnitNET/ArchUnitNET.csproj b/ArchUnitNET/ArchUnitNET.csproj index c773a2057..e854c84ab 100644 --- a/ArchUnitNET/ArchUnitNET.csproj +++ b/ArchUnitNET/ArchUnitNET.csproj @@ -1,6 +1,6 @@  - netstandard2.0;net45 + netstandard2.0;net462 true ArchUnitNET TngTech.ArchUnitNET @@ -18,10 +18,10 @@ - + - - + + diff --git a/ArchUnitNET/Domain/Extensions/AttributeExtensions.cs b/ArchUnitNET/Domain/Extensions/AttributeExtensions.cs index 4e60e4fd3..958d130ad 100644 --- a/ArchUnitNET/Domain/Extensions/AttributeExtensions.cs +++ b/ArchUnitNET/Domain/Extensions/AttributeExtensions.cs @@ -1,44 +1,16 @@ using System; +using System.Collections.Generic; using System.Linq; namespace ArchUnitNET.Domain.Extensions { public static class AttributeExtensions { - [Obsolete( - "Either HasAttribute() without the useRegularExpressions parameter or HasAttributeMatching() should be used" - )] - public static bool HasAttribute( - this IHasAttributes a, - string pattern, - bool useRegularExpressions - ) - { - return a.Attributes.Any(attribute => - attribute.FullNameMatches(pattern, useRegularExpressions) - ); - } - public static bool HasAttribute(this IHasAttributes a, string fullName) { return a.Attributes.Any(attribute => attribute.FullNameEquals(fullName)); } - [Obsolete( - "Either OnlyHasAttributes() without the useRegularExpressions parameter or OnlyHasAttributesMatching() should be used" - )] - public static bool OnlyHasAttributes( - this IHasAttributes a, - string pattern, - bool useRegularExpressions - ) - { - return a.Attributes.IsNullOrEmpty() - || a.Attributes.All(attribute => - attribute.FullNameMatches(pattern, useRegularExpressions) - ); - } - public static bool HasAttributeMatching(this IHasAttributes a, string pattern) { return a.Attributes.Any(attribute => attribute.FullNameMatches(pattern)); @@ -55,5 +27,28 @@ public static bool OnlyHasAttributesMatching(this IHasAttributes a, string patte return a.Attributes.IsNullOrEmpty() || a.Attributes.All(attribute => attribute.FullNameMatches(pattern)); } + + internal static IEnumerable GetAllAttributeArgumentValues( + this AttributeInstance instance + ) => + instance + .AttributeArguments.Select(arg => arg.Value) + .Select(value => + value is ITypeInstance typeInstance ? typeInstance.Type : value + ); + + internal static IEnumerable<(string, object)> GetAllNamedAttributeArgumentTuples( + this AttributeInstance instance + ) => + instance + .AttributeArguments.OfType() + .Select(arg => + ( + arg.Name, + arg.Value is ITypeInstance typeInstance + ? typeInstance.Type + : arg.Value + ) + ); } } diff --git a/ArchUnitNET/Domain/Extensions/DependencyExtensions.cs b/ArchUnitNET/Domain/Extensions/DependencyExtensions.cs index c0a3dca4f..9dab4273a 100644 --- a/ArchUnitNET/Domain/Extensions/DependencyExtensions.cs +++ b/ArchUnitNET/Domain/Extensions/DependencyExtensions.cs @@ -7,19 +7,6 @@ namespace ArchUnitNET.Domain.Extensions { public static class DependencyExtensions { - [Obsolete( - "Either CallsMethod() without the useRegularExpressions parameter or CallsMethodMatching() should be used" - )] - public static bool CallsMethod( - this IHasDependencies type, - string pattern, - bool useRegularExpressions - ) - { - return type.GetCalledMethods() - .Any(member => member.FullNameMatches(pattern, useRegularExpressions)); - } - public static bool CallsMethod(this IHasDependencies type, string fullName) { return type.GetCalledMethods().Any(member => member.FullNameEquals(fullName)); @@ -44,19 +31,6 @@ public static IEnumerable GetAccessedFieldMembers(this IHasDependen .Select(dependency => (FieldMember)dependency.TargetMember); } - [Obsolete( - "Either DependsOnType() without the useRegularExpressions parameter or DependsOnTypeMatching() should be used" - )] - public static bool DependsOn( - this IHasDependencies c, - string pattern, - bool useRegularExpressions = false - ) - { - return c.GetTypeDependencies() - .Any(d => d.FullNameMatches(pattern, useRegularExpressions)); - } - public static bool DependsOnType(this IHasDependencies c, string fullName) { return c.GetTypeDependencies().Any(d => d.FullNameEquals(fullName)); @@ -67,19 +41,6 @@ public static bool DependsOnTypeMatching(this IHasDependencies c, string pattern return c.GetTypeDependencies().Any(d => d.FullNameMatches(pattern)); } - [Obsolete( - "Either OnlyDependsOnType() without the useRegularExpressions parameter or OnlyDependsOnTypesMatching() should be used" - )] - public static bool OnlyDependsOn( - this IHasDependencies c, - string pattern, - bool useRegularExpressions = false - ) - { - return c.GetTypeDependencies() - .All(d => d.FullNameMatches(pattern, useRegularExpressions)); - } - public static bool OnlyDependsOnType(this IHasDependencies c, string fullName) { return c.GetTypeDependencies().All(d => d.FullNameEquals(fullName)); diff --git a/ArchUnitNET/Domain/Extensions/EnumerableExtensions.cs b/ArchUnitNET/Domain/Extensions/EnumerableExtensions.cs index 944b4c86d..baa0eac53 100644 --- a/ArchUnitNET/Domain/Extensions/EnumerableExtensions.cs +++ b/ArchUnitNET/Domain/Extensions/EnumerableExtensions.cs @@ -21,5 +21,66 @@ public static bool IsNullOrEmpty(this IEnumerable source) { return source == null || !source.Any(); } + + public static string FormatDescription( + this IEnumerable source, + string emptyDescription, + string singleDescription, + string multipleDescription, + Func elementDescription = null + ) + { + var list = source as IList ?? source.ToList(); + elementDescription = elementDescription ?? (element => $"\"{element}\""); + switch (list.Count) + { + case 0: + return emptyDescription; + case 1: + return $"{singleDescription} {string.Join(" and ", list.Select(elementDescription))}"; + default: + return $"{multipleDescription} {string.Join(" and ", list.Select(elementDescription))}"; + } + } + + internal static IEnumerable ResolveAttributeArguments( + this IEnumerable objects, + Architecture architecture + ) + { + return objects.Select(obj => + obj is Type type ? architecture.GetITypeOfType(type) : obj + ); + } + + internal static IEnumerable<(string, object)> ResolveNamedAttributeArgumentTuples( + this IEnumerable<(string, object)> namedArguments, + Architecture architecture + ) + { + return namedArguments.Select(arg => + (arg.Item1, arg.Item2 is Type type ? architecture.GetITypeOfType(type) : arg.Item2) + ); + } + + /// + /// Creates a lookup function for the given collection of elements. + /// For smaller collections, it uses the Contains method of the collection directly. + /// For larger collections, it creates a HashSet for O(1) average time complexity lookups. + /// + /// + /// The type of elements in the collection. + /// + /// The collection of elements to create a lookup function for. + /// + /// A function that checks if an element is in the collection. + public static Func CreateLookupFn(ICollection elements) + { + if (elements.Count < 20) + { + return elements.Contains; + } + return new HashSet(elements).Contains; + } } } diff --git a/ArchUnitNET/Domain/Extensions/ICanBeAnalyzedExtensions.cs b/ArchUnitNET/Domain/Extensions/ICanBeAnalyzedExtensions.cs new file mode 100644 index 000000000..6fd06d1b1 --- /dev/null +++ b/ArchUnitNET/Domain/Extensions/ICanBeAnalyzedExtensions.cs @@ -0,0 +1,47 @@ +using System.Collections.Generic; +using System.Linq; + +namespace ArchUnitNET.Domain.Extensions +{ + internal static class ICanBeAnalyzedExtensions + { + internal static IEnumerable GetAllAttributeArgumentValues( + this ICanBeAnalyzed obj, + Attribute attribute = null + ) + { + var attributeInstances = + attribute == null + ? obj.AttributeInstances + : obj.AttributeInstances.Where(instance => instance.Type.Equals(attribute)); + return attributeInstances + .SelectMany(instance => instance.AttributeArguments.Select(arg => arg.Value)) + .Select(value => + value is ITypeInstance typeInstance ? typeInstance.Type : value + ); + } + + internal static IEnumerable<(string, object)> GetAllNamedAttributeArgumentTuples( + this ICanBeAnalyzed obj, + Attribute attribute = null + ) + { + var attributeInstances = + attribute == null + ? obj.AttributeInstances + : obj.AttributeInstances.Where(instance => instance.Type.Equals(attribute)); + return attributeInstances.SelectMany(instance => + instance + .AttributeArguments.OfType() + .Select(arg => + ( + arg.Name, + arg.Value is ITypeInstance typeInstance + ? typeInstance.Type + : arg.Value + ) + ) + ); + } + } +} diff --git a/ArchUnitNET/Domain/Extensions/MemberExtensions.cs b/ArchUnitNET/Domain/Extensions/MemberExtensions.cs index bc13093a0..294980c49 100644 --- a/ArchUnitNET/Domain/Extensions/MemberExtensions.cs +++ b/ArchUnitNET/Domain/Extensions/MemberExtensions.cs @@ -7,18 +7,6 @@ namespace ArchUnitNET.Domain.Extensions { public static class MemberExtensions { - [Obsolete( - "Either IsDeclaredIn() without the useRegularExpressions parameter or IsDeclaredInTypeMatching() should be used" - )] - public static bool IsDeclaredIn( - this IMember member, - string pattern, - bool useRegularExpressions - ) - { - return member.DeclaringType.FullNameMatches(pattern, useRegularExpressions); - } - public static bool IsDeclaredIn(this IMember member, string fullName) { return member.DeclaringType.FullNameEquals(fullName); @@ -70,22 +58,6 @@ public static bool HasMethodCallDependencies( return member.GetMethodCallDependencies(getBackwardsDependencies).Any(); } - [Obsolete( - "Either IsCalledByType() without the useRegularExpressions parameter or IsCalledByTypeMatching() should be used" - )] - public static bool IsCalledBy( - this MethodMember member, - string pattern, - bool useRegularExpressions = false - ) - { - return member - .GetMethodCallDependencies(true) - .Any(dependency => - dependency.Origin.FullNameMatches(pattern, useRegularExpressions) - ); - } - public static bool IsCalledByType(this MethodMember member, string fullName) { return member @@ -108,22 +80,6 @@ public static IEnumerable GetCallingTypes(this MethodMember member) .Distinct(); } - [Obsolete( - "Either HasDependencyInMethodBodyToType() without the useRegularExpressions parameter or HasDependencyInMethodBodyToTypeMatching() should be used" - )] - public static bool HasDependencyInMethodBodyTo( - this MethodMember member, - string pattern, - bool useRegularExpressions = false - ) - { - return member - .GetBodyTypeMemberDependencies() - .Any(dependency => - dependency.Target.FullNameMatches(pattern, useRegularExpressions) - ); - } - public static bool HasDependencyInMethodBodyToType( this MethodMember member, string fullName diff --git a/ArchUnitNET/Domain/Extensions/NamingExtensions.cs b/ArchUnitNET/Domain/Extensions/NamingExtensions.cs index 88d767a2e..441a646b8 100644 --- a/ArchUnitNET/Domain/Extensions/NamingExtensions.cs +++ b/ArchUnitNET/Domain/Extensions/NamingExtensions.cs @@ -9,6 +9,16 @@ namespace ArchUnitNET.Domain.Extensions { public static class NamingExtensions { + public static bool NameEquals(this IHasName cls, string name) + { + return string.Equals(cls.Name, name, StringComparison.OrdinalIgnoreCase); + } + + public static bool NameMatches(this IHasName cls, string pattern) + { + return pattern != null && Regex.IsMatch(cls.Name, pattern); + } + public static bool NameEndsWith( this IHasName cls, string pattern, @@ -36,63 +46,77 @@ public static bool NameContains( return cls.Name.IndexOf(pattern, stringComparison) >= 0; } - [Obsolete( - "Either NameEquals() or NameMatches() without the useRegularExpressions parameter should be used" - )] - public static bool NameMatches( - this IHasName cls, - string pattern, - bool useRegularExpressions - ) + public static bool FullNameEquals(this IHasName cls, string fullName) { - if (useRegularExpressions) - { - return pattern != null && Regex.IsMatch(cls.Name, pattern); - } + return string.Equals(cls.FullName, fullName, StringComparison.OrdinalIgnoreCase); + } - return string.Equals(cls.Name, pattern, StringComparison.OrdinalIgnoreCase); + public static bool FullNameMatches(this IHasName cls, string pattern) + { + return pattern != null && Regex.IsMatch(cls.FullName, pattern); } - public static bool NameEquals(this IHasName cls, string name) + public static bool FullNameEndsWith(this IHasName cls, string pattern) { - return string.Equals(cls.Name, name, StringComparison.OrdinalIgnoreCase); + return cls.FullName.EndsWith(pattern, StringComparison.OrdinalIgnoreCase); } - public static bool NameMatches(this IHasName cls, string pattern) + public static bool FullNameStartsWith(this IHasName cls, string pattern) { - return pattern != null && Regex.IsMatch(cls.Name, pattern); + return cls.FullName.StartsWith(pattern, StringComparison.OrdinalIgnoreCase); } - [Obsolete( - "Either FullNameEquals() or FullNameMatches() without the useRegularExpressions parameter should be used" - )] - public static bool FullNameMatches( - this IHasName cls, - string pattern, - bool useRegularExpressions + public static bool FullNameContains(this IHasName cls, string pattern) + { + return pattern != null && cls.FullName.ToLower().Contains(pattern.ToLower()); + } + + public static bool AssemblyQualifiedNameEquals( + this IHasAssemblyQualifiedName cls, + string assemblyQualifiedName ) { - if (useRegularExpressions) - { - return pattern != null && Regex.IsMatch(cls.FullName, pattern); - } + return string.Equals( + cls.AssemblyQualifiedName, + assemblyQualifiedName, + StringComparison.OrdinalIgnoreCase + ); + } - return string.Equals(cls.FullName, pattern, StringComparison.OrdinalIgnoreCase); + public static bool AssemblyQualifiedNameMatches( + this IHasAssemblyQualifiedName cls, + string pattern + ) + { + return pattern != null && Regex.IsMatch(cls.AssemblyQualifiedName, pattern); } - public static bool FullNameEquals(this IHasName cls, string fullName) + public static bool AssemblyQualifiedNameEndsWith( + this IHasAssemblyQualifiedName cls, + string pattern + ) { - return string.Equals(cls.FullName, fullName, StringComparison.OrdinalIgnoreCase); + return cls.AssemblyQualifiedName.EndsWith(pattern, StringComparison.OrdinalIgnoreCase); } - public static bool FullNameMatches(this IHasName cls, string pattern) + public static bool AssemblyQualifiedNameStartsWith( + this IHasAssemblyQualifiedName cls, + string pattern + ) { - return pattern != null && Regex.IsMatch(cls.FullName, pattern); + return cls.AssemblyQualifiedName.StartsWith( + pattern, + StringComparison.OrdinalIgnoreCase + ); } - public static bool FullNameContains(this IHasName cls, string pattern) + public static bool AssemblyQualifiedNameContains( + this IHasAssemblyQualifiedName cls, + string pattern + ) { - return pattern != null && cls.FullName.ToLower().Contains(pattern.ToLower()); + return pattern != null + && cls.AssemblyQualifiedName.ToLower().Contains(pattern.ToLower()); } [NotNull] diff --git a/ArchUnitNET/Domain/Extensions/TypeExtensions.cs b/ArchUnitNET/Domain/Extensions/TypeExtensions.cs index d3c47566a..a3779b0a6 100644 --- a/ArchUnitNET/Domain/Extensions/TypeExtensions.cs +++ b/ArchUnitNET/Domain/Extensions/TypeExtensions.cs @@ -19,25 +19,6 @@ public static bool ImplementsInterface(this IType type, Interface intf) ); } - [Obsolete( - "Either ImplementsInterface() without the useRegularExpressions parameter or ImplementsInterfaceMatching() should be used" - )] - public static bool ImplementsInterface( - this IType type, - string pattern, - bool useRegularExpressions - ) - { - if (type is GenericParameter) - { - return false; - } - - return type.ImplementedInterfaces.Any(implementedInterface => - implementedInterface.FullNameMatches(pattern, useRegularExpressions) - ); - } - public static bool ImplementsInterface(this IType type, string fullName) { if (type is GenericParameter) @@ -74,26 +55,6 @@ public static bool IsAssignableTo(this IType type, IType assignableToType) return type.GetAssignableTypes().Contains(assignableToType); } - [Obsolete( - "Either IsAssignableTo() without the useRegularExpressions parameter or IsAssignableToTypeMatching() should be used" - )] - public static bool IsAssignableTo( - this IType type, - string pattern, - bool useRegularExpressions - ) - { - if (type is GenericParameter genericParameter) - { - return genericParameter.TypeConstraints.All(t => - t.IsAssignableTo(pattern, useRegularExpressions) - ); - } - - return type.GetAssignableTypes() - .Any(t => t.FullNameMatches(pattern, useRegularExpressions)); - } - public static bool IsAssignableTo(this IType type, string fullName) { if (type is GenericParameter genericParameter) @@ -278,18 +239,6 @@ public static Attribute GetAttributeOfType(this IType type, Class attributeClass ); } - [Obsolete( - "Either ResidesInNamespace() without the useRegularExpressions parameter or ResidesInNamespaceMatching() should be used" - )] - public static bool ResidesInNamespace( - this IType e, - string pattern, - bool useRegularExpressions - ) - { - return e.Namespace.FullNameMatches(pattern, useRegularExpressions); - } - public static bool ResidesInNamespace(this IType e, string fullName) { return e.Namespace.FullNameEquals(fullName); @@ -300,18 +249,6 @@ public static bool ResidesInNamespaceMatching(this IType e, string pattern) return e.Namespace.FullNameMatches(pattern); } - [Obsolete( - "Either ResidesInAssembly() without the useRegularExpressions parameter or ResidesInAssemblyMatching() should be used" - )] - public static bool ResidesInAssembly( - this IType e, - string pattern, - bool useRegularExpressions - ) - { - return e.Assembly.FullNameMatches(pattern, useRegularExpressions); - } - public static bool ResidesInAssembly(this IType e, string fullName) { return e.Assembly.FullNameEquals(fullName); @@ -322,21 +259,6 @@ public static bool ResidesInAssemblyMatching(this IType e, string pattern) return e.Assembly.FullNameMatches(pattern); } - [Obsolete( - "Either IsDeclaredAsFieldIn() without the useRegularExpressions parameter or IsDeclaredAsFieldInTypeMatching() should be used" - )] - public static bool IsDeclaredAsFieldIn( - this IType type, - string pattern, - bool useRegularExpressions - ) - { - return type.GetFieldTypeDependencies(true) - .Any(dependency => - dependency.Target.FullNameMatches(pattern, useRegularExpressions) - ); - } - public static bool IsDeclaredAsFieldIn(this IType type, string fullName) { return type.GetFieldTypeDependencies(true) diff --git a/ArchUnitNET/Domain/IObjectProvider.cs b/ArchUnitNET/Domain/IObjectProvider.cs index a38343c4b..8b60e8abf 100644 --- a/ArchUnitNET/Domain/IObjectProvider.cs +++ b/ArchUnitNET/Domain/IObjectProvider.cs @@ -5,5 +5,11 @@ namespace ArchUnitNET.Domain public interface IObjectProvider : IHasDescription { IEnumerable GetObjects(Architecture architecture); + + string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ); } } diff --git a/ArchUnitNET/Fluent/ObjectProvider.cs b/ArchUnitNET/Domain/ObjectProvider.cs similarity index 57% rename from ArchUnitNET/Fluent/ObjectProvider.cs rename to ArchUnitNET/Domain/ObjectProvider.cs index 1a23dcd5a..c011287e3 100644 --- a/ArchUnitNET/Fluent/ObjectProvider.cs +++ b/ArchUnitNET/Domain/ObjectProvider.cs @@ -4,7 +4,7 @@ namespace ArchUnitNET.Fluent { - public class ObjectProvider : ISizedObjectProvider + internal class ObjectProvider : ISizedObjectProvider where T : ICanBeAnalyzed { private readonly List _objects; @@ -20,16 +20,32 @@ public ObjectProvider(IEnumerable objects) public string Description { get; } - public int Count => _objects.Count(); + public int Count => _objects.Count; public IEnumerable GetObjects(Architecture architecture) { return _objects; } + public string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ) + { + switch (Count) + { + case 0: + return emptyDescription; + case 1: + return $"{singleDescription} {Description}"; + } + return $"{multipleDescription} {Description}"; + } + private bool Equals(ObjectProvider other) { - return string.Equals(Description, other.Description); + return _objects.SequenceEqual(other._objects); } public override bool Equals(object obj) @@ -49,7 +65,12 @@ public override bool Equals(object obj) public override int GetHashCode() { - return Description != null ? Description.GetHashCode() : 0; + return _objects != null + ? _objects.Aggregate( + 0, + (current, obj) => (current * 397) ^ (obj?.GetHashCode() ?? 0) + ) + : 0; } } } diff --git a/ArchUnitNET/Domain/PlantUml/Export/DependencyFilters.cs b/ArchUnitNET/Domain/PlantUml/Export/DependencyFilters.cs index b04f9e3a9..add3ab4f6 100644 --- a/ArchUnitNET/Domain/PlantUml/Export/DependencyFilters.cs +++ b/ArchUnitNET/Domain/PlantUml/Export/DependencyFilters.cs @@ -50,19 +50,6 @@ public static Func FocusOn(IEnumerable types) }; } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static Func FocusOn( - string pattern, - bool useRegularExpressions = false - ) - { - return dependency => - dependency.Target.FullNameMatches(pattern, useRegularExpressions) - ^ dependency.Origin.FullNameMatches(pattern, useRegularExpressions); - } - public static Func HasOrigin(IType type) { return dependency => dependency.Origin.Equals(type); @@ -73,17 +60,6 @@ public static Func HasOrigin(IEnumerable types) return dependency => types.Contains(dependency.Origin); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static Func HasOrigin( - string pattern, - bool useRegularExpressions = false - ) - { - return dependency => dependency.Origin.FullNameMatches(pattern, useRegularExpressions); - } - public static Func HasTarget(IType type) { return dependency => dependency.Target.Equals(type); @@ -93,16 +69,5 @@ public static Func HasTarget(IEnumerable types) { return dependency => types.Contains(dependency.Target); } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static Func HasTarget( - string pattern, - bool useRegularExpressions = false - ) - { - return dependency => dependency.Target.FullNameMatches(pattern, useRegularExpressions); - } } } diff --git a/ArchUnitNET/Fluent/SystemTypeObjectProvider.cs b/ArchUnitNET/Domain/SystemTypeObjectProvider.cs similarity index 66% rename from ArchUnitNET/Fluent/SystemTypeObjectProvider.cs rename to ArchUnitNET/Domain/SystemTypeObjectProvider.cs index 1c90280c3..e8d29ab89 100644 --- a/ArchUnitNET/Fluent/SystemTypeObjectProvider.cs +++ b/ArchUnitNET/Domain/SystemTypeObjectProvider.cs @@ -6,7 +6,7 @@ namespace ArchUnitNET.Fluent { - public class SystemTypeObjectProvider : ISizedObjectProvider + internal class SystemTypeObjectProvider : ISizedObjectProvider where T : IType { private readonly List _types; @@ -37,9 +37,25 @@ public IEnumerable GetObjects(Architecture architecture) ); } + public string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ) + { + switch (Count) + { + case 0: + return emptyDescription; + case 1: + return $"{singleDescription} {Description}"; + } + return $"{multipleDescription} {Description}"; + } + private bool Equals(SystemTypeObjectProvider other) { - return string.Equals(Description, other.Description); + return _types.SequenceEqual(other._types); } public override bool Equals(object obj) @@ -59,7 +75,12 @@ public override bool Equals(object obj) public override int GetHashCode() { - return Description != null ? Description.GetHashCode() : 0; + return _types != null + ? _types.Aggregate( + 0, + (current, type) => (current * 397) ^ (type?.GetHashCode() ?? 0) + ) + : 0; } } } diff --git a/ArchUnitNET/Domain/UnavailableType.cs b/ArchUnitNET/Domain/UnavailableType.cs index f5dc33ef2..bbfe0f23c 100644 --- a/ArchUnitNET/Domain/UnavailableType.cs +++ b/ArchUnitNET/Domain/UnavailableType.cs @@ -42,7 +42,7 @@ public override string ToString() return FullName; } - private bool Equals(Struct other) + private bool Equals(UnavailableType other) { return Equals(Type, other.Type); } diff --git a/ArchUnitNET/Fluent/BasicObjectProvider.cs b/ArchUnitNET/Fluent/BasicObjectProvider.cs index 8a70538af..f10e1df9a 100644 --- a/ArchUnitNET/Fluent/BasicObjectProvider.cs +++ b/ArchUnitNET/Fluent/BasicObjectProvider.cs @@ -22,6 +22,15 @@ public IEnumerable GetObjects(Architecture architecture) return architecture.GetOrCreateObjects(this, _objects); } + public string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ) + { + return $"{multipleDescription} {Description}"; + } + public override string ToString() { return Description; diff --git a/ArchUnitNET/Fluent/ConditionManager.cs b/ArchUnitNET/Fluent/ConditionManager.cs index b3b1147a9..fa8b70996 100644 --- a/ArchUnitNET/Fluent/ConditionManager.cs +++ b/ArchUnitNET/Fluent/ConditionManager.cs @@ -106,15 +106,34 @@ ICanBeEvaluated archRuleCreator var filteredObjectsList = filteredObjects.ToList(); if (filteredObjectsList.IsNullOrEmpty() && !CheckEmpty()) { - yield return new EvaluationResult( - null, - new StringIdentifier(""), - false, - "There are no objects matching the criteria", - archRuleCreator, - architecture + return new[] + { + new EvaluationResult( + null, + new StringIdentifier(""), + false, + "There are no objects matching the criteria", + archRuleCreator, + architecture + ), + }; + } + + if (_conditionElements.All(e => e.IsOrdered())) + { + var conditionResults = _conditionElements + .Select(conditionElement => + conditionElement.Check(filteredObjectsList, architecture).ToList() + ) + .ToList(); + return filteredObjectsList.Select( + (t, i) => + CreateEvaluationResult( + conditionResults.Select(results => results[i]), + architecture, + archRuleCreator + ) ); - yield break; } //rough heuristic - if we have small number of comparisons, we are fine with sequential search @@ -129,14 +148,13 @@ ICanBeEvaluated archRuleCreator ) .ToList(); - foreach (var t in filteredObjectsList) - { - yield return CreateEvaluationResult( + return filteredObjectsList.Select(t => + CreateEvaluationResult( FindResultsForObject(conditionResults, t), architecture, archRuleCreator - ); - } + ) + ); } else { @@ -145,15 +163,13 @@ ICanBeEvaluated archRuleCreator conditionElement.Check(filteredObjectsList, architecture).ToList() ) .ToList(); - - foreach (var t in filteredObjectsList) - { - yield return CreateEvaluationResult( + return filteredObjectsList.Select(t => + CreateEvaluationResult( FindResultsForObject(conditionResults, t), architecture, archRuleCreator - ); - } + ) + ); } } @@ -349,6 +365,11 @@ Architecture architecture .Select(result => new ConditionElementResult(result, _logicalConjunction)); } + public bool IsOrdered() + { + return _condition is IOrderedCondition; + } + public bool CheckEmpty(bool currentResult) { if (_condition == null) diff --git a/ArchUnitNET/Fluent/Conditions/ArchitectureCondition.cs b/ArchUnitNET/Fluent/Conditions/ArchitectureCondition.cs index 39e2bad18..d588e1cc9 100644 --- a/ArchUnitNET/Fluent/Conditions/ArchitectureCondition.cs +++ b/ArchUnitNET/Fluent/Conditions/ArchitectureCondition.cs @@ -14,31 +14,6 @@ private readonly Func< IEnumerable > _condition; - public ArchitectureCondition( - Func condition, - string description, - string failDescription - ) - { - _condition = (ruleTypes, architecture) => - ruleTypes.Select(type => new ConditionResult( - type, - condition(type, architecture), - failDescription - )); - Description = description; - } - - public ArchitectureCondition( - Func condition, - string description - ) - { - _condition = (ruleTypes, architecture) => - ruleTypes.Select(type => condition(type, architecture)); - Description = description; - } - public ArchitectureCondition( Func, Architecture, IEnumerable> condition, string description @@ -48,21 +23,6 @@ string description Description = description; } - public ArchitectureCondition( - Func condition, - Func dynamicFailDescription, - string description - ) - { - _condition = (ruleTypes, architecture) => - ruleTypes.Select(type => new ConditionResult( - type, - condition(type, architecture), - dynamicFailDescription(type, architecture) - )); - Description = description; - } - public string Description { get; } public IEnumerable Check( diff --git a/ArchUnitNET/Fluent/Conditions/ExistsCondition.cs b/ArchUnitNET/Fluent/Conditions/ExistsCondition.cs index 5eeb47ae8..6622e90a8 100644 --- a/ArchUnitNET/Fluent/Conditions/ExistsCondition.cs +++ b/ArchUnitNET/Fluent/Conditions/ExistsCondition.cs @@ -4,7 +4,7 @@ namespace ArchUnitNET.Fluent.Conditions { - public class ExistsCondition : ICondition + public class ExistsCondition : IOrderedCondition where TRuleType : ICanBeAnalyzed { private readonly bool _valueIfExists; diff --git a/ArchUnitNET/Fluent/Conditions/IOrderedCondition.cs b/ArchUnitNET/Fluent/Conditions/IOrderedCondition.cs new file mode 100644 index 000000000..f2e6b17b0 --- /dev/null +++ b/ArchUnitNET/Fluent/Conditions/IOrderedCondition.cs @@ -0,0 +1,7 @@ +using ArchUnitNET.Domain; + +namespace ArchUnitNET.Fluent.Conditions +{ + public interface IOrderedCondition : ICondition + where TRuleType : ICanBeAnalyzed { } +} diff --git a/ArchUnitNET/Fluent/Conditions/OrderedArchitectureCondition.cs b/ArchUnitNET/Fluent/Conditions/OrderedArchitectureCondition.cs new file mode 100644 index 000000000..0dc3b9d0e --- /dev/null +++ b/ArchUnitNET/Fluent/Conditions/OrderedArchitectureCondition.cs @@ -0,0 +1,59 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using ArchUnitNET.Domain; + +namespace ArchUnitNET.Fluent.Conditions +{ + public class OrderedArchitectureCondition + : ArchitectureCondition, + IOrderedCondition + where TRuleType : ICanBeAnalyzed + { + public OrderedArchitectureCondition( + Func condition, + string description, + string failDescription + ) + : base( + (ruleTypes, architecture) => + ruleTypes.Select(type => new ConditionResult( + type, + condition(type, architecture), + failDescription + )), + description + ) { } + + public OrderedArchitectureCondition( + Func condition, + Func dynamicFailDescription, + string description + ) + : base( + (ruleTypes, architecture) => + ruleTypes.Select(type => new ConditionResult( + type, + condition(type, architecture), + dynamicFailDescription(type, architecture) + )), + description + ) { } + + public OrderedArchitectureCondition( + Func condition, + string description + ) + : base( + (ruleTypes, architecture) => + ruleTypes.Select(type => condition(type, architecture)), + description + ) { } + + public OrderedArchitectureCondition( + Func, Architecture, IEnumerable> condition, + string description + ) + : base(condition, description) { } + } +} diff --git a/ArchUnitNET/Fluent/Conditions/SimpleCondition.cs b/ArchUnitNET/Fluent/Conditions/SimpleCondition.cs index 871334a5f..fc7ca1502 100644 --- a/ArchUnitNET/Fluent/Conditions/SimpleCondition.cs +++ b/ArchUnitNET/Fluent/Conditions/SimpleCondition.cs @@ -5,7 +5,7 @@ namespace ArchUnitNET.Fluent.Conditions { - public class SimpleCondition : ICondition + public class SimpleCondition : IOrderedCondition where TRuleType : ICanBeAnalyzed { private readonly Func _condition; diff --git a/ArchUnitNET/Fluent/Slices/GivenSlices.cs b/ArchUnitNET/Fluent/Slices/GivenSlices.cs index 78fe4a193..59e4b9524 100644 --- a/ArchUnitNET/Fluent/Slices/GivenSlices.cs +++ b/ArchUnitNET/Fluent/Slices/GivenSlices.cs @@ -24,5 +24,14 @@ public IEnumerable GetObjects(Architecture architecture) { return _ruleCreator.GetSlices(architecture); } + + public string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ) + { + return $"{multipleDescription} {Description}"; + } } } diff --git a/ArchUnitNET/Fluent/Syntax/DescriptionHelpers.cs b/ArchUnitNET/Fluent/Syntax/DescriptionHelpers.cs deleted file mode 100644 index a9da7715e..000000000 --- a/ArchUnitNET/Fluent/Syntax/DescriptionHelpers.cs +++ /dev/null @@ -1,29 +0,0 @@ -using ArchUnitNET.Domain; - -namespace ArchUnitNET.Fluent.Syntax -{ - public static class DescriptionHelpers - { - public static string SelectDescription( - string emptyDescription, - string singleDescription, - string multipleDescription, - IObjectProvider objectProvider - ) - { - if (!(objectProvider is ISizedObjectProvider sizedObjectProvider)) - { - return $"{multipleDescription} {objectProvider.Description}"; - } - - switch (sizedObjectProvider.Count) - { - case 0: - return emptyDescription; - case 1: - return $"{singleDescription} {objectProvider.Description}"; - } - return $"{multipleDescription} {objectProvider.Description}"; - } - } -} diff --git a/ArchUnitNET/Fluent/Syntax/Elements/GivenObjects.cs b/ArchUnitNET/Fluent/Syntax/Elements/GivenObjects.cs index c7fb07a7e..21a835389 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/GivenObjects.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/GivenObjects.cs @@ -30,6 +30,15 @@ public IEnumerable GetObjects(Architecture architecture) } } + public string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ) + { + return $"{multipleDescription} {Description}"; + } + public TRuleTypeThat That() { return Create(_ruleCreator); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsConjunctionWithDescription.cs b/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsConjunctionWithDescription.cs index 0b1816094..3873a9417 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsConjunctionWithDescription.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsConjunctionWithDescription.cs @@ -32,6 +32,15 @@ public IEnumerable GetObjects(Architecture architecture) } } + public string FormatDescription( + string emptyDescription, + string singleDescription, + string multipleDescription + ) + { + return $"{multipleDescription} {Description}"; + } + public TGivenRuleTypeThat And() { _ruleCreator.AddPredicateConjunction(LogicalConjunctionDefinition.And); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsThat.cs index e2d11a5cf..2faa4f628 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/GivenObjectsThat.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +using System.Linq; using ArchUnitNET.Domain; +using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Fluent.Predicates; using static ArchUnitNET.Fluent.Syntax.ConjunctionFactory; using Attribute = ArchUnitNET.Domain.Attribute; @@ -15,1410 +17,152 @@ public abstract class GivenObjectsThat protected GivenObjectsThat(IArchRuleCreator ruleCreator) : base(ruleCreator) { } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction Are(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.Are(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction Are( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.Are(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction Are( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.Are(firstObject, moreObjects) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction Are(IEnumerable objects) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.Are(objects)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction Are(IObjectProvider objects) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.Are(objects)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction CallAny(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.CallAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction CallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.CallAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction CallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.CallAny(method, moreMethods) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction CallAny(IEnumerable methods) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.CallAny(methods)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction CallAny(IObjectProvider methods) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.CallAny(methods)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DependOnAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DependOnAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DependOnAny(Type firstType, params Type[] moreTypes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DependOnAny(IType firstType, params IType[] moreTypes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DependOnAny(IObjectProvider types) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.DependOnAny(types)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DependOnAny(IEnumerable types) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.DependOnAny(types)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DependOnAny(IEnumerable types) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.DependOnAny(types)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction FollowCustomPredicate(IPredicate predicate) + // csharpier-ignore-start + public TGivenRuleTypeConjunction FollowCustomPredicate(IPredicate predicate) => AddPredicate(predicate); + public TGivenRuleTypeConjunction FollowCustomPredicate(Func predicate, string description) => AddPredicate(ObjectPredicatesDefinition.FollowCustomPredicate(predicate, description)); + + public TGivenRuleTypeConjunction Are(params ICanBeAnalyzed[] objects) => Are(new ObjectProvider(objects)); + public TGivenRuleTypeConjunction Are(IEnumerable objects) => Are(new ObjectProvider(objects)); + public TGivenRuleTypeConjunction Are(IObjectProvider objects) => AddPredicate(ObjectPredicatesDefinition.Are(objects)); + + public TGivenRuleTypeConjunction CallAny(params MethodMember[] methods) => CallAny(new ObjectProvider(methods)); + public TGivenRuleTypeConjunction CallAny(IEnumerable methods) => CallAny(new ObjectProvider(methods)); + public TGivenRuleTypeConjunction CallAny(IObjectProvider methods) => AddPredicate(ObjectPredicatesDefinition.CallAny(methods)); + + public TGivenRuleTypeConjunction DependOnAny() => DependOnAny(new ObjectProvider()); + public TGivenRuleTypeConjunction DependOnAny(params IType[] types) => DependOnAny(new ObjectProvider(types)); + public TGivenRuleTypeConjunction DependOnAny(params Type[] types) => DependOnAny(new SystemTypeObjectProvider(types)); + public TGivenRuleTypeConjunction DependOnAny(IObjectProvider types) => AddPredicate(ObjectPredicatesDefinition.DependOnAny(types)); + public TGivenRuleTypeConjunction DependOnAny(IEnumerable types) => DependOnAny(new ObjectProvider(types)); + public TGivenRuleTypeConjunction DependOnAny(IEnumerable types) => DependOnAny(new SystemTypeObjectProvider(types)); + + public TGivenRuleTypeConjunction OnlyDependOn() => OnlyDependOn(new ObjectProvider()); + public TGivenRuleTypeConjunction OnlyDependOn(params IType[] types) => OnlyDependOn(new ObjectProvider(types)); + public TGivenRuleTypeConjunction OnlyDependOn(params Type[] types) => OnlyDependOn(new SystemTypeObjectProvider(types)); + public TGivenRuleTypeConjunction OnlyDependOn(IObjectProvider types) => AddPredicate(ObjectPredicatesDefinition.OnlyDependOn(types)); + public TGivenRuleTypeConjunction OnlyDependOn(IEnumerable types) => OnlyDependOn(new ObjectProvider(types)); + public TGivenRuleTypeConjunction OnlyDependOn(IEnumerable types) => OnlyDependOn(new SystemTypeObjectProvider(types)); + + public TGivenRuleTypeConjunction HaveAnyAttributes() => HaveAnyAttributes(new ObjectProvider()); + public TGivenRuleTypeConjunction HaveAnyAttributes(params Attribute[] attributes) => HaveAnyAttributes(new ObjectProvider(attributes)); + public TGivenRuleTypeConjunction HaveAnyAttributes(params Type[] attributes) => HaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + public TGivenRuleTypeConjunction HaveAnyAttributes(IObjectProvider attributes) => AddPredicate(ObjectPredicatesDefinition.HaveAnyAttributes(attributes)); + public TGivenRuleTypeConjunction HaveAnyAttributes(IEnumerable attributes) => HaveAnyAttributes(new ObjectProvider(attributes)); + public TGivenRuleTypeConjunction HaveAnyAttributes(IEnumerable attributes) => HaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + + public TGivenRuleTypeConjunction OnlyHaveAttributes() => OnlyHaveAttributes(new ObjectProvider()); + public TGivenRuleTypeConjunction OnlyHaveAttributes(params Attribute[] attributes) => OnlyHaveAttributes(new ObjectProvider(attributes)); + public TGivenRuleTypeConjunction OnlyHaveAttributes(params Type[] attributes) => OnlyHaveAttributes(new SystemTypeObjectProvider(attributes)); + public TGivenRuleTypeConjunction OnlyHaveAttributes(IObjectProvider attributes) => AddPredicate(ObjectPredicatesDefinition.OnlyHaveAttributes(attributes)); + public TGivenRuleTypeConjunction OnlyHaveAttributes(IEnumerable attributes) => OnlyHaveAttributes(new ObjectProvider(attributes)); + public TGivenRuleTypeConjunction OnlyHaveAttributes(IEnumerable attributes) => OnlyHaveAttributes(new SystemTypeObjectProvider(attributes)); + + public TGivenRuleTypeConjunction HaveAnyAttributesWithArguments(IEnumerable argumentValues) => AddPredicate(ObjectPredicatesDefinition.HaveAnyAttributesWithArguments(argumentValues)); + public TGivenRuleTypeConjunction HaveAnyAttributesWithArguments(object firstArgumentValue, params object[] moreArgumentValues) => AddPredicate(ObjectPredicatesDefinition.HaveAnyAttributesWithArguments(new[] { firstArgumentValue }.Concat(moreArgumentValues))); + + public TGivenRuleTypeConjunction HaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues) => AddPredicate(ObjectPredicatesDefinition.HaveAttributeWithArguments(attribute.FullName, _ => attribute, argumentValues)); + public TGivenRuleTypeConjunction HaveAttributeWithArguments(Type attribute, IEnumerable argumentValues) => AddPredicate(ObjectPredicatesDefinition.HaveAttributeWithArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), argumentValues)); + + public TGivenRuleTypeConjunction HaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments) => AddPredicate(ObjectPredicatesDefinition.HaveAnyAttributesWithNamedArguments(attributeArguments)); + public TGivenRuleTypeConjunction HaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments) => HaveAnyAttributesWithNamedArguments((IEnumerable<(string, object)>)attributeArguments); + + public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments) => AddPredicate(ObjectPredicatesDefinition.HaveAttributeWithNamedArguments(attribute.FullName, _ => attribute, attributeArguments)); + public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments) => HaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments) => AddPredicate(ObjectPredicatesDefinition.HaveAttributeWithNamedArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), attributeArguments)); + public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments) => HaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + + public TGivenRuleTypeConjunction HaveName(string name) => AddPredicate(ObjectPredicatesDefinition.HaveName(name)); + public TGivenRuleTypeConjunction HaveNameMatching(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveNameMatching(pattern)); + public TGivenRuleTypeConjunction HaveNameStartingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveNameStartingWith(pattern)); + public TGivenRuleTypeConjunction HaveNameEndingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveNameEndingWith(pattern)); + public TGivenRuleTypeConjunction HaveNameContaining(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveNameContaining(pattern)); + + public TGivenRuleTypeConjunction HaveFullName(string fullName) => AddPredicate(ObjectPredicatesDefinition.HaveFullName(fullName)); + public TGivenRuleTypeConjunction HaveFullNameMatching(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveFullNameMatching(pattern)); + public TGivenRuleTypeConjunction HaveFullNameStartingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveFullNameStartingWith(pattern)); + public TGivenRuleTypeConjunction HaveFullNameEndingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveFullNameEndingWith(pattern)); + public TGivenRuleTypeConjunction HaveFullNameContaining(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveFullNameContaining(pattern)); + + public TGivenRuleTypeConjunction HaveAssemblyQualifiedName(string assemblyQualifiedName) => AddPredicate(ObjectPredicatesDefinition.HaveAssemblyQualifiedName(assemblyQualifiedName)); + public TGivenRuleTypeConjunction HaveAssemblyQualifiedNameMatching(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameMatching(pattern)); + public TGivenRuleTypeConjunction HaveAssemblyQualifiedNameStartingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameStartingWith(pattern)); + public TGivenRuleTypeConjunction HaveAssemblyQualifiedNameEndingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameEndingWith(pattern)); + public TGivenRuleTypeConjunction HaveAssemblyQualifiedNameContaining(string pattern) => AddPredicate(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameContaining(pattern)); + + public TGivenRuleTypeConjunction ArePrivate() => AddPredicate(ObjectPredicatesDefinition.ArePrivate()); + public TGivenRuleTypeConjunction ArePublic() => AddPredicate(ObjectPredicatesDefinition.ArePublic()); + public TGivenRuleTypeConjunction AreProtected() => AddPredicate(ObjectPredicatesDefinition.AreProtected()); + public TGivenRuleTypeConjunction AreInternal() => AddPredicate(ObjectPredicatesDefinition.AreInternal()); + public TGivenRuleTypeConjunction AreProtectedInternal() => AddPredicate(ObjectPredicatesDefinition.AreProtectedInternal()); + public TGivenRuleTypeConjunction ArePrivateProtected() => AddPredicate(ObjectPredicatesDefinition.ArePrivateProtected()); + + // Negations + + public TGivenRuleTypeConjunction AreNot(params ICanBeAnalyzed[] objects) => AreNot(new ObjectProvider(objects)); + public TGivenRuleTypeConjunction AreNot(IEnumerable objects) => AreNot(new ObjectProvider(objects)); + public TGivenRuleTypeConjunction AreNot(IObjectProvider objects) => AddPredicate(ObjectPredicatesDefinition.AreNot(objects)); + + public TGivenRuleTypeConjunction DoNotCallAny(params MethodMember[] methods) => DoNotCallAny(new ObjectProvider(methods)); + public TGivenRuleTypeConjunction DoNotCallAny(IEnumerable methods) => DoNotCallAny(new ObjectProvider(methods)); + public TGivenRuleTypeConjunction DoNotCallAny(IObjectProvider methods) => AddPredicate(ObjectPredicatesDefinition.DoNotCallAny(methods)); + + public TGivenRuleTypeConjunction DoNotDependOnAny() => DoNotDependOnAny(new ObjectProvider()); + public TGivenRuleTypeConjunction DoNotDependOnAny(params IType[] types) => DoNotDependOnAny(new ObjectProvider(types)); + public TGivenRuleTypeConjunction DoNotDependOnAny(params Type[] types) => DoNotDependOnAny(new SystemTypeObjectProvider(types)); + public TGivenRuleTypeConjunction DoNotDependOnAny(IObjectProvider types) => AddPredicate(ObjectPredicatesDefinition.DoNotDependOnAny(types)); + public TGivenRuleTypeConjunction DoNotDependOnAny(IEnumerable types) => DoNotDependOnAny(new ObjectProvider(types)); + public TGivenRuleTypeConjunction DoNotDependOnAny(IEnumerable types) => DoNotDependOnAny(new SystemTypeObjectProvider(types)); + + public TGivenRuleTypeConjunction DoNotHaveAnyAttributes() => DoNotHaveAnyAttributes(new ObjectProvider()); + public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(params Attribute[] attributes) => DoNotHaveAnyAttributes(new ObjectProvider(attributes)); + public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(params Type[] attributes) => DoNotHaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(IObjectProvider attributes) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes)); + public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(IEnumerable attributes) => DoNotHaveAnyAttributes(new ObjectProvider(attributes)); + public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(IEnumerable attributes) => DoNotHaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + + public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithArguments(IEnumerable argumentValues) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithArguments(argumentValues)); + + public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments(attribute.FullName, _ => attribute, argumentValues)); + public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments(Type attribute, IEnumerable argumentValues) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), argumentValues)); + + public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithNamedArguments(attributeArguments)); + public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments) => DoNotHaveAnyAttributesWithNamedArguments((IEnumerable<(string, object)>)attributeArguments); + + public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments(attribute.FullName, _ => attribute, attributeArguments)); + public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments) => DoNotHaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), attributeArguments)); + public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments) => DoNotHaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + + public TGivenRuleTypeConjunction DoNotHaveName(string name) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveName(name)); + public TGivenRuleTypeConjunction DoNotHaveNameMatching(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveNameMatching(pattern)); + public TGivenRuleTypeConjunction DoNotHaveNameStartingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveNameStartingWith(pattern)); + public TGivenRuleTypeConjunction DoNotHaveNameEndingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveNameEndingWith(pattern)); + public TGivenRuleTypeConjunction DoNotHaveNameContaining(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveNameContaining(pattern)); + + public TGivenRuleTypeConjunction DoNotHaveFullName(string fullName) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveFullName(fullName)); + public TGivenRuleTypeConjunction DoNotHaveFullNameMatching(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveFullNameMatching(pattern)); + public TGivenRuleTypeConjunction DoNotHaveFullNameStartingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveFullNameStartingWith(pattern)); + public TGivenRuleTypeConjunction DoNotHaveFullNameEndingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveFullNameEndingWith(pattern)); + public TGivenRuleTypeConjunction DoNotHaveFullNameContaining(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveFullNameContaining(pattern)); + + public TGivenRuleTypeConjunction DoNotHaveAssemblyQualifiedName(string assemblyQualifiedName) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedName(assemblyQualifiedName)); + public TGivenRuleTypeConjunction DoNotHaveAssemblyQualifiedNameMatching(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameMatching(pattern)); + public TGivenRuleTypeConjunction DoNotHaveAssemblyQualifiedNameStartingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameStartingWith(pattern)); + public TGivenRuleTypeConjunction DoNotHaveAssemblyQualifiedNameEndingWith(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameEndingWith(pattern)); + public TGivenRuleTypeConjunction DoNotHaveAssemblyQualifiedNameContaining(string pattern) => AddPredicate(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameContaining(pattern)); + + public TGivenRuleTypeConjunction AreNotPrivate() => AddPredicate(ObjectPredicatesDefinition.AreNotPrivate()); + public TGivenRuleTypeConjunction AreNotPublic() => AddPredicate(ObjectPredicatesDefinition.AreNotPublic()); + public TGivenRuleTypeConjunction AreNotProtected() => AddPredicate(ObjectPredicatesDefinition.AreNotProtected()); + public TGivenRuleTypeConjunction AreNotInternal() => AddPredicate(ObjectPredicatesDefinition.AreNotInternal()); + public TGivenRuleTypeConjunction AreNotProtectedInternal() => AddPredicate(ObjectPredicatesDefinition.AreNotProtectedInternal()); + public TGivenRuleTypeConjunction AreNotPrivateProtected() => AddPredicate(ObjectPredicatesDefinition.AreNotPrivateProtected()); + // csharpier-ignore-end + + private TGivenRuleTypeConjunction AddPredicate(IPredicate predicate) { _ruleCreator.AddPredicate(predicate); return Create(_ruleCreator); } - - public TGivenRuleTypeConjunction FollowCustomPredicate( - Func predicate, - string description - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.FollowCustomPredicate(predicate, description) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction OnlyDependOn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyDependOn(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction OnlyDependOn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyDependOn(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyDependOn(Type firstType, params Type[] moreTypes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyDependOn(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyDependOn(IType firstType, params IType[] moreTypes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyDependOn(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyDependOn(IObjectProvider types) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.OnlyDependOn(types)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyDependOn(IEnumerable types) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.OnlyDependOn(types)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyDependOn(IEnumerable types) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.OnlyDependOn(types)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction HaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributes(IObjectProvider attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction OnlyHaveAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyHaveAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyHaveAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyHaveAttributes(IObjectProvider attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyHaveAttributes(IEnumerable attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction OnlyHaveAttributes(IEnumerable attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributesWithArguments(argumentValues) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributesWithArguments( - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction HaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributesWithNamedArguments( - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAnyAttributesWithNamedArguments( - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - public TGivenRuleTypeConjunction HaveName(string pattern, bool useRegularExpressions) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveName(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveName(string name) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.HaveName(name)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveNameMatching(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - public TGivenRuleTypeConjunction HaveFullName(string pattern, bool useRegularExpressions) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveFullName(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveFullName(string fullName) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.HaveFullName(fullName)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveFullNameMatching(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveFullNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveNameStartingWith(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveNameStartingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveNameEndingWith(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveNameEndingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveNameContaining(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction HaveFullNameContaining(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.HaveFullNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction ArePrivate() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.ArePrivate()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction ArePublic() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.ArePublic()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreProtected() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreProtected()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreInternal() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreInternal()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreProtectedInternal() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreProtectedInternal()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction ArePrivateProtected() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.ArePrivateProtected()); - return Create(_ruleCreator); - } - - //Negations - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreNot(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.AreNot(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreNot( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.AreNot(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNot( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.AreNot(firstObject, moreObjects) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNot(IEnumerable objects) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreNot(objects)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNot(IObjectProvider objects) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreNot(objects)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DoNotCallAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotCallAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DoNotCallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotCallAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotCallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotCallAny(method, moreMethods) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotCallAny(IEnumerable methods) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.DoNotCallAny(methods)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotCallAny(IObjectProvider methods) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.DoNotCallAny(methods)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DoNotDependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DoNotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotDependOnAny(Type firstType, params Type[] moreTypes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotDependOnAny(IType firstType, params IType[] moreTypes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotDependOnAny(IObjectProvider types) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotDependOnAny(IEnumerable types) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotDependOnAny(IEnumerable types) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotDependOnAny(types) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes( - IObjectProvider attributes - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithArguments( - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithArguments( - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithNamedArguments( - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithNamedArguments( - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either DoNotHaveName() without the useRegularExpressions parameter or DoNotHaveNameMatching() should be used" - )] - public TGivenRuleTypeConjunction DoNotHaveName(string pattern, bool useRegularExpressions) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveName(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveName(string name) - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.DoNotHaveName(name)); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveNameMatching(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either DoNotHaveFullName() without the useRegularExpressions parameter or DoNotHaveFullNameMatching() should be used" - )] - public TGivenRuleTypeConjunction DoNotHaveFullName( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveFullName( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveFullName(string fullName) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveFullName(fullName) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveFullNameMatching(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveFullNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveNameStartingWith(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveNameStartingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveNameEndingWith(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveNameEndingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveNameContaining(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction DoNotHaveFullNameContaining(string pattern) - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.DoNotHaveFullNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNotPrivate() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreNotPrivate()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNotPublic() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreNotPublic()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNotProtected() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreNotProtected()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNotInternal() - { - _ruleCreator.AddPredicate(ObjectPredicatesDefinition.AreNotInternal()); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNotProtectedInternal() - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.AreNotProtectedInternal() - ); - return Create(_ruleCreator); - } - - public TGivenRuleTypeConjunction AreNotPrivateProtected() - { - _ruleCreator.AddPredicate( - ObjectPredicatesDefinition.AreNotPrivateProtected() - ); - return Create(_ruleCreator); - } } } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/IComplexObjectConditions.cs b/ArchUnitNET/Fluent/Syntax/Elements/IComplexObjectConditions.cs index 256b56bbb..94365eb0b 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/IComplexObjectConditions.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/IComplexObjectConditions.cs @@ -9,32 +9,17 @@ public interface IComplexObjectConditions where TRuleType : ICanBeAnalyzed where TRuleTypeShouldConjunction : SyntaxElement { - ShouldRelateToTypesThat< - TRuleTypeShouldConjunction, - IType, - TRuleType - > DependOnAnyTypesThat(); - ShouldRelateToTypesThat< - TRuleTypeShouldConjunction, - IType, - TRuleType - > OnlyDependOnTypesThat(); + // csharpier-ignore-start + ShouldRelateToTypesThat DependOnAnyTypesThat(); + ShouldRelateToTypesThat OnlyDependOnTypesThat(); + ShouldRelateToAttributesThat HaveAnyAttributesThat(); - ShouldRelateToAttributesThat< - TRuleTypeShouldConjunction, - TRuleType - > OnlyHaveAttributesThat(); + ShouldRelateToAttributesThat OnlyHaveAttributesThat(); - //Negations + // Negations - ShouldRelateToTypesThat< - TRuleTypeShouldConjunction, - IType, - TRuleType - > NotDependOnAnyTypesThat(); - ShouldRelateToAttributesThat< - TRuleTypeShouldConjunction, - TRuleType - > NotHaveAnyAttributesThat(); + ShouldRelateToTypesThat NotDependOnAnyTypesThat(); + ShouldRelateToAttributesThat NotHaveAnyAttributesThat(); + // csharpier-ignore-end } } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/IObjectConditions.cs b/ArchUnitNET/Fluent/Syntax/Elements/IObjectConditions.cs index bb424414f..a31b2f626 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/IObjectConditions.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/IObjectConditions.cs @@ -9,206 +9,81 @@ namespace ArchUnitNET.Fluent.Syntax.Elements public interface IObjectConditions where TRuleType : ICanBeAnalyzed { - TReturnType Exist(); + // csharpier-ignore-start - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Be(Types().That().HaveFullName()) instead" - )] - TReturnType Be(string pattern, bool useRegularExpressions = false); + TReturnType Exist(); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Be(Types().That().HaveFullName()) instead" - )] - TReturnType Be(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType Be(ICanBeAnalyzed firstObject, params ICanBeAnalyzed[] moreObjects); + TReturnType Be(params ICanBeAnalyzed[] objects); TReturnType Be(IEnumerable objects); TReturnType Be(IObjectProvider objects); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType CallAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType CallAny(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType CallAny(MethodMember method, params MethodMember[] moreMethods); + TReturnType CallAny(params MethodMember[] methods); TReturnType CallAny(IEnumerable methods); TReturnType CallAny(IObjectProvider methods); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType DependOnAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType DependOnAny(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType DependOnAny(IType firstType, params IType[] moreTypes); - TReturnType DependOnAny(Type firstType, params Type[] moreTypes); + TReturnType DependOnAny(); + TReturnType DependOnAny(params IType[] types); + TReturnType DependOnAny(params Type[] types); TReturnType DependOnAny(IObjectProvider types); TReturnType DependOnAny(IEnumerable types); TReturnType DependOnAny(IEnumerable types); + TReturnType FollowCustomCondition(ICondition condition); - TReturnType FollowCustomCondition( - Func condition, - string description - ); - TReturnType FollowCustomCondition( - Func condition, - string description, - string failDescription - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - TReturnType OnlyDependOn(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - TReturnType OnlyDependOn(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType OnlyDependOn(IType firstType, params IType[] moreTypes); - TReturnType OnlyDependOn(Type firstType, params Type[] moreTypes); + TReturnType FollowCustomCondition(Func condition, string description); + TReturnType FollowCustomCondition(Func condition, string description, string failDescription); + + TReturnType OnlyDependOn(); + TReturnType OnlyDependOn(params IType[] types); + TReturnType OnlyDependOn(params Type[] types); TReturnType OnlyDependOn(IObjectProvider types); TReturnType OnlyDependOn(IEnumerable types); TReturnType OnlyDependOn(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType HaveAnyAttributes(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType HaveAnyAttributes(Attribute firstAttribute, params Attribute[] moreAttributes); - TReturnType HaveAnyAttributes(Type firstAttribute, params Type[] moreAttributes); + TReturnType HaveAnyAttributes(); + TReturnType HaveAnyAttributes(params Attribute[] attributes); + TReturnType HaveAnyAttributes(params Type[] attributes); TReturnType HaveAnyAttributes(IObjectProvider attributes); TReturnType HaveAnyAttributes(IEnumerable attributes); TReturnType HaveAnyAttributes(IEnumerable attributes); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType OnlyHaveAttributes(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType OnlyHaveAttributes(Attribute firstAttribute, params Attribute[] moreAttributes); - TReturnType OnlyHaveAttributes(Type firstAttribute, params Type[] moreAttributes); + TReturnType OnlyHaveAttributes(); + TReturnType OnlyHaveAttributes(params Attribute[] attributes); + TReturnType OnlyHaveAttributes(params Type[] attributes); TReturnType OnlyHaveAttributes(IObjectProvider attributes); TReturnType OnlyHaveAttributes(IEnumerable attributes); TReturnType OnlyHaveAttributes(IEnumerable attributes); + TReturnType HaveAnyAttributesWithArguments(IEnumerable argumentValues); - TReturnType HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType HaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ); - TReturnType HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); + + TReturnType HaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues); TReturnType HaveAttributeWithArguments(Type attribute, IEnumerable argumentValues); - TReturnType HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ); - TReturnType HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - TReturnType HaveName(string pattern, bool useRegularExpressions); + + TReturnType HaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments); + TReturnType HaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments); + + TReturnType HaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType HaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments); + TReturnType HaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType HaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments); + TReturnType HaveName(string name); TReturnType HaveNameMatching(string pattern); - - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - TReturnType HaveFullName(string pattern, bool useRegularExpressions); - TReturnType HaveFullName(string fullName); - TReturnType HaveFullNameMatching(string pattern); TReturnType HaveNameStartingWith(string pattern); TReturnType HaveNameEndingWith(string pattern); TReturnType HaveNameContaining(string pattern); + + TReturnType HaveFullName(string fullName); + TReturnType HaveFullNameMatching(string pattern); + TReturnType HaveFullNameStartingWith(string pattern); + TReturnType HaveFullNameEndingWith(string pattern); TReturnType HaveFullNameContaining(string pattern); + + TReturnType HaveAssemblyQualifiedName(string assemblyQualifiedName); + TReturnType HaveAssemblyQualifiedNameMatching(string pattern); + TReturnType HaveAssemblyQualifiedNameStartingWith(string pattern); + TReturnType HaveAssemblyQualifiedNameEndingWith(string pattern); + TReturnType HaveAssemblyQualifiedNameContaining(string pattern); + TReturnType BePrivate(); TReturnType BePublic(); TReturnType BeProtected(); @@ -220,141 +95,66 @@ TReturnType HaveAttributeWithNamedArguments( TReturnType NotExist(); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBe(Types().That().HaveFullName()) instead" - )] - TReturnType NotBe(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBe(Types().That().HaveFullName()) instead" - )] - TReturnType NotBe(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType NotBe(ICanBeAnalyzed firstObject, params ICanBeAnalyzed[] moreObjects); + TReturnType NotBe(params ICanBeAnalyzed[] objects); TReturnType NotBe(IEnumerable objects); TReturnType NotBe(IObjectProvider objects); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType NotCallAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType NotCallAny(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType NotCallAny(MethodMember method, params MethodMember[] moreMethods); + TReturnType NotCallAny(params MethodMember[] methods); TReturnType NotCallAny(IEnumerable methods); TReturnType NotCallAny(IObjectProvider methods); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotDependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType NotDependOnAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotDependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType NotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType NotDependOnAny(IType firstType, params IType[] moreTypes); - TReturnType NotDependOnAny(Type firstType, params Type[] moreTypes); + TReturnType NotDependOnAny(); + TReturnType NotDependOnAny(params IType[] types); + TReturnType NotDependOnAny(params Type[] types); TReturnType NotDependOnAny(IObjectProvider types); TReturnType NotDependOnAny(IEnumerable types); TReturnType NotDependOnAny(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType NotHaveAnyAttributes(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType NotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType NotHaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ); - TReturnType NotHaveAnyAttributes(Type firstAttribute, params Type[] moreAttributes); + TReturnType NotHaveAnyAttributes(); + TReturnType NotHaveAnyAttributes(params Attribute[] attributes); + TReturnType NotHaveAnyAttributes(params Type[] attributes); TReturnType NotHaveAnyAttributes(IObjectProvider attributes); TReturnType NotHaveAnyAttributes(IEnumerable attributes); TReturnType NotHaveAnyAttributes(IEnumerable attributes); + TReturnType NotHaveAnyAttributesWithArguments(IEnumerable argumentValues); - TReturnType NotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType NotHaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ); - TReturnType NotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType NotHaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ); - TReturnType NotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType NotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ); - TReturnType NotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType NotHaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType NotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType NotHaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType NotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - - [Obsolete( - "Either NotHaveName() without the useRegularExpressions parameter or NotHaveNameMatching() should be used" - )] - TReturnType NotHaveName(string pattern, bool useRegularExpressions); + + TReturnType NotHaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues); + TReturnType NotHaveAttributeWithArguments(Type attribute, IEnumerable argumentValues); + + TReturnType NotHaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments); + TReturnType NotHaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments); + + TReturnType NotHaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType NotHaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments); + TReturnType NotHaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType NotHaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments); + TReturnType NotHaveName(string name); TReturnType NotHaveNameMatching(string pattern); - - [Obsolete( - "Either NotHaveFullName() without the useRegularExpressions parameter or NotHaveFullNameMatching() should be used" - )] - TReturnType NotHaveFullName(string pattern, bool useRegularExpressions); - TReturnType NotHaveFullName(string fullName); - TReturnType NotHaveFullNameMatching(string pattern); TReturnType NotHaveNameStartingWith(string pattern); TReturnType NotHaveNameEndingWith(string pattern); TReturnType NotHaveNameContaining(string pattern); + + TReturnType NotHaveFullName(string fullName); + TReturnType NotHaveFullNameMatching(string pattern); + TReturnType NotHaveFullNameStartingWith(string pattern); + TReturnType NotHaveFullNameEndingWith(string pattern); TReturnType NotHaveFullNameContaining(string pattern); + + TReturnType NotHaveAssemblyQualifiedName(string assemblyQualifiedName); + TReturnType NotHaveAssemblyQualifiedNameMatching(string pattern); + TReturnType NotHaveAssemblyQualifiedNameStartingWith(string pattern); + TReturnType NotHaveAssemblyQualifiedNameEndingWith(string pattern); + TReturnType NotHaveAssemblyQualifiedNameContaining(string pattern); + TReturnType NotBePrivate(); TReturnType NotBePublic(); TReturnType NotBeProtected(); TReturnType NotBeInternal(); TReturnType NotBeProtectedInternal(); TReturnType NotBePrivateProtected(); + + // csharpier-ignore-end } } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/IObjectPredicates.cs b/ArchUnitNET/Fluent/Syntax/Elements/IObjectPredicates.cs index baec6c04c..9378c26b2 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/IObjectPredicates.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/IObjectPredicates.cs @@ -9,196 +9,78 @@ namespace ArchUnitNET.Fluent.Syntax.Elements public interface IObjectPredicates where TRuleType : ICanBeAnalyzed { - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - TReturnType Are(string pattern, bool useRegularExpressions = false); + // csharpier-ignore-start - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - TReturnType Are(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType Are(ICanBeAnalyzed firstObject, params ICanBeAnalyzed[] moreObjects); + TReturnType FollowCustomPredicate(IPredicate predicate); + TReturnType FollowCustomPredicate(Func predicate, string description); + + TReturnType Are(params ICanBeAnalyzed[] objects); TReturnType Are(IEnumerable objects); TReturnType Are(IObjectProvider objects); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType CallAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType CallAny(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType CallAny(MethodMember method, params MethodMember[] moreMethods); + TReturnType CallAny(params MethodMember[] methods); TReturnType CallAny(IEnumerable methods); TReturnType CallAny(IObjectProvider methods); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType DependOnAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType DependOnAny(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType DependOnAny(Type firstType, params Type[] moreTypes); - TReturnType DependOnAny(IType firstType, params IType[] moreTypes); - TReturnType DependOnAny(IObjectProvider types); + TReturnType DependOnAny(); + TReturnType DependOnAny(params IType[] types); + TReturnType DependOnAny(params Type[] types); TReturnType DependOnAny(IEnumerable types); TReturnType DependOnAny(IEnumerable types); - TReturnType FollowCustomPredicate(IPredicate predicate); - TReturnType FollowCustomPredicate(Func predicate, string description); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - TReturnType OnlyDependOn(string pattern, bool useRegularExpressions = false); + TReturnType DependOnAny(IObjectProvider types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - TReturnType OnlyDependOn(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType OnlyDependOn(Type firstType, params Type[] moreTypes); - TReturnType OnlyDependOn(IType firstType, params IType[] moreTypes); - TReturnType OnlyDependOn(IObjectProvider types); + TReturnType OnlyDependOn(); + TReturnType OnlyDependOn(params IType[] types); + TReturnType OnlyDependOn(params Type[] types); TReturnType OnlyDependOn(IEnumerable types); TReturnType OnlyDependOn(IEnumerable types); + TReturnType OnlyDependOn(IObjectProvider types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType HaveAnyAttributes(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType HaveAnyAttributes(Attribute firstAttribute, params Attribute[] moreAttributes); - TReturnType HaveAnyAttributes(Type firstAttribute, params Type[] moreAttributes); - TReturnType HaveAnyAttributes(IObjectProvider attributes); + TReturnType HaveAnyAttributes(); + TReturnType HaveAnyAttributes(params Attribute[] attributes); + TReturnType HaveAnyAttributes(params Type[] attributes); TReturnType HaveAnyAttributes(IEnumerable attributes); TReturnType HaveAnyAttributes(IEnumerable attributes); + TReturnType HaveAnyAttributes(IObjectProvider attributes); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType OnlyHaveAttributes(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType OnlyHaveAttributes(Attribute firstAttribute, params Attribute[] moreAttributes); - TReturnType OnlyHaveAttributes(Type firstAttribute, params Type[] moreAttributes); - TReturnType OnlyHaveAttributes(IObjectProvider attributes); + TReturnType OnlyHaveAttributes(); + TReturnType OnlyHaveAttributes(params Attribute[] attributes); + TReturnType OnlyHaveAttributes(params Type[] attributes); TReturnType OnlyHaveAttributes(IEnumerable attributes); TReturnType OnlyHaveAttributes(IEnumerable attributes); - TReturnType HaveAnyAttributesWithArguments(IEnumerable argumentValues); - TReturnType HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ); + TReturnType OnlyHaveAttributes(IObjectProvider attributes); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ); + TReturnType HaveAnyAttributesWithArguments(IEnumerable argumentValues); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType HaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ); - TReturnType HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); + TReturnType HaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues); TReturnType HaveAttributeWithArguments(Type attribute, IEnumerable argumentValues); - TReturnType HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ); - TReturnType HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ); + TReturnType HaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments); + TReturnType HaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); + TReturnType HaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType HaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments); + TReturnType HaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType HaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments); - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - TReturnType HaveName(string pattern, bool useRegularExpressions); TReturnType HaveName(string name); TReturnType HaveNameMatching(string pattern); - - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - TReturnType HaveFullName(string pattern, bool useRegularExpressions); - TReturnType HaveFullName(string fullName); - TReturnType HaveFullNameMatching(string pattern); TReturnType HaveNameStartingWith(string pattern); TReturnType HaveNameEndingWith(string pattern); TReturnType HaveNameContaining(string pattern); + + TReturnType HaveFullName(string fullName); + TReturnType HaveFullNameMatching(string pattern); + TReturnType HaveFullNameStartingWith(string pattern); + TReturnType HaveFullNameEndingWith(string pattern); TReturnType HaveFullNameContaining(string pattern); + + TReturnType HaveAssemblyQualifiedName(string assemblyQualifiedName); + TReturnType HaveAssemblyQualifiedNameMatching(string pattern); + TReturnType HaveAssemblyQualifiedNameStartingWith(string pattern); + TReturnType HaveAssemblyQualifiedNameEndingWith(string pattern); + TReturnType HaveAssemblyQualifiedNameContaining(string pattern); + TReturnType ArePrivate(); TReturnType ArePublic(); TReturnType AreProtected(); @@ -208,175 +90,66 @@ TReturnType HaveAttributeWithNamedArguments( //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - TReturnType AreNot(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - TReturnType AreNot(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType AreNot(ICanBeAnalyzed firstObject, params ICanBeAnalyzed[] moreObjects); + TReturnType AreNot(params ICanBeAnalyzed[] objects); TReturnType AreNot(IEnumerable objects); TReturnType AreNot(IObjectProvider objects); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType DoNotCallAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - TReturnType DoNotCallAny(IEnumerable patterns, bool useRegularExpressions = false); - TReturnType DoNotCallAny(MethodMember method, params MethodMember[] moreMethods); + TReturnType DoNotCallAny(params MethodMember[] methods); TReturnType DoNotCallAny(IEnumerable methods); TReturnType DoNotCallAny(IObjectProvider methods); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType DoNotDependOnAny(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - TReturnType DoNotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType DoNotDependOnAny(Type firstType, params Type[] moreTypes); - TReturnType DoNotDependOnAny(IType firstType, params IType[] moreTypes); + TReturnType DoNotDependOnAny(); + TReturnType DoNotDependOnAny(params IType[] types); + TReturnType DoNotDependOnAny(params Type[] types); TReturnType DoNotDependOnAny(IObjectProvider types); TReturnType DoNotDependOnAny(IEnumerable types); TReturnType DoNotDependOnAny(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType DoNotHaveAnyAttributes(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - TReturnType DoNotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TReturnType DoNotHaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ); - TReturnType DoNotHaveAnyAttributes(Type firstAttribute, params Type[] moreAttributes); + TReturnType DoNotHaveAnyAttributes(); + TReturnType DoNotHaveAnyAttributes(params Attribute[] attributes); + TReturnType DoNotHaveAnyAttributes(params Type[] attributes); TReturnType DoNotHaveAnyAttributes(IObjectProvider attributes); TReturnType DoNotHaveAnyAttributes(IEnumerable attributes); TReturnType DoNotHaveAnyAttributes(IEnumerable attributes); - TReturnType DoNotHaveAnyAttributesWithArguments(IEnumerable argumentValues); - TReturnType DoNotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType DoNotHaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ); + TReturnType DoNotHaveAnyAttributesWithArguments(IEnumerable argumentValues); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType DoNotHaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType DoNotHaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ); - TReturnType DoNotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType DoNotHaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ); - TReturnType DoNotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ); - TReturnType DoNotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ); - TReturnType DoNotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); + TReturnType DoNotHaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues); + TReturnType DoNotHaveAttributeWithArguments(Type attribute, IEnumerable argumentValues); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType DoNotHaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ); + TReturnType DoNotHaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments); + TReturnType DoNotHaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - TReturnType DoNotHaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); - TReturnType DoNotHaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ); - TReturnType DoNotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ); + TReturnType DoNotHaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType DoNotHaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments); + TReturnType DoNotHaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments); + TReturnType DoNotHaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments); - [Obsolete( - "Either DoNotHaveName() without the useRegularExpressions parameter or DoNotHaveNameMatching() should be used" - )] - TReturnType DoNotHaveName(string pattern, bool useRegularExpressions); TReturnType DoNotHaveName(string name); TReturnType DoNotHaveNameMatching(string pattern); - - [Obsolete( - "Either DoNotHaveFullName() without the useRegularExpressions parameter or DoNotHaveFullNameMatching() should be used" - )] - TReturnType DoNotHaveFullName(string pattern, bool useRegularExpressions); - TReturnType DoNotHaveFullName(string fullName); - TReturnType DoNotHaveFullNameMatching(string pattern); TReturnType DoNotHaveNameStartingWith(string pattern); TReturnType DoNotHaveNameEndingWith(string pattern); TReturnType DoNotHaveNameContaining(string pattern); + + TReturnType DoNotHaveFullName(string fullName); + TReturnType DoNotHaveFullNameMatching(string pattern); + TReturnType DoNotHaveFullNameStartingWith(string pattern); + TReturnType DoNotHaveFullNameEndingWith(string pattern); TReturnType DoNotHaveFullNameContaining(string pattern); + + TReturnType DoNotHaveAssemblyQualifiedName(string assemblyQualifiedName); + TReturnType DoNotHaveAssemblyQualifiedNameMatching(string pattern); + TReturnType DoNotHaveAssemblyQualifiedNameStartingWith(string pattern); + TReturnType DoNotHaveAssemblyQualifiedNameEndingWith(string pattern); + TReturnType DoNotHaveAssemblyQualifiedNameContaining(string pattern); + TReturnType AreNotPrivate(); TReturnType AreNotPublic(); TReturnType AreNotProtected(); TReturnType AreNotInternal(); TReturnType AreNotProtectedInternal(); TReturnType AreNotPrivateProtected(); + + // csharpier-ignore-end } } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/GivenMembersThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/GivenMembersThat.cs index d3796a48e..e88287bd3 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/GivenMembersThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/GivenMembersThat.cs @@ -15,34 +15,6 @@ public class GivenMembersThat public GivenMembersThat(IArchRuleCreator ruleCreator) : base(ruleCreator) { } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MemberPredicatesDefinition.AreDeclaredIn(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MemberPredicatesDefinition.AreDeclaredIn(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction AreDeclaredIn(IType firstType, params IType[] moreTypes) { _ruleCreator.AddPredicate( @@ -97,40 +69,6 @@ public TGivenRuleTypeConjunction AreImmutable() //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreNotDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MemberPredicatesDefinition.AreNotDeclaredIn( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreNotDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MemberPredicatesDefinition.AreNotDeclaredIn( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction AreNotDeclaredIn(IType firstType, params IType[] moreTypes) { _ruleCreator.AddPredicate( diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberConditions.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberConditions.cs index 7cfdb6216..370ec5df2 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberConditions.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberConditions.cs @@ -8,15 +8,6 @@ public interface IMemberConditions : IObjectConditions where TRuleType : ICanBeAnalyzed { - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeDeclaredIn(Types().That().HaveFullName()) instead" - )] - TReturnType BeDeclaredIn(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeDeclaredIn(Types().That().HaveFullName()) instead" - )] - TReturnType BeDeclaredIn(IEnumerable patterns, bool useRegularExpressions = false); TReturnType BeDeclaredIn(IType firstType, params IType[] moreTypes); TReturnType BeDeclaredIn(Type firstType, params Type[] moreTypes); TReturnType BeDeclaredIn(IObjectProvider types); @@ -26,18 +17,6 @@ public interface IMemberConditions TReturnType BeImmutable(); //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeDeclaredIn(Types().That().HaveFullName()) instead" - )] - TReturnType NotBeDeclaredIn(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeDeclaredIn(Types().That().HaveFullName()) instead" - )] - TReturnType NotBeDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType NotBeDeclaredIn(IType firstType, params IType[] moreTypes); TReturnType NotBeDeclaredIn(Type firstType, params Type[] moreTypes); TReturnType NotBeDeclaredIn(IObjectProvider types); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberPredicates.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberPredicates.cs index 7eab31bcc..c98f5bb7d 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberPredicates.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/IMemberPredicates.cs @@ -8,18 +8,6 @@ public interface IMemberPredicates : IObjectPredicates where TRuleType : ICanBeAnalyzed { - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreDeclaredIn(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ); TRuleTypeConjunction AreDeclaredIn(IType firstType, params IType[] moreTypes); TRuleTypeConjunction AreDeclaredIn(Type firstType, params Type[] moreTypes); TRuleTypeConjunction AreDeclaredIn(IObjectProvider types); @@ -30,18 +18,6 @@ TRuleTypeConjunction AreDeclaredIn( //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreNotDeclaredIn(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreNotDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ); TRuleTypeConjunction AreNotDeclaredIn(IType firstType, params IType[] moreTypes); TRuleTypeConjunction AreNotDeclaredIn(Type firstType, params Type[] moreTypes); TRuleTypeConjunction AreNotDeclaredIn(IObjectProvider types); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberConditionsDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberConditionsDefinition.cs index 0a946c023..c27397554 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberConditionsDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberConditionsDefinition.cs @@ -11,70 +11,6 @@ namespace ArchUnitNET.Fluent.Syntax.Elements.Members public static class MemberConditionsDefinition where TRuleType : IMember { - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static ICondition BeDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - member => member.IsDeclaredIn(pattern, useRegularExpressions), - member => "is declared in " + member.DeclaringType.FullName, - "be declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static ICondition BeDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) - { - return patternList.Any(pattern => - ruleType.IsDeclaredIn(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "be declared in no type (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(obj => !obj.Equals(firstPattern)) - .Distinct() - .Aggregate( - "be declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition( - Condition, - member => "is declared in " + member.DeclaringType.FullName, - description - ); - } - public static ICondition BeDeclaredIn(IType firstType, params IType[] moreTypes) { var types = new List { firstType }; @@ -258,70 +194,6 @@ public static RelationCondition BeDeclaredInTypesThat() //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBeDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - member => !member.IsDeclaredIn(pattern, useRegularExpressions), - member => "is declared in " + member.DeclaringType.FullName, - "not be declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBeDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) - { - return patternList.All(pattern => - !ruleType.IsDeclaredIn(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "not be declared in no type (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(obj => !obj.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not be declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition( - Condition, - member => "is declared in " + member.DeclaringType.FullName, - description - ); - } - public static ICondition NotBeDeclaredIn( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberPredicatesDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberPredicatesDefinition.cs index c703aa395..92ad451b3 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberPredicatesDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MemberPredicatesDefinition.cs @@ -11,65 +11,6 @@ namespace ArchUnitNET.Fluent.Syntax.Elements.Members public static class MemberPredicatesDefinition where T : IMember { - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => member.IsDeclaredIn(pattern, useRegularExpressions), - "are declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(T ruleType) - { - return patternList.Any(pattern => - ruleType.IsDeclaredIn(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "are declared in no type (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(obj => !obj.Equals(firstPattern)) - .Distinct() - .Aggregate( - "are declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate AreDeclaredIn(IType firstType, params IType[] moreTypes) { var types = new List { firstType }; @@ -195,65 +136,6 @@ public static IPredicate AreImmutable() //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNotDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => !member.IsDeclaredIn(pattern, useRegularExpressions), - "are not declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNotDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(T ruleType) - { - return patternList.All(pattern => - !ruleType.IsDeclaredIn(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "are not declared in no type (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(obj => !obj.Equals(firstPattern)) - .Distinct() - .Aggregate( - "are not declared in types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate AreNotDeclaredIn(IType firstType, params IType[] moreTypes) { var types = new List { firstType }; diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MembersShould.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MembersShould.cs index 2b1061917..90c608ea6 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MembersShould.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MembersShould.cs @@ -16,34 +16,6 @@ public class MembersShould public MembersShould(IArchRuleCreator ruleCreator) : base(ruleCreator) { } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction BeDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MemberConditionsDefinition.BeDeclaredIn(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction BeDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MemberConditionsDefinition.BeDeclaredIn(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction BeDeclaredIn(IType firstType, params IType[] moreTypes) { _ruleCreator.AddCondition( @@ -115,40 +87,6 @@ public ShouldRelateToTypesThat< //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotBeDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MemberConditionsDefinition.NotBeDeclaredIn( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotBeDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MemberConditionsDefinition.NotBeDeclaredIn( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction NotBeDeclaredIn(IType firstType, params IType[] moreTypes) { _ruleCreator.AddCondition( diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/GivenMethodMembersThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/GivenMethodMembersThat.cs index 9c1d19c74..fa588e565 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/GivenMethodMembersThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/GivenMethodMembersThat.cs @@ -23,34 +23,6 @@ public GivenMethodMembersConjunction AreVirtual() return new GivenMethodMembersConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction AreCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.AreCalledBy(pattern, useRegularExpressions) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction AreCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.AreCalledBy(patterns, useRegularExpressions) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - public GivenMethodMembersConjunction AreCalledBy(IType firstType, params IType[] moreTypes) { _ruleCreator.AddPredicate( @@ -85,40 +57,6 @@ public GivenMethodMembersConjunction AreCalledBy(IEnumerable types) return new GivenMethodMembersConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.HaveDependencyInMethodBodyTo( - pattern, - useRegularExpressions - ) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.HaveDependencyInMethodBodyTo( - patterns, - useRegularExpressions - ) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - public GivenMethodMembersConjunction HaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -167,34 +105,6 @@ public GivenMethodMembersConjunction HaveDependencyInMethodBodyTo(IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.HaveReturnType(patterns, useRegularExpressions) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - public GivenMethodMembersConjunction HaveReturnType( IType firstType, params IType[] moreTypes @@ -246,34 +156,6 @@ public GivenMethodMembersConjunction AreNotVirtual() return new GivenMethodMembersConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction AreNotCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.AreNotCalledBy(pattern, useRegularExpressions) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction AreNotCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.AreNotCalledBy(patterns, useRegularExpressions) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - public GivenMethodMembersConjunction AreNotCalledBy( IType firstType, params IType[] moreTypes @@ -311,40 +193,6 @@ public GivenMethodMembersConjunction AreNotCalledBy(IEnumerable types) return new GivenMethodMembersConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction DoNotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.DoNotHaveDependencyInMethodBodyTo( - pattern, - useRegularExpressions - ) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction DoNotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.DoNotHaveDependencyInMethodBodyTo( - patterns, - useRegularExpressions - ) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - public GivenMethodMembersConjunction DoNotHaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -400,37 +248,6 @@ IEnumerable types return new GivenMethodMembersConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction DoNotHaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.DoNotHaveReturnType(pattern, useRegularExpressions) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public GivenMethodMembersConjunction DoNotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - MethodMemberPredicatesDefinition.DoNotHaveReturnType( - patterns, - useRegularExpressions - ) - ); - return new GivenMethodMembersConjunction(_ruleCreator); - } - public GivenMethodMembersConjunction DoNotHaveReturnType( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberConditions.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberConditions.cs index bdd5be49f..c95b97342 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberConditions.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberConditions.cs @@ -11,54 +11,18 @@ public interface IMethodMemberConditions TReturnType BeConstructor(); TReturnType BeVirtual(); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeCalledBy(Types().That().HaveFullName()) instead" - )] - TReturnType BeCalledBy(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeCalledBy(Types().That().HaveFullName()) instead" - )] - TReturnType BeCalledBy(IEnumerable patterns, bool useRegularExpressions = false); TReturnType BeCalledBy(IType firstType, params IType[] moreTypes); TReturnType BeCalledBy(Type type, params Type[] moreTypes); TReturnType BeCalledBy(IObjectProvider types); TReturnType BeCalledBy(IEnumerable types); TReturnType BeCalledBy(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TReturnType HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TReturnType HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType HaveDependencyInMethodBodyTo(IType firstType, params IType[] moreTypes); TReturnType HaveDependencyInMethodBodyTo(Type type, params Type[] moreTypes); TReturnType HaveDependencyInMethodBodyTo(IObjectProvider types); TReturnType HaveDependencyInMethodBodyTo(IEnumerable types); TReturnType HaveDependencyInMethodBodyTo(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - TReturnType HaveReturnType(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - TReturnType HaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType HaveReturnType(IType firstType, params IType[] moreTypes); TReturnType HaveReturnType(IEnumerable types); TReturnType HaveReturnType(IObjectProvider types); @@ -70,54 +34,18 @@ TReturnType HaveReturnType( TReturnType BeNoConstructor(); TReturnType NotBeVirtual(); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeCalledBy(Types().That().HaveFullName()) instead" - )] - TReturnType NotBeCalledBy(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeCalledBy(Types().That().HaveFullName()) instead" - )] - TReturnType NotBeCalledBy(IEnumerable patterns, bool useRegularExpressions = false); TReturnType NotBeCalledBy(IType firstType, params IType[] moreTypes); TReturnType NotBeCalledBy(Type type, params Type[] moreTypes); TReturnType NotBeCalledBy(IObjectProvider types); TReturnType NotBeCalledBy(IEnumerable types); TReturnType NotBeCalledBy(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TReturnType NotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TReturnType NotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType NotHaveDependencyInMethodBodyTo(IType firstType, params IType[] moreTypes); TReturnType NotHaveDependencyInMethodBodyTo(Type type, params Type[] moreTypes); TReturnType NotHaveDependencyInMethodBodyTo(IObjectProvider types); TReturnType NotHaveDependencyInMethodBodyTo(IEnumerable types); TReturnType NotHaveDependencyInMethodBodyTo(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveReturnType(Types().That().HaveFullName()) instead" - )] - TReturnType NotHaveReturnType(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveReturnType(Types().That().HaveFullName()) instead" - )] - TReturnType NotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType NotHaveReturnType(IType firstType, params IType[] moreTypes); TReturnType NotHaveReturnType(IEnumerable types); TReturnType NotHaveReturnType(IObjectProvider types); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberPredicates.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberPredicates.cs index d85532ca9..434fb7542 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberPredicates.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/IMethodMemberPredicates.cs @@ -11,40 +11,12 @@ public interface IMethodMemberPredicates TRuleTypeConjunction AreConstructors(); TRuleTypeConjunction AreVirtual(); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreCalledBy(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ); TRuleTypeConjunction AreCalledBy(IType firstType, params IType[] moreTypes); TRuleTypeConjunction AreCalledBy(Type type, params Type[] moreTypes); TRuleTypeConjunction AreCalledBy(IObjectProvider types); TRuleTypeConjunction AreCalledBy(IEnumerable types); TRuleTypeConjunction AreCalledBy(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TRuleTypeConjunction HaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -54,18 +26,6 @@ params IType[] moreTypes TRuleTypeConjunction HaveDependencyInMethodBodyTo(IEnumerable types); TRuleTypeConjunction HaveDependencyInMethodBodyTo(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction HaveReturnType(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction HaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ); TRuleTypeConjunction HaveReturnType(IType firstType, params IType[] moreTypes); TRuleTypeConjunction HaveReturnType(IEnumerable types); TRuleTypeConjunction HaveReturnType(IObjectProvider types); @@ -77,40 +37,12 @@ TRuleTypeConjunction HaveReturnType( TRuleTypeConjunction AreNoConstructors(); TRuleTypeConjunction AreNotVirtual(); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreNotCalledBy(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction AreNotCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ); TRuleTypeConjunction AreNotCalledBy(IType firstType, params IType[] moreTypes); TRuleTypeConjunction AreNotCalledBy(Type type, params Type[] moreTypes); TRuleTypeConjunction AreNotCalledBy(IObjectProvider types); TRuleTypeConjunction AreNotCalledBy(IEnumerable types); TRuleTypeConjunction AreNotCalledBy(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction DoNotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction DoNotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); - TRuleTypeConjunction DoNotHaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -120,21 +52,6 @@ params IType[] moreTypes TRuleTypeConjunction DoNotHaveDependencyInMethodBodyTo(IEnumerable types); TRuleTypeConjunction DoNotHaveDependencyInMethodBodyTo(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction DoNotHaveReturnType( - string pattern, - bool useRegularExpressions = false - ); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - TRuleTypeConjunction DoNotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ); TRuleTypeConjunction DoNotHaveReturnType(IType firstType, params IType[] moreTypes); TRuleTypeConjunction DoNotHaveReturnType(IEnumerable types); TRuleTypeConjunction DoNotHaveReturnType(IObjectProvider types); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberConditionsDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberConditionsDefinition.cs index 4b419aae0..096b92a7a 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberConditionsDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberConditionsDefinition.cs @@ -37,83 +37,6 @@ public static ICondition BeVirtual() ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeCalledBy(Types().That().HaveFullName()) instead" - )] - public static ICondition BeCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - member => member.IsCalledBy(pattern, useRegularExpressions), - "be called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "is called by a type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeCalledBy(Types().That().HaveFullName()) instead" - )] - public static ICondition BeCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return patternList.Any(pattern => - ruleType.IsCalledBy(pattern, useRegularExpressions) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "be called by one of no types (always false)"; - failDescription = "is not called by one of no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "be called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "is not called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static ICondition BeCalledBy(IType firstType, params IType[] moreTypes) { var types = new List { firstType }; @@ -288,84 +211,6 @@ Architecture architecture return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static ICondition HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - member => member.HasDependencyInMethodBodyTo(pattern, useRegularExpressions), - "have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not have dependencies in method body to a type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static ICondition HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return patternList.Any(pattern => - ruleType.HasDependencyInMethodBodyTo(pattern, useRegularExpressions) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "have dependency in method body to one of no types (always false)"; - failDescription = - "does not have dependencies in method body to one of no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does not have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static ICondition HaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -573,68 +418,6 @@ Architecture architecture return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - public static ICondition HaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - var description = - "have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - - var failDescription = - "does not have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - - return new SimpleCondition( - member => member.ReturnType.FullNameMatches(pattern, useRegularExpressions), - description, - failDescription - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - public static ICondition HaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternsArray = patterns.ToArray(); - var description = - "have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + string.Join("\" or \"", patternsArray) - + "\""; - - var failDescription = - "does not have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + string.Join("\" or \"", patternsArray) - + "\""; - - bool Condition(MethodMember member) - { - return patternsArray.Any(pattern => - member.ReturnType.FullNameMatches(pattern, useRegularExpressions) - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static ICondition HaveReturnType( IType firstType, params IType[] moreTypes @@ -746,99 +529,6 @@ public static ICondition NotBeVirtual() ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeCalledBy(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBeCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - ConditionResult Condition(MethodMember member) - { - var pass = true; - var description = "is called by"; - foreach ( - var type in member - .GetMethodCallDependencies(true) - .Select(dependency => dependency.Origin) - .Distinct() - ) - { - if (type.FullNameMatches(pattern, useRegularExpressions)) - { - description += (pass ? " " : " and ") + type.FullName; - pass = false; - } - } - - return new ConditionResult(member, pass, description); - } - - return new SimpleCondition( - Condition, - "not be called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeCalledBy(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBeCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return !patternList.Any(pattern => - ruleType.IsCalledBy(pattern, useRegularExpressions) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "not be called by one of no types (always true)"; - failDescription = "is called by one of no types (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not be called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "is called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static ICondition NotBeCalledBy( IType firstType, params IType[] moreTypes @@ -1019,101 +709,6 @@ Architecture architecture return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static ICondition NotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - ConditionResult Condition(MethodMember member) - { - var pass = true; - var description = "does have dependencies in method body to"; - foreach ( - var type in member - .GetBodyTypeMemberDependencies() - .Select(dependency => dependency.Target) - .Distinct() - ) - { - if (type.FullNameMatches(pattern, useRegularExpressions)) - { - description += (pass ? " " : " and ") + type.FullName; - pass = false; - } - } - - return new ConditionResult(member, pass, description); - } - - return new SimpleCondition( - Condition, - "not have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static ICondition NotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return !patternList.Any(pattern => - ruleType.HasDependencyInMethodBodyTo(pattern, useRegularExpressions) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = - "not have dependencies in method body to one of no types (always true)"; - failDescription = - "does have dependencies in method body to one of no types (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static ICondition NotHaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -1326,68 +921,6 @@ Architecture architecture return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public static ICondition NotHaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - var description = - "not have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - - var failDescription = - "does have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - - return new SimpleCondition( - member => !member.ReturnType.FullNameMatches(pattern, useRegularExpressions), - description, - failDescription - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public static ICondition NotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternsArray = patterns.ToArray(); - var description = - "not have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + string.Join("\" or \"", patternsArray) - + "\""; - - var failDescription = - "does have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + string.Join("\" or \"", patternsArray) - + "\""; - - bool Condition(MethodMember member) - { - return patternsArray.All(pattern => - !member.ReturnType.FullNameMatches(pattern, useRegularExpressions) - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static ICondition NotHaveReturnType( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberPredicatesDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberPredicatesDefinition.cs index 1c1a8ed31..1e576f656 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberPredicatesDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMemberPredicatesDefinition.cs @@ -23,65 +23,6 @@ public static IPredicate AreVirtual() return new SimplePredicate(member => member.IsVirtual, "are virtual"); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => member.IsCalledBy(pattern, useRegularExpressions), - "are called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return patternList.Any(pattern => - ruleType.IsCalledBy(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "are called by one of no types (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "are called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate AreCalledBy( IType firstType, params IType[] moreTypes @@ -190,65 +131,6 @@ Architecture architecture return new ArchitecturePredicate(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => member.HasDependencyInMethodBodyTo(pattern, useRegularExpressions), - "have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return patternList.Any(pattern => - ruleType.HasDependencyInMethodBodyTo(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "have dependencies in method body to one of no types (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate HaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -377,49 +259,6 @@ Architecture architecture return new ArchitecturePredicate(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - public static IPredicate HaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => member.ReturnType.FullNameMatches(pattern, useRegularExpressions), - "have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - public static IPredicate HaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternsArray = patterns.ToArray(); - var description = - "have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + string.Join("\" or \"", patternsArray) - + "\""; - - return new SimplePredicate( - member => - patternsArray.Any(pattern => - member.ReturnType.FullNameMatches(pattern, useRegularExpressions) - ), - description - ); - } - public static IPredicate HaveReturnType( IType firstType, params IType[] moreTypes @@ -502,65 +341,6 @@ public static IPredicate AreNotVirtual() ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNotCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => !member.IsCalledBy(pattern, useRegularExpressions), - "are not called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNotCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return !patternList.Any(pattern => - ruleType.IsCalledBy(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "are not called by one of no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "are not called by types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate AreNotCalledBy( IType firstType, params IType[] moreTypes @@ -672,66 +452,6 @@ Architecture architecture return new ArchitecturePredicate(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate DoNotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => !member.HasDependencyInMethodBodyTo(pattern, useRegularExpressions), - "do not have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate DoNotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(MethodMember ruleType) - { - return !patternList.Any(pattern => - ruleType.HasDependencyInMethodBodyTo(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = - "do not have dependencies in method body to one of no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "do not have dependencies in method body to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate DoNotHaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -865,49 +585,6 @@ Architecture architecture return new ArchitecturePredicate(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public static IPredicate DoNotHaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - member => !member.ReturnType.FullNameMatches(pattern, useRegularExpressions), - "do not have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public static IPredicate DoNotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternsArray = patterns.ToArray(); - var description = - "do not have return type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + string.Join("\" or \"", patternsArray) - + "\""; - - return new SimplePredicate( - member => - patternsArray.All(pattern => - !member.ReturnType.FullNameMatches(pattern, useRegularExpressions) - ), - description - ); - } - public static IPredicate DoNotHaveReturnType( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMembersShould.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMembersShould.cs index 9444e7087..30e0b3ef0 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMembersShould.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/MethodMembersShould.cs @@ -38,34 +38,6 @@ public MethodMembersShouldConjunction BeVirtual() return new MethodMembersShouldConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeCalledBy(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction BeCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.BeCalledBy(pattern, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeCalledBy(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction BeCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.BeCalledBy(patterns, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - public MethodMembersShouldConjunction BeCalledBy(IType firstType, params IType[] moreTypes) { _ruleCreator.AddCondition( @@ -98,40 +70,6 @@ public MethodMembersShouldConjunction BeCalledBy(IEnumerable types) return new MethodMembersShouldConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.HaveDependencyInMethodBodyTo( - pattern, - useRegularExpressions - ) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.HaveDependencyInMethodBodyTo( - patterns, - useRegularExpressions - ) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - public MethodMembersShouldConjunction HaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -180,34 +118,6 @@ public MethodMembersShouldConjunction HaveDependencyInMethodBodyTo(IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.HaveReturnType(patterns, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - public MethodMembersShouldConjunction HaveReturnType( IType firstType, params IType[] moreTypes @@ -259,34 +169,6 @@ public MethodMembersShouldConjunction NotBeVirtual() return new MethodMembersShouldConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeCalledBy(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction NotBeCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.NotBeCalledBy(pattern, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeCalledBy(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction NotBeCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.NotBeCalledBy(patterns, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - public MethodMembersShouldConjunction NotBeCalledBy( IType firstType, params IType[] moreTypes @@ -324,40 +206,6 @@ public MethodMembersShouldConjunction NotBeCalledBy(IEnumerable types) return new MethodMembersShouldConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction NotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.NotHaveDependencyInMethodBodyTo( - pattern, - useRegularExpressions - ) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction NotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.NotHaveDependencyInMethodBodyTo( - patterns, - useRegularExpressions - ) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - public MethodMembersShouldConjunction NotHaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -413,34 +261,6 @@ IEnumerable types return new MethodMembersShouldConjunction(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction NotHaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.NotHaveReturnType(pattern, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public MethodMembersShouldConjunction NotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - MethodMemberConditionsDefinition.NotHaveReturnType(patterns, useRegularExpressions) - ); - return new MethodMembersShouldConjunction(_ruleCreator); - } - public MethodMembersShouldConjunction NotHaveReturnType( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/ShouldRelateToMethodMembersThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/ShouldRelateToMethodMembersThat.cs index 4c8bbd00e..bf64ee5a7 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/ShouldRelateToMethodMembersThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/MethodMembers/ShouldRelateToMethodMembersThat.cs @@ -28,34 +28,6 @@ public TRuleTypeShouldConjunction AreVirtual() return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.AreCalledBy(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreCalledBy(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.AreCalledBy(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction AreCalledBy(IType firstType, params IType[] moreTypes) { _ruleCreator.ContinueComplexCondition( @@ -96,40 +68,6 @@ public TRuleTypeShouldConjunction AreCalledBy(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.HaveDependencyInMethodBodyTo( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.HaveDependencyInMethodBodyTo( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction HaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -176,34 +114,6 @@ public TRuleTypeShouldConjunction HaveDependencyInMethodBodyTo(IEnumerable return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.HaveReturnType(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveReturnType(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.HaveReturnType(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction HaveReturnType(IType firstType, params IType[] moreTypes) { _ruleCreator.ContinueComplexCondition( @@ -260,34 +170,6 @@ public TRuleTypeShouldConjunction AreNotVirtual() return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNotCalledBy( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.AreNotCalledBy(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotCalledBy(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNotCalledBy( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.AreNotCalledBy(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction AreNotCalledBy(IType firstType, params IType[] moreTypes) { _ruleCreator.ContinueComplexCondition( @@ -328,40 +210,6 @@ public TRuleTypeShouldConjunction AreNotCalledBy(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotHaveDependencyInMethodBodyTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.DoNotHaveDependencyInMethodBodyTo( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveDependencyInMethodBodyTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotHaveDependencyInMethodBodyTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.DoNotHaveDependencyInMethodBodyTo( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction DoNotHaveDependencyInMethodBodyTo( IType firstType, params IType[] moreTypes @@ -415,37 +263,6 @@ public TRuleTypeShouldConjunction DoNotHaveDependencyInMethodBodyTo(IEnumerable< return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotHaveReturnType( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.DoNotHaveReturnType(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveReturnType(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotHaveReturnType( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MethodMemberPredicatesDefinition.DoNotHaveReturnType( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction DoNotHaveReturnType( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/ShouldRelateToMembersThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/ShouldRelateToMembersThat.cs index ab3673602..0d9e82fe5 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/ShouldRelateToMembersThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/ShouldRelateToMembersThat.cs @@ -15,40 +15,6 @@ public class ShouldRelateToMembersThat ruleCreator) : base(ruleCreator) { } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MemberPredicatesDefinition.AreDeclaredIn( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MemberPredicatesDefinition.AreDeclaredIn( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction AreDeclaredIn(IType firstType, params IType[] moreTypes) { _ruleCreator.ContinueComplexCondition( @@ -115,40 +81,6 @@ public TRuleTypeShouldConjunction AreImmutable() //Negations - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNotDeclaredIn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MemberPredicatesDefinition.AreNotDeclaredIn( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotDeclaredIn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNotDeclaredIn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - MemberPredicatesDefinition.AreNotDeclaredIn( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction AreNotDeclaredIn( IType firstType, params IType[] moreTypes diff --git a/ArchUnitNET/Fluent/Syntax/Elements/ObjectConditionsDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/ObjectConditionsDefinition.cs index 3ee509962..b4e7f928b 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/ObjectConditionsDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/ObjectConditionsDefinition.cs @@ -2,16 +2,16 @@ using System.Collections.Generic; using System.Linq; using ArchUnitNET.Domain; -using ArchUnitNET.Domain.Exceptions; using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Fluent.Conditions; using JetBrains.Annotations; +using static ArchUnitNET.Domain.Extensions.EnumerableExtensions; using static ArchUnitNET.Domain.Visibility; using Attribute = ArchUnitNET.Domain.Attribute; namespace ArchUnitNET.Fluent.Syntax.Elements { - public static class ObjectConditionsDefinition + internal static class ObjectConditionsDefinition where TRuleType : ICanBeAnalyzed { public static ICondition Exist() @@ -19,77 +19,6 @@ public static ICondition Exist() return new ExistsCondition(true); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Be(Types().That().HaveFullName()) instead" - )] - public static ICondition Be(string pattern, bool useRegularExpressions = false) - { - return new SimpleCondition( - obj => obj.FullNameMatches(pattern, useRegularExpressions), - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Be(Types().That().HaveFullName()) instead" - )] - public static ICondition Be( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "not exist"; - failDescription = "does exist"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition( - obj => - patternList.Any(pattern => obj.FullNameMatches(pattern, useRegularExpressions)), - description, - failDescription - ); - } - public static ICondition Be(IObjectProvider objectProvider) { var sizedObjectProvider = objectProvider as ISizedObjectProvider; @@ -98,109 +27,29 @@ IEnumerable Condition( Architecture architecture ) { - var objectList = objectProvider.GetObjects(architecture).ToList(); - var typeList = ruleTypes.ToList(); - var passedObjects = objectList.OfType().Intersect(typeList).ToList(); - foreach (var failedObject in typeList.Except(passedObjects)) - { - yield return new ConditionResult( - failedObject, - false, - (sizedObjectProvider != null && sizedObjectProvider.Count == 0) - ? "does exist" - : "is not " + objectProvider.Description - ); - } - - foreach (var passedObject in passedObjects) + var isAllowedObject = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - yield return new ConditionResult(passedObject, true); + if (isAllowedObject(ruleType)) + { + yield return new ConditionResult(ruleType, true); + } + else + { + yield return new ConditionResult( + ruleType, + false, + (sizedObjectProvider != null && sizedObjectProvider.Count == 0) + ? "does exist" + : "is not " + objectProvider.Description + ); + } } } - - return new ArchitectureCondition( - Condition, - (sizedObjectProvider != null && sizedObjectProvider.Count == 0) - ? "not exist" - : "be " + objectProvider.Description - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static ICondition CallAny( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - obj => obj.CallsMethod(pattern, useRegularExpressions), - "calls any method with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not call any method with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static ICondition CallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) - { - return patternList.Any(pattern => - ruleType.CallsMethod(pattern, useRegularExpressions) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "call one of no methods (impossible)"; - failDescription = "does not call one of no methods (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "calls any method with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does not call any methods with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); + var description = objectProvider.FormatDescription("not exist", "be", "be"); + return new OrderedArchitectureCondition(Condition, description); } public static ICondition CallAny(IObjectProvider objectProvider) @@ -210,117 +59,36 @@ IEnumerable Condition( Architecture architecture ) { - var methodList = objectProvider.GetObjects(architecture).ToList(); - var typeList = ruleTypes.ToList(); - var passedObjects = typeList - .Where(type => type.GetCalledMethods().Intersect(methodList).Any()) - .ToList(); - foreach (var failedObject in typeList.Except(passedObjects)) + var isRequiredMethod = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - var dynamicFailDescription = "does call"; - var first = true; - foreach (var method in failedObject.GetCalledMethods().Except(methodList)) + if (ruleType.GetCalledMethods().Any(isRequiredMethod)) { - dynamicFailDescription += first - ? " " + method.FullName - : " and " + method.FullName; - first = false; + yield return new ConditionResult(ruleType, true); + } + else + { + var calledMethods = ruleType.GetCalledMethods().ToList(); + var dynamicFailDescription = + calledMethods.Count == 0 + ? "does not call any methods" + : "only calls " + + string.Join( + " and ", + calledMethods.Select(method => $"\"{method.FullName}\"") + ); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - foreach (var passedObject in passedObjects) - { - yield return new ConditionResult(passedObject, true); } } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "call any of no methods (impossible)" - : "call any " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public static ICondition DependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - obj => obj.DependsOn(pattern, useRegularExpressions), - "depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not depend on any type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public static ICondition DependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - bool Condition(TRuleType ruleType, Architecture architecture) - { - return !ruleType.GetTypeDependencies(architecture).IsNullOrEmpty() - && ruleType - .GetTypeDependencies(architecture) - .Any(target => - patternList.Any(pattern => - target.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "depend on one of no types (impossible)"; - failDescription = "does not depend on no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does not depend any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new ArchitectureCondition(Condition, description, failDescription); + var description = objectProvider.FormatDescription( + "call any of no methods (impossible)", + "call", + "call any" + ); + return new OrderedArchitectureCondition(Condition, description); } public static ICondition DependOnAny(IObjectProvider objectProvider) @@ -330,37 +98,36 @@ IEnumerable Condition( Architecture architecture ) { - var typeList = objectProvider.GetObjects(architecture).ToList(); - var ruleTypeList = ruleTypes.ToList(); - var passedObjects = ruleTypeList - .Where(type => type.GetTypeDependencies().Intersect(typeList).Any()) - .ToList(); - foreach (var failedObject in ruleTypeList.Except(passedObjects)) + var isRequiredDependency = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - var dynamicFailDescription = "does depend on"; - var first = true; - foreach (var type in failedObject.GetTypeDependencies().Except(typeList)) + if (ruleType.GetTypeDependencies().Any(isRequiredDependency)) { - dynamicFailDescription += first - ? " " + type.FullName - : " and " + type.FullName; - first = false; + yield return new ConditionResult(ruleType, true); + } + else + { + var dependants = ruleType.GetTypeDependencies(architecture).ToList(); + var dynamicFailDescription = + dependants.Count == 0 + ? "does not depend on any type" + : "only depends on " + + string.Join( + " and ", + dependants.Select(type => $"\"{type.FullName}\"") + ); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - - foreach (var passedObject in passedObjects) - { - yield return new ConditionResult(passedObject, true); } } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "depend on any of no types (impossible)" - : "depend on any " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); + var description = objectProvider.FormatDescription( + "depend on any of no types (impossible)", + "depend on", + "depend on any" + ); + return new OrderedArchitectureCondition(Condition, description); } public static ICondition FollowCustomCondition( @@ -380,1284 +147,509 @@ string failDescription return new SimpleCondition(condition, description, failDescription); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public static ICondition OnlyDependOn( - string pattern, - bool useRegularExpressions = false - ) + public static ICondition OnlyDependOn(IObjectProvider objectProvider) { - ConditionResult Condition(TRuleType ruleType) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - var pass = true; - var dynamicFailDescription = "does depend on"; - foreach (var dependency in ruleType.GetTypeDependencies()) + var isAllowedDependency = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - if (!dependency.FullNameMatches(pattern, useRegularExpressions)) + if (ruleType.GetTypeDependencies(architecture).All(isAllowedDependency)) + { + yield return new ConditionResult(ruleType, true); + } + else { - dynamicFailDescription += pass - ? " " + dependency.FullName - : " and " + dependency.FullName; - pass = false; + var dynamicFailDescription = + "does depend on " + + string.Join( + " and ", + ruleType + .GetTypeDependencies() + .Where(t => !isAllowedDependency(t)) + .Distinct() + .Select(t => t.FullName) + ); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); } - - return new SimpleCondition( - Condition, - "only depend on types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + var description = objectProvider.FormatDescription( + "have no dependencies", + "only depend on", + "only depend on" ); + return new OrderedArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public static ICondition OnlyDependOn( - IEnumerable patterns, - bool useRegularExpressions = false + public static ICondition HaveAnyAttributes( + IObjectProvider objectProvider ) { - var patternList = patterns.ToList(); - - ConditionResult Condition(TRuleType ruleType) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - var pass = true; - var dynamicFailDescription = "does depend on"; - foreach (var dependency in ruleType.GetTypeDependencies()) + var isRequiredAttribute = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - if ( - !patternList.Any(pattern => - dependency.FullNameMatches(pattern, useRegularExpressions) - ) - ) + if (ruleType.Attributes.Any(isRequiredAttribute)) + { + yield return new ConditionResult(ruleType, true); + } + else { - dynamicFailDescription += pass - ? " " + dependency.FullName - : " and " + dependency.FullName; - pass = false; + var attributes = ruleType.Attributes.ToList(); + var dynamicFailDescription = + attributes.Count == 0 + ? "does not have any attributes" + : "only has attributes " + + string.Join( + " and ", + attributes.Select(attribute => $"\"{attribute.FullName}\"") + ); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "only depend on types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); } - - return new SimpleCondition(Condition, description); + var description = objectProvider.FormatDescription( + "have any of no attributes (impossible)", + "have", + "have any" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition OnlyDependOn(IObjectProvider objectProvider) + public static ICondition OnlyHaveAttributes( + IObjectProvider objectProvider + ) { IEnumerable Condition( IEnumerable ruleTypes, Architecture architecture ) { - var typeList = objectProvider.GetObjects(architecture).ToList(); - var ruleTypeList = ruleTypes.ToList(); - var failedObjects = ruleTypeList - .Where(type => type.GetTypeDependencies(architecture).Except(typeList).Any()) - .ToList(); - foreach (var failedObject in failedObjects) + var isAllowedAttribute = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - var dynamicFailDescription = "does depend on"; - var first = true; - foreach (var type in failedObject.GetTypeDependencies().Except(typeList)) + if (ruleType.Attributes.All(isAllowedAttribute)) { - dynamicFailDescription += first - ? " " + type.FullName - : " and " + type.FullName; - first = false; + yield return new ConditionResult(ruleType, true); + } + else + { + var dynamicFailDescription = + "does have attribute " + + string.Join( + " and ", + ruleType + .Attributes.Where(attr => !isAllowedAttribute(attr)) + .Select(a => a.FullName) + ); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - - foreach (var passedObject in ruleTypeList.Except(failedObjects)) - { - yield return new ConditionResult(passedObject, true); } } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "have no dependencies" - : "only depend on " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); + var description = objectProvider.FormatDescription( + "have no attributes", + "only have", + "only have any" + ); + return new OrderedArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public static ICondition HaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - obj => obj.HasAttribute(pattern, useRegularExpressions), - "have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public static ICondition HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false + public static ICondition HaveAnyAttributesWithArguments( + IEnumerable argumentValues ) { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - return ruleType.Attributes.Any(attribute => - patternList.Any(pattern => - attribute.FullNameMatches(pattern, useRegularExpressions) + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) + { + if ( + ruleType.AttributeInstances.Any(instance => + { + var instanceArgumentValues = instance + .GetAllAttributeArgumentValues() + .ToList(); + return resolvedArgumentValueList.All(instanceArgumentValues.Contains); + }) ) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "have one of no attributes (impossible)"; - failDescription = "does not have one of no attributes (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does not have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); + { + yield return new ConditionResult(ruleType, true); + } + else + { + var argumentsDescriptions = ruleType.AttributeInstances.Select(instance => + { + var argumentsDescription = instance + .GetAllAttributeArgumentValues() + .FormatDescription( + "without arguments", + "with argument", + "with arguments" + ); + return $"{instance.Type.FullName} {argumentsDescription}"; + }); + var failDescription = argumentsDescriptions.FormatDescription( + "does not have any attributes", + "does only have attribute", + "does only have attributes", + elementDescription: str => str + ); + yield return new ConditionResult(ruleType, false, failDescription); + } + } } - - return new SimpleCondition(Condition, description, failDescription); + var description = argumentValueList.FormatDescription( + "have any attributes", + "have any attributes with argument", + "have any attributes with arguments" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition HaveAnyAttributes( - IObjectProvider objectProvider + public static ICondition HaveAttributeWithArguments( + string attributeFullName, + [NotNull] Func getAttribute, + [NotNull] IEnumerable argumentValues ) { - var sizedObjectProvider = objectProvider as ISizedObjectProvider; + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); IEnumerable Condition( IEnumerable ruleTypes, Architecture architecture ) { - var attributeList = objectProvider.GetObjects(architecture).ToList(); - var ruleTypeList = ruleTypes.ToList(); - var passedObjects = ruleTypeList - .Where(type => type.Attributes.Intersect(attributeList).Any()) + var resolvedAttribute = getAttribute(architecture); + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) .ToList(); - foreach (var failedObject in ruleTypeList.Except(passedObjects)) - { - yield return new ConditionResult( - failedObject, - false, - (sizedObjectProvider != null && sizedObjectProvider.Count == 0) - ? "does not have any of no attributes (always true)" - : "does not have any " + objectProvider.Description - ); - } - - foreach (var passedObject in passedObjects) + foreach (var ruleType in ruleTypes) { - yield return new ConditionResult(passedObject, true); + var matchingAttributeInstances = ruleType + .AttributeInstances.Where(instance => + instance.Type.Equals(resolvedAttribute) + ) + .ToList(); + if ( + matchingAttributeInstances.Any(instance => + { + var instanceArgumentValues = instance + .GetAllAttributeArgumentValues() + .ToList(); + return resolvedArgumentValueList.All(instanceArgumentValues.Contains); + }) + ) + { + yield return new ConditionResult(ruleType, true); + } + else + { + var argumentsDescriptions = matchingAttributeInstances.Select(instance => + instance + .GetAllAttributeArgumentValues() + .FormatDescription( + "without arguments", + "with argument", + "with arguments" + ) + ); + var failDescription = argumentsDescriptions.FormatDescription( + $"does not have attribute \"{resolvedAttribute.FullName}\"", + $"does only have attribute \"{resolvedAttribute.FullName}\"", + $"does only have attribute \"{resolvedAttribute.FullName}\"", + elementDescription: str => str + ); + yield return new ConditionResult(ruleType, false, failDescription); + } } } - - var description = - (sizedObjectProvider != null && sizedObjectProvider.Count == 0) - ? "have one of no attributes (impossible)" - : "have any " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); + var description = argumentValueList.FormatDescription( + $"have attribute \"{attributeFullName}\"", + $"have attribute \"{attributeFullName}\" with argument", + $"have attribute \"{attributeFullName}\" with arguments" + ); + return new OrderedArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public static ICondition OnlyHaveAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - obj => obj.OnlyHasAttributes(pattern, useRegularExpressions), - "only have attributes with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not only have attributes with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public static ICondition OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false + public static ICondition HaveAnyAttributesWithNamedArguments( + IEnumerable<(string, object)> namedArguments ) { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) - { - return ruleType.Attributes.IsNullOrEmpty() - || ruleType.Attributes.All(attribute => - patternList.Any(pattern => - attribute.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "have no attributes"; - failDescription = "does have attributes"; - } - else + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "only have attributes with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " and \"" + pattern + "\"" - ); - failDescription = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does not only have attributes with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) + { + if ( + ruleType.AttributeInstances.Any(instance => + { + var attArguments = instance + .GetAllNamedAttributeArgumentTuples() + .ToList(); + return resolvedNamedArgumentList.All(attArguments.Contains); + }) + ) + { + yield return new ConditionResult(ruleType, true); + } + else + { + var argumentsDescriptions = ruleType.AttributeInstances.Select(instance => + { + var argumentsDescription = ruleType + .GetAllNamedAttributeArgumentTuples(instance.Type) + .FormatDescription( + "without named arguments", + "with named argument", + "with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return $"{instance.Type.FullName} {argumentsDescription}"; + }); + var failDescription = argumentsDescriptions.FormatDescription( + "does not have any attribute", + "does only have attribute", + "does only have attributes", + elementDescription: str => str + ); + yield return new ConditionResult(ruleType, false, failDescription); + } + } } - - return new SimpleCondition(Condition, description, failDescription); + var description = namedArgumentList.FormatDescription( + "have any attributes", + "have any attributes with named argument", + "have any attributes with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition OnlyHaveAttributes( - IObjectProvider objectProvider + public static ICondition HaveAttributeWithNamedArguments( + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable<(string, object)> namedArguments ) { + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); IEnumerable Condition( IEnumerable ruleTypes, Architecture architecture ) { - var attributeList = objectProvider.GetObjects(architecture).ToList(); - var ruleTypeList = ruleTypes.ToList(); - var failedObjects = ruleTypeList - .Where(type => type.Attributes.Except(attributeList).Any()) + var resolvedAttribute = getAttribute(architecture); + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) .ToList(); - foreach (var failedObject in failedObjects) + foreach (var ruleType in ruleTypes) { - var dynamicFailDescription = "does have attribute"; - var first = true; - foreach (var attribute in failedObject.Attributes.Except(attributeList)) + var matchingAttributeInstances = ruleType + .AttributeInstances.Where(instance => + instance.Type.Equals(resolvedAttribute) + ) + .ToList(); + if ( + matchingAttributeInstances.Any(instance => + { + var attArguments = instance + .GetAllNamedAttributeArgumentTuples() + .ToList(); + return resolvedNamedArgumentList.All(attArguments.Contains); + }) + ) { - dynamicFailDescription += first - ? " " + attribute.FullName - : " and " + attribute.FullName; - first = false; + yield return new ConditionResult(ruleType, true); + } + else + { + var argumentsDescriptions = matchingAttributeInstances.Select(instance => + ruleType + .GetAllNamedAttributeArgumentTuples(instance.Type) + .FormatDescription( + "without named arguments", + "with named argument", + "with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ) + ); + var failDescription = argumentsDescriptions.FormatDescription( + $"does not have attribute \"{resolvedAttribute.FullName}\"", + $"does only have attribute \"{resolvedAttribute.FullName}\"", + $"does only have attribute \"{resolvedAttribute.FullName}\"", + elementDescription: str => str + ); + yield return new ConditionResult(ruleType, false, failDescription); } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - - foreach (var passedObject in ruleTypeList.Except(failedObjects)) - { - yield return new ConditionResult(passedObject, true); } } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "have no attributes" - : "does only have " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); + var description = namedArgumentList.FormatDescription( + $"have attribute \"{attributeFullName}\"", + $"have attribute \"{attributeFullName}\" with named argument", + $"have attribute \"{attributeFullName}\" with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static ICondition HaveName(string name) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAnyAttributesWithArguments(argumentValues); + return new SimpleCondition( + obj => obj.NameEquals(name), + obj => "does have name " + obj.Name, + $"have name \"{name}\"" + ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static ICondition HaveNameMatching(string pattern) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAttributeWithArguments(attribute, argumentValues); + return new SimpleCondition( + obj => obj.NameMatches(pattern), + obj => "does have name " + obj.Name, + $"have name matching \"{pattern}\"" + ); } - public static ICondition HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static ICondition HaveNameStartingWith(string pattern) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAttributeWithArguments(attribute, argumentValues); + return new SimpleCondition( + obj => obj.NameStartsWith(pattern), + obj => "does have name " + obj.Name, + "have name starting with \"" + pattern + "\"" + ); } - public static ICondition HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static ICondition HaveNameEndingWith(string pattern) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAttributeWithArguments(attribute, argumentValues); + return new SimpleCondition( + obj => obj.NameEndsWith(pattern), + obj => "does have name " + obj.Name, + "have name ending with \"" + pattern + "\"" + ); } - public static ICondition HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAnyAttributesWithNamedArguments(attributeArguments); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static ICondition HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static ICondition HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static ICondition HaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - string description; - Func failDescription; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have no or any attributes with arguments (always true)"; - failDescription = (ruleType, architecture) => - "not have no or any attributes with arguments (impossible)"; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "have any attributes with arguments \"" + firstArgument + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - - failDescription = (ruleType, architecture) => - { - var actualArgumentValues = ruleType - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.Select(argument => argument.Value) - ) - .ToList(); - if (!actualArgumentValues.Any()) - { - return "does have no attribute with an argument"; - } - - var firstActualArgumentValue = actualArgumentValues.First(); - return actualArgumentValues.Aggregate( - "does have attributes with argument values \"" - + firstActualArgumentValue - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - }; - } - - bool Condition(TRuleType obj, Architecture architecture) - { - var attributeArguments = obj - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.Select(arg => arg.Value) - ) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - return false; - } - } - else if (!attributeArguments.Contains(arg)) - { - return false; - } - } - - return true; - } - - return new ArchitectureCondition(Condition, failDescription, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition HaveAttributeWithArguments( - [NotNull] string attribute, - IEnumerable argumentValues - ) - { - string description, - failDescription; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute + "\""; - failDescription = "does not have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - failDescription = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "does not have attribute \"" - + attribute - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.FullNameMatches(attribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitectureCondition(Condition, description, failDescription); - } - - public static ICondition HaveAttributeWithArguments( - [NotNull] Attribute attribute, - IEnumerable argumentValues - ) - { - string description, - failDescription; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - failDescription = "does not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - failDescription = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "does not have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(attribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitectureCondition(Condition, description, failDescription); - } - - public static ICondition HaveAttributeWithArguments( - [NotNull] Type attribute, - IEnumerable argumentValues - ) - { - string description, - failDescription; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - failDescription = "does not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - failDescription = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "does not have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) - { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return false; - } - - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(archUnitAttribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitectureCondition(Condition, description, failDescription); - } - - public static ICondition HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - var argumentList = attributeArguments.ToList(); - string description; - Func failDescription; - if (argumentList.IsNullOrEmpty()) - { - description = "have no or any attributes with named arguments (always true)"; - failDescription = (ruleType, architecture) => - "not have no or any attributes with named arguments (impossible)"; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "have any attributes with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - - failDescription = (ruleType, architecture) => - { - var actualNamedArguments = ruleType - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.OfType() - ) - .ToList(); - if (!actualNamedArguments.Any()) - { - return "does have no attribute with a named argument"; - } - - var firstActualNamedArgument = actualNamedArguments.First(); - return actualNamedArguments.Aggregate( - "does have attributes with named arguments \"" - + firstActualNamedArgument.Name - + "=" - + firstActualNamedArgument.Value - + "\"", - (current, arg) => current + " and \"" + arg.Name + "=" + arg.Value + "\"" - ); - }; - } - - bool Condition(TRuleType obj, Architecture architecture) - { - var attArguments = obj - .AttributeInstances.SelectMany(instance => - instance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - ) - .ToList(); - var typeAttributeArguments = attArguments - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - return false; - } - } - else if (!attArguments.Contains(arg)) - { - return false; - } - } - - return true; - } - - return new ArchitectureCondition(Condition, failDescription, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition HaveAttributeWithNamedArguments( - [NotNull] string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - string description, - failDescription; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute + "\""; - failDescription = "does not have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - failDescription = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "does not have attribute \"" - + attribute - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.FullNameMatches(attribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitectureCondition(Condition, description, failDescription); - } - - public static ICondition HaveAttributeWithNamedArguments( - [NotNull] Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - string description, - failDescription; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - failDescription = "does not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - failDescription = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "does not have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(attribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitectureCondition(Condition, description, failDescription); - } - - public static ICondition HaveAttributeWithNamedArguments( - [NotNull] Type attribute, - IEnumerable<(string, object)> attributeArguments - ) + public static ICondition HaveNameContaining(string pattern) { - string description, - failDescription; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - failDescription = "does not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - failDescription = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "does not have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) - { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return false; - } - - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(archUnitAttribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitectureCondition(Condition, description, failDescription); + return new SimpleCondition( + obj => obj.NameContains(pattern), + obj => "does have name " + obj.Name, + "have name containing \"" + pattern + "\"" + ); } - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - public static ICondition HaveName(string pattern, bool useRegularExpressions) + public static ICondition HaveFullName(string name) { return new SimpleCondition( - obj => obj.NameMatches(pattern, useRegularExpressions), - obj => "does have name " + obj.Name, - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + obj => obj.FullNameEquals(name), + obj => "does have full name " + obj.FullName, + "have full name \"" + name + "\"" ); } - public static ICondition HaveName(string name) + public static ICondition HaveFullNameMatching(string pattern) { return new SimpleCondition( - obj => obj.NameEquals(name), - obj => "does have name " + obj.Name, - $"have name \"{name}\"" + obj => obj.FullNameMatches(pattern), + obj => "does have full name " + obj.FullName, + "have full name matching \"" + pattern + "\"" ); } - public static ICondition HaveNameMatching(string pattern) + public static ICondition HaveFullNameStartingWith(string pattern) { return new SimpleCondition( - obj => obj.NameMatches(pattern), - obj => "does have name " + obj.Name, - $"have name matching \"{pattern}\"" + obj => obj.FullNameStartsWith(pattern), + obj => "does have full name " + obj.FullName, + "have full name starting with \"" + pattern + "\"" ); } - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - public static ICondition HaveFullName(string pattern, bool useRegularExpressions) + public static ICondition HaveFullNameEndingWith(string pattern) { return new SimpleCondition( - obj => obj.FullNameMatches(pattern, useRegularExpressions), + obj => obj.FullNameEndsWith(pattern), obj => "does have full name " + obj.FullName, - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + "have full name ending with \"" + pattern + "\"" ); } - public static ICondition HaveFullName(string name) + public static ICondition HaveFullNameContaining(string pattern) { return new SimpleCondition( - obj => obj.FullNameEquals(name), + obj => obj.FullNameContains(pattern), obj => "does have full name " + obj.FullName, - "have full name \"" + name + "\"" + "have full name containing \"" + pattern + "\"" ); } - public static ICondition HaveFullNameMatching(string pattern) + public static ICondition HaveAssemblyQualifiedName(string assemblyQualifiedName) { return new SimpleCondition( - obj => obj.FullNameMatches(pattern), - obj => "does have full name " + obj.FullName, - "have full name matching \"" + pattern + "\"" + obj => obj.AssemblyQualifiedNameEquals(assemblyQualifiedName), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "have assembly qualified name \"" + assemblyQualifiedName + "\"" ); } - public static ICondition HaveNameStartingWith(string pattern) + public static ICondition HaveAssemblyQualifiedNameMatching(string pattern) { return new SimpleCondition( - obj => obj.NameStartsWith(pattern), - obj => "does have name " + obj.Name, - "have name starting with \"" + pattern + "\"" + obj => obj.AssemblyQualifiedNameMatches(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "have assembly qualified name matching \"" + pattern + "\"" ); } - public static ICondition HaveNameEndingWith(string pattern) + public static ICondition HaveAssemblyQualifiedNameStartingWith(string pattern) { return new SimpleCondition( - obj => obj.NameEndsWith(pattern), - obj => "does have name " + obj.Name, - "have name ending with \"" + pattern + "\"" + obj => obj.AssemblyQualifiedNameStartsWith(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "have assembly qualified name starting with \"" + pattern + "\"" ); } - public static ICondition HaveNameContaining(string pattern) + public static ICondition HaveAssemblyQualifiedNameEndingWith(string pattern) { return new SimpleCondition( - obj => obj.NameContains(pattern), - obj => "does have name " + obj.Name, - "have name containing \"" + pattern + "\"" + obj => obj.AssemblyQualifiedNameEndsWith(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "have assembly qualified name ending with \"" + pattern + "\"" ); } - public static ICondition HaveFullNameContaining(string pattern) + public static ICondition HaveAssemblyQualifiedNameContaining(string pattern) { return new SimpleCondition( - obj => obj.FullNameContains(pattern), - obj => "does have full name " + obj.FullName, - "have full name containing \"" + pattern + "\"" + obj => obj.AssemblyQualifiedNameContains(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "have assembly qualified name containing \"" + pattern + "\"" ); } @@ -1760,1304 +752,372 @@ public static ICondition NotExist() return new ExistsCondition(false); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBe(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBe( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - obj => !obj.FullNameMatches(pattern, useRegularExpressions), - obj => "is " + obj.FullName, - "not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBe(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBe( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - string description; - if (patternList.IsNullOrEmpty()) - { - description = "exist"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition( - obj => - patternList.All(pattern => - !obj.FullNameMatches(pattern, useRegularExpressions) - ), - obj => "is " + obj.FullName, - description - ); - } - public static ICondition NotBe(IObjectProvider objectProvider) { IEnumerable Condition( IEnumerable ruleTypes, Architecture architecture ) - { - var objectList = objectProvider.GetObjects(architecture).ToList(); - var typeList = ruleTypes.ToList(); - var failedObjects = objectList.OfType().Intersect(typeList).ToList(); - foreach (var failedObject in failedObjects) - { - yield return new ConditionResult( - failedObject, - false, - "is " + objectProvider.Description - ); - } - - foreach (var passedObject in typeList.Except(failedObjects)) - { - yield return new ConditionResult(passedObject, true); - } - } - - return new ArchitectureCondition( - Condition, - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "exist" - : "not be " + objectProvider.Description - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static ICondition NotCallAny( - string pattern, - bool useRegularExpressions = false - ) - { - ConditionResult Condition(TRuleType ruleType) - { - var pass = true; - var dynamicFailDescription = "does call"; - foreach (var dependency in ruleType.GetCalledMethods()) - { - if (dependency.FullNameMatches(pattern, useRegularExpressions)) - { - dynamicFailDescription += pass - ? " " + dependency.FullName - : " and " + dependency.FullName; - pass = false; - } - } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - return new SimpleCondition( - Condition, - "not call any method with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static ICondition NotCallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - ConditionResult Condition(TRuleType ruleType) - { - var pass = true; - var dynamicFailDescription = "does call"; - foreach (var dependency in ruleType.GetCalledMethods()) - { - if ( - patternList.Any(pattern => - dependency.FullNameMatches(pattern, useRegularExpressions) - ) - ) - { - dynamicFailDescription += pass - ? " " + dependency.FullName - : " and " + dependency.FullName; - pass = false; - } - } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "not call no methods (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not call methods with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description); - } - - public static ICondition NotCallAny(IObjectProvider objectProvider) - { - IEnumerable Condition( - IEnumerable ruleTypes, - Architecture architecture - ) - { - var methodList = objectProvider.GetObjects(architecture).ToList(); - var typeList = ruleTypes.ToList(); - var failedObjects = typeList - .Where(type => type.GetCalledMethods().Intersect(methodList).Any()) - .ToList(); - foreach (var failedObject in failedObjects) - { - var dynamicFailDescription = "does call"; - var first = true; - foreach (var method in failedObject.GetCalledMethods().Intersect(methodList)) - { - dynamicFailDescription += first - ? " " + method.FullName - : " and " + method.FullName; - first = false; - } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - - foreach (var passedObject in typeList.Except(failedObjects)) - { - yield return new ConditionResult(passedObject, true); - } - } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "not call any of no methods (always true)" - : "not call any " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotDependOnAny(Types().That().HaveFullName()) instead" - )] - public static ICondition NotDependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - ConditionResult Condition(TRuleType ruleType) - { - var pass = true; - var dynamicFailDescription = "does depend on"; - foreach (var dependency in ruleType.GetTypeDependencies()) - { - if (dependency.FullNameMatches(pattern, useRegularExpressions)) - { - dynamicFailDescription += pass - ? " " + dependency.FullName - : " and " + dependency.FullName; - pass = false; - } - } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - return new SimpleCondition( - Condition, - "not depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotDependOnAny(Types().That().HaveFullName()) instead" - )] - public static ICondition NotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - ConditionResult Condition(TRuleType ruleType) - { - var pass = true; - var dynamicFailDescription = "does depend on"; - foreach (var dependency in ruleType.GetTypeDependencies()) - { - if ( - patternList.Any(pattern => - dependency.FullNameMatches(pattern, useRegularExpressions) - ) - ) - { - dynamicFailDescription += pass - ? " " + dependency.FullName - : " and " + dependency.FullName; - pass = false; - } - } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "not depend on no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not depend on types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description); - } - - public static ICondition NotDependOnAny(IObjectProvider objectProvider) - { - IEnumerable Condition( - IEnumerable ruleTypes, - Architecture architecture - ) - { - var typeList = objectProvider.GetObjects(architecture).ToList(); - var ruleTypeList = ruleTypes.ToList(); - var failedObjects = ruleTypeList - .Where(type => type.GetTypeDependencies().Intersect(typeList).Any()) - .ToList(); - foreach (var failedObject in failedObjects) - { - var dynamicFailDescription = "does depend on"; - var first = true; - foreach (var type in failedObject.GetTypeDependencies().Intersect(typeList)) - { - dynamicFailDescription += first - ? " " + type.FullName - : " and " + type.FullName; - first = false; - } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - - foreach (var passedObject in ruleTypeList.Except(failedObjects)) - { - yield return new ConditionResult(passedObject, true); - } - } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "not depend on any of no types (always true)" - : "not depend on any " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotHaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - obj => !obj.HasAttribute(pattern, useRegularExpressions), - "not have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) - { - return !ruleType.Attributes.Any(attribute => - patternList.Any(pattern => - attribute.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "not have one of no attributes (always true)"; - failDescription = "does have one of no attributes (impossible)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "does have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - - public static ICondition NotHaveAnyAttributes( - IObjectProvider objectProvider - ) - { - IEnumerable Condition( - IEnumerable ruleTypes, - Architecture architecture - ) - { - var attributeList = objectProvider.GetObjects(architecture).ToList(); - var ruleTypeList = ruleTypes.ToList(); - var failedObjects = ruleTypeList - .Where(type => type.Attributes.Intersect(attributeList).Any()) - .ToList(); - foreach (var failedObject in failedObjects) - { - var dynamicFailDescription = "does have attribute"; - var first = true; - foreach (var attribute in failedObject.Attributes.Intersect(attributeList)) - { - dynamicFailDescription += first - ? " " + attribute.FullName - : " and " + attribute.FullName; - first = false; - } - - yield return new ConditionResult(failedObject, false, dynamicFailDescription); - } - - foreach (var passedObject in ruleTypeList.Except(failedObjects)) - { - yield return new ConditionResult(passedObject, true); - } - } - - var description = - (objectProvider as ISizedObjectProvider)?.Count == 0 - ? "not have any of no attributes (always true)" - : "not have any " + objectProvider.Description; - return new ArchitectureCondition(Condition, description); - } - - public static ICondition NotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return NotHaveAnyAttributesWithArguments(argumentValues); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotHaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return NotHaveAttributeWithArguments(attribute, argumentValues); - } - - public static ICondition NotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return NotHaveAttributeWithArguments(attribute, argumentValues); - } - - public static ICondition NotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return NotHaveAttributeWithArguments(attribute, argumentValues); - } - - public static ICondition NotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return NotHaveAnyAttributesWithNamedArguments(attributeArguments); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotHaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return NotHaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static ICondition NotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return NotHaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static ICondition NotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return NotHaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static ICondition NotHaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - string description; - Func failDescription; - if (argumentValueList.IsNullOrEmpty()) - { - description = "not have no or any attributes with arguments (impossible)"; - failDescription = (ruleType, architecture) => - "have no or any attributes with arguments (always)"; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "not have any attributes with arguments \"" + firstArgument + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - - failDescription = (ruleType, architecture) => - { - var actualArgumentValues = ruleType - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.Select(argument => argument.Value) - ) - .ToList(); - if (!actualArgumentValues.Any()) - { - return "does have no attribute with an argument"; - } - - var firstActualArgumentValue = actualArgumentValues.First(); - return actualArgumentValues.Aggregate( - "does have attributes with argument values \"" - + firstActualArgumentValue - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - }; - } - - bool Condition(TRuleType obj, Architecture architecture) - { - var attributeArguments = obj - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.Select(arg => arg.Value) - ) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) + { + var objects = objectProvider.GetObjects(architecture).ToList(); + var isForbiddenObject = CreateLookupFn(objects); + foreach (var ruleType in ruleTypes) { - if (arg is Type argType) + if (!isForbiddenObject(ruleType)) { - if (typeAttributeArguments.Any(t => t.FullName == argType.FullName)) - { - return false; - } + yield return new ConditionResult(ruleType, true); } - else if (attributeArguments.Contains(arg)) + else { - return false; + yield return new ConditionResult( + ruleType, + false, + objects.Count == 0 ? "does exist" : "is " + objectProvider.Description + ); } } - - return true; } - - return new ArchitectureCondition(Condition, failDescription, description); + var description = objectProvider.FormatDescription( + "not be any of no objects (always true)", + "not be", + "not be" + ); + return new OrderedArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotHaveAttributeWithArguments( - [NotNull] string attribute, - IEnumerable argumentValues - ) + public static ICondition NotCallAny(IObjectProvider objectProvider) { - string description, - failDescription; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "not have attribute \"" + attribute + "\""; - failDescription = "does have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "not have attribute \"" - + attribute - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - failDescription = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "does have attribute \"" - + attribute - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - foreach (var attributeInstance in obj.AttributeInstances) + var isForbiddenMethod = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.FullNameMatches(attribute)) + if (!ruleType.GetCalledMethods().Any(isForbiddenMethod)) { - goto NextAttribute; + yield return new ConditionResult(ruleType, true); } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) + else { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } + var calledMethods = ruleType + .GetCalledMethods() + .Where(isForbiddenMethod) + .Select(method => $"\"{method.FullName}\""); + var dynamicFailDescription = + "does call " + string.Join(" and ", calledMethods); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } - - return false; - NextAttribute: - ; } - - return true; } - - return new ArchitectureCondition(Condition, description, failDescription); + var description = objectProvider.FormatDescription( + "not call any of no methods (always true)", + "not call", + "not call any" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition NotHaveAttributeWithArguments( - [NotNull] Attribute attribute, - IEnumerable argumentValues - ) + public static ICondition NotDependOnAny(IObjectProvider objectProvider) { - string description, - failDescription; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "not have attribute \"" + attribute.FullName + "\""; - failDescription = "does have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "not have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - failDescription = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "does have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - foreach (var attributeInstance in obj.AttributeInstances) + var isForbiddenDependency = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.Equals(attribute)) + if (!ruleType.GetTypeDependencies().Any(isForbiddenDependency)) { - goto NextAttribute; + yield return new ConditionResult(ruleType, true); } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) + else { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } + var dependants = ruleType + .GetTypeDependencies() + .Where(isForbiddenDependency) + .Distinct() + .Select(type => $"\"{type.FullName}\""); + var dynamicFailDescription = + "does depend on " + string.Join(" and ", dependants); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } - - return false; - NextAttribute: - ; } - - return true; } - - return new ArchitectureCondition(Condition, failDescription, description); + var description = objectProvider.FormatDescription( + "not depend on any of no types (always true)", + "not depend on", + "not depend on any" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition NotHaveAttributeWithArguments( - [NotNull] Type attribute, - IEnumerable argumentValues + public static ICondition NotHaveAnyAttributes( + IObjectProvider objectProvider ) { - string description, - failDescription; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "not have attribute \"" + attribute.FullName + "\""; - failDescription = "does have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "not have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - failDescription = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "does have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return true; - } - - foreach (var attributeInstance in obj.AttributeInstances) + var isForbiddenAttribute = CreateLookupFn( + objectProvider.GetObjects(architecture).ToList() + ); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.Equals(archUnitAttribute)) + if (!ruleType.Attributes.Any(isForbiddenAttribute)) { - goto NextAttribute; + yield return new ConditionResult(ruleType, true); } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) + else { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } + var attributes = ruleType.Attributes.Where(isForbiddenAttribute).ToList(); + var dynamicFailDescription = + "does have attribute " + + string.Join( + " and ", + attributes.Select(attribute => attribute.FullName) + ); + yield return new ConditionResult(ruleType, false, dynamicFailDescription); } - - return false; - NextAttribute: - ; } - - return true; } - - return new ArchitectureCondition(Condition, failDescription, description); + var description = objectProvider.FormatDescription( + "not have any of no attributes (always true)", + "not have", + "not have any" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition NotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments + public static ICondition NotHaveAnyAttributesWithArguments( + IEnumerable argumentValues ) { - var argumentList = attributeArguments.ToList(); - string description; - Func failDescription; - if (argumentList.IsNullOrEmpty()) - { - description = "not have no or any attributes with named arguments (impossible)"; - failDescription = (ruleType, architecture) => - "have no or any attributes with named arguments (always true)"; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "not have any attributes with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - - failDescription = (ruleType, architecture) => - { - var actualNamedArguments = ruleType - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.OfType() - ) - .ToList(); - if (!actualNamedArguments.Any()) - { - return "does have no attribute with a named argument"; - } - - var firstActualNamedArgument = actualNamedArguments.First(); - return actualNamedArguments.Aggregate( - "does have attributes with named arguments \"" - + firstActualNamedArgument.Name - + "=" - + firstActualNamedArgument.Value - + "\"", - (current, arg) => current + " and \"" + arg.Name + "=" + arg.Value + "\"" - ); - }; - } + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); - bool Condition(TRuleType obj, Architecture architecture) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - var attArguments = obj - .AttributeInstances.SelectMany(instance => - instance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - ) + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) .ToList(); - var typeAttributeArguments = attArguments - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) + foreach (var ruleType in ruleTypes) { - if (arg.Item2 is Type argType) + var attArguments = ruleType.GetAllAttributeArgumentValues().ToList(); + if (!resolvedArgumentValueList.Any(attArguments.Contains)) { - if ( - typeAttributeArguments.Any(t => - t.Name == arg.Item1 - && ( - t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName == argType.FullName - || t.Value is IType type && type.FullName == argType.FullName - ) - ) - ) - { - return false; - } + yield return new ConditionResult(ruleType, true); } - else if (attArguments.Contains(arg)) + else { - return false; + var failedAttributesAndArguments = ruleType + .AttributeInstances.Select(instance => + { + var attributeArguments = ruleType + .GetAllAttributeArgumentValues(instance.Type) + .ToList(); + var failedArguments = resolvedArgumentValueList + .Where(attributeArguments.Contains) + .ToList(); + return (instance, failedArguments); + }) + .Where(t => t.failedArguments.Any()) + .ToList(); + var argumentDescriptions = failedAttributesAndArguments.Select(t => + { + var withArguments = + t.failedArguments.Count == 1 ? "with argument" : "with arguments"; + var arguments = t.failedArguments.Select(arg => $"\"{arg}\""); + var argumentsDescription = string.Join(" and ", arguments); + return $"attribute {t.instance.Type.FullName} {withArguments} {argumentsDescription}"; + }); + var failDescription = + "does have " + string.Join(" and ", argumentDescriptions); + yield return new ConditionResult(ruleType, false, failDescription); } } - - return true; } - return new ArchitectureCondition(Condition, failDescription, description); + var description = argumentValueList.FormatDescription( + "not have any attributes with any of no arguments (always true)", + "not have any attributes with argument", + "not have any attributes with arguments" + ); + return new OrderedArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotHaveAttributeWithNamedArguments( - [NotNull] string attribute, - IEnumerable<(string, object)> attributeArguments + public static ICondition NotHaveAttributeWithArguments( + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable argumentValues ) { - string description, - failDescription; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "not have attribute \"" + attribute + "\""; - failDescription = "does have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "not have attribute \"" - + attribute - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - failDescription = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "does have attribute \"" - + attribute - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); - bool Condition(TRuleType obj, Architecture architecture) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - foreach (var attributeInstance in obj.AttributeInstances) + var resolvedAttribute = getAttribute(architecture); + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.FullNameMatches(attribute)) + var failedArguments = ruleType + .GetAllAttributeArgumentValues(resolvedAttribute) + .Where(resolvedArgumentValueList.Contains) + .ToList(); + if (!failedArguments.Any()) { - goto NextAttribute; + yield return new ConditionResult(ruleType, true); } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) + else { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } + var withArguments = + failedArguments.Count == 1 ? "with argument" : "with arguments"; + var arguments = failedArguments.Select(arg => $"\"{arg}\""); + var argumentsDescription = string.Join(" and ", arguments); + var failDescription = + $"does have attribute \"{resolvedAttribute.FullName}\" {withArguments} {argumentsDescription}"; + yield return new ConditionResult(ruleType, false, failDescription); } - - return false; - NextAttribute: - ; } - - return true; } - return new ArchitectureCondition(Condition, failDescription, description); + var description = argumentValueList.FormatDescription( + $"not have attribute \"{attributeFullName}\" with any of no arguments (always true)", + $"not have attribute \"{attributeFullName}\" with argument", + $"not have attribute \"{attributeFullName}\" with arguments" + ); + return new OrderedArchitectureCondition(Condition, description); } - public static ICondition NotHaveAttributeWithNamedArguments( - [NotNull] Attribute attribute, - IEnumerable<(string, object)> attributeArguments + public static ICondition NotHaveAnyAttributesWithNamedArguments( + IEnumerable<(string, object)> namedArguments ) { - string description, - failDescription; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "not have attribute \"" + attribute.FullName + "\""; - failDescription = "does have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "not have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - failDescription = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "does have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Condition(TRuleType obj, Architecture architecture) + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - foreach (var attributeInstance in obj.AttributeInstances) + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.Equals(attribute)) + var attArguments = ruleType.GetAllNamedAttributeArgumentTuples().ToList(); + if (!resolvedNamedArgumentList.Any(attArguments.Contains)) { - goto NextAttribute; + yield return new ConditionResult(ruleType, true); } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) + else { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) + var failedAttributesAndArguments = ruleType + .AttributeInstances.Select(instance => { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) + var attributeArguments = + ruleType.GetAllNamedAttributeArgumentTuples(instance.Type); + var failedArguments = resolvedNamedArgumentList + .Where(attributeArguments.Contains) + .ToList(); + return (instance, failedArguments); + }) + .Where(t => t.failedArguments.Any()) + .ToList(); + var argumentDescriptions = failedAttributesAndArguments.Select(t => { - goto NextAttribute; - } + var withArguments = + t.failedArguments.Count == 1 + ? "with named argument" + : "with named arguments"; + var arguments = t.failedArguments.Select(arg => + $"\"{arg.Item1}={arg.Item2}\"" + ); + var argumentsDescription = string.Join(" and ", arguments); + return $"attribute {t.instance.Type.FullName} {withArguments} {argumentsDescription}"; + }); + var failDescription = + "does have " + string.Join(" and ", argumentDescriptions); + yield return new ConditionResult(ruleType, false, failDescription); } - - return false; - NextAttribute: - ; } - - return true; } - - return new ArchitectureCondition(Condition, description, failDescription); + var description = namedArgumentList.FormatDescription( + "not have any attributes with any of no named arguments (always true)", + "not have any attributes with named argument", + "not have any attributes with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return new OrderedArchitectureCondition(Condition, description); } public static ICondition NotHaveAttributeWithNamedArguments( - [NotNull] Type attribute, - IEnumerable<(string, object)> attributeArguments + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable<(string, object)> namedArguments ) { - string description, - failDescription; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "not have attribute \"" + attribute.FullName + "\""; - failDescription = "does have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "not have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - failDescription = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "does have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); - bool Condition(TRuleType obj, Architecture architecture) + IEnumerable Condition( + IEnumerable ruleTypes, + Architecture architecture + ) { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return true; - } - - foreach (var attributeInstance in obj.AttributeInstances) + var resolvedAttribute = getAttribute(architecture); + var resolvedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.Equals(archUnitAttribute)) + var failedArguments = ruleType + .GetAllNamedAttributeArgumentTuples(resolvedAttribute) + .Where(resolvedArgumentList.Contains) + .ToList(); + if (!failedArguments.Any()) { - goto NextAttribute; + yield return new ConditionResult(ruleType, true); } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) + else { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } + var withArguments = + failedArguments.Count == 1 + ? "with named argument" + : "with named arguments"; + var arguments = failedArguments.Select(arg => + $"\"{arg.Item1}={arg.Item2}\"" + ); + var argumentsDescription = string.Join(" and ", arguments); + var failDescription = + $"does have attribute \"{resolvedAttribute.FullName}\" {withArguments} {argumentsDescription}"; + yield return new ConditionResult(ruleType, false, failDescription); } - - return false; - NextAttribute: - ; } - - return true; } - return new ArchitectureCondition(Condition, description, failDescription); - } - - [Obsolete( - "Either NotHaveName() without the useRegularExpressions parameter or NotHaveNameMatching() should be used" - )] - public static ICondition NotHaveName(string pattern, bool useRegularExpressions) - { - return new SimpleCondition( - obj => !obj.NameMatches(pattern, useRegularExpressions), - obj => "does have name " + obj.Name, - "not have name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + var description = namedArgumentList.FormatDescription( + $"not have attribute \"{attributeFullName}\" with any of no named arguments (always true)", + $"not have attribute \"{attributeFullName}\" with named argument", + $"not have attribute \"{attributeFullName}\" with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" ); + return new OrderedArchitectureCondition(Condition, description); } public static ICondition NotHaveName(string name) @@ -3078,22 +1138,30 @@ public static ICondition NotHaveNameMatching(string pattern) ); } - [Obsolete( - "Either NotHaveFullName() without the useRegularExpressions parameter or NotHaveFullNameMatching() should be used" - )] - public static ICondition NotHaveFullName( - string pattern, - bool useRegularExpressions - ) + public static ICondition NotHaveNameStartingWith(string pattern) { return new SimpleCondition( - obj => !obj.FullNameMatches(pattern, useRegularExpressions), - obj => "does have full name " + obj.FullName, - "not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + obj => !obj.NameStartsWith(pattern), + obj => "does have name " + obj.Name, + "not have name starting with \"" + pattern + "\"" + ); + } + + public static ICondition NotHaveNameEndingWith(string pattern) + { + return new SimpleCondition( + obj => !obj.NameEndsWith(pattern), + obj => "does have name " + obj.Name, + "not have name ending with \"" + pattern + "\"" + ); + } + + public static ICondition NotHaveNameContaining(string pattern) + { + return new SimpleCondition( + obj => !obj.NameContains(pattern), + obj => "does have name " + obj.Name, + "not have name containing \"" + pattern + "\"" ); } @@ -3115,39 +1183,77 @@ public static ICondition NotHaveFullNameMatching(string pattern) ); } - public static ICondition NotHaveNameStartingWith(string pattern) + public static ICondition NotHaveFullNameStartingWith(string pattern) { return new SimpleCondition( - obj => !obj.NameStartsWith(pattern), - obj => "does have name " + obj.Name, - "not have name starting with \"" + pattern + "\"" + obj => !obj.FullNameStartsWith(pattern), + obj => "does have full name " + obj.FullName, + "not have full name starting with \"" + pattern + "\"" ); } - public static ICondition NotHaveNameEndingWith(string pattern) + public static ICondition NotHaveFullNameEndingWith(string pattern) { return new SimpleCondition( - obj => !obj.NameEndsWith(pattern), - obj => "does have name " + obj.Name, - "not have name ending with \"" + pattern + "\"" + obj => !obj.FullNameEndsWith(pattern), + obj => "does have full name " + obj.FullName, + "not have full name ending with \"" + pattern + "\"" ); } - public static ICondition NotHaveNameContaining(string pattern) + public static ICondition NotHaveFullNameContaining(string pattern) { return new SimpleCondition( - obj => !obj.NameContains(pattern), - obj => "does have name " + obj.Name, - "not have name containing \"" + pattern + "\"" + obj => !obj.FullNameContains(pattern), + obj => "does have full name " + obj.FullName, + "not have full name containing \"" + pattern + "\"" ); } - public static ICondition NotHaveFullNameContaining(string pattern) + public static ICondition NotHaveAssemblyQualifiedName( + string assemblyQualifiedName + ) { return new SimpleCondition( - obj => !obj.FullNameContains(pattern), - obj => "does have full name " + obj.FullName, - "not have full name containing \"" + pattern + "\"" + obj => !obj.AssemblyQualifiedNameEquals(assemblyQualifiedName), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "not have assembly qualified name \"" + assemblyQualifiedName + "\"" + ); + } + + public static ICondition NotHaveAssemblyQualifiedNameMatching(string pattern) + { + return new SimpleCondition( + obj => !obj.AssemblyQualifiedNameMatches(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "not have assembly qualified name matching \"" + pattern + "\"" + ); + } + + public static ICondition NotHaveAssemblyQualifiedNameStartingWith(string pattern) + { + return new SimpleCondition( + obj => !obj.AssemblyQualifiedNameStartsWith(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "not have assembly qualified name starting with \"" + pattern + "\"" + ); + } + + public static ICondition NotHaveAssemblyQualifiedNameEndingWith(string pattern) + { + return new SimpleCondition( + obj => !obj.AssemblyQualifiedNameEndsWith(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "not have assembly qualified name ending with \"" + pattern + "\"" + ); + } + + public static ICondition NotHaveAssemblyQualifiedNameContaining(string pattern) + { + return new SimpleCondition( + obj => !obj.AssemblyQualifiedNameContains(pattern), + obj => "does have assembly qualified name " + obj.AssemblyQualifiedName, + "not have assembly qualified name containing \"" + pattern + "\"" ); } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/ObjectPredicatesDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/ObjectPredicatesDefinition.cs index fd7b8960f..4a1981839 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/ObjectPredicatesDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/ObjectPredicatesDefinition.cs @@ -2,7 +2,6 @@ using System.Collections.Generic; using System.Linq; using ArchUnitNET.Domain; -using ArchUnitNET.Domain.Exceptions; using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Fluent.Predicates; using JetBrains.Annotations; @@ -11,2899 +10,591 @@ namespace ArchUnitNET.Fluent.Syntax.Elements { - public static class ObjectPredicatesDefinition + internal static class ObjectPredicatesDefinition where T : ICanBeAnalyzed { - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - public static IPredicate Are(string pattern, bool useRegularExpressions = false) - { - return new SimplePredicate( - obj => obj.FullNameMatches(pattern, useRegularExpressions), - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - public static IPredicate Are( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - string description; - if (patternList.IsNullOrEmpty()) - { - description = "not exist (impossible)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate( - obj => - patternList.Any(pattern => obj.FullNameMatches(pattern, useRegularExpressions)), - description - ); - } - - public static IPredicate Are( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - var objects = new List { firstObject } - .Union(moreObjects) - .OfType(); - var description = moreObjects.Aggregate( - "are \"" + firstObject.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - return new EnumerablePredicate(e => e.Intersect(objects), description); - } - - public static IPredicate Are(IEnumerable objects) - { - var objectList = objects.ToList(); - string description; - if (objectList.IsNullOrEmpty()) - { - description = "do not exist (always empty)"; - } - else - { - var firstObject = objectList.First(); - description = objectList - .Where(obj => !obj.Equals(firstObject)) - .Distinct() - .Aggregate( - "are \"" + firstObject.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new EnumerablePredicate( - e => e.Intersect(objectList.OfType()), - description - ); - } - public static IPredicate Are(IObjectProvider objectProvider) { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - return objects.Intersect(objectProvider.GetObjects(architecture).OfType()); - } - - return new ArchitecturePredicate(Filter, "are " + objectProvider.Description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static IPredicate CallAny(string pattern, bool useRegularExpressions = false) - { - return new SimplePredicate( - obj => obj.CallsMethod(pattern, useRegularExpressions), - "calls any method with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static IPredicate CallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return patternList.Any(method => type.CallsMethod(method)); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "call one of no methods (impossible)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "call any method with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Filter, description); - } - - public static IPredicate CallAny(MethodMember method, params MethodMember[] moreMethods) - { - var methods = new List { method }; - methods.AddRange(moreMethods); - return CallAny(methods); - } - - public static IPredicate CallAny(IObjectProvider objectProvider) - { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var methods = objectProvider.GetObjects(architecture); - return objects.Where(obj => obj.GetCalledMethods().Intersect(methods).Any()); - } - - var description = "call any " + objectProvider.Description; - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate CallAny(IEnumerable methods) - { - var methodList = methods.ToList(); - - IEnumerable Filter(IEnumerable objects) - { - return objects.Where(obj => obj.GetCalledMethods().Intersect(methodList).Any()); - } - - string description; - if (methodList.IsNullOrEmpty()) - { - description = "call one of no methods (impossible)"; - } - else - { - var firstMethod = methodList.First(); - description = methodList - .Where(obj => !obj.Equals(firstMethod)) - .Distinct() - .Aggregate( - "call \"" + firstMethod.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new EnumerablePredicate(Filter, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public static IPredicate DependOnAny(string pattern, bool useRegularExpressions = false) - { - return new SimplePredicate( - obj => obj.DependsOn(pattern, useRegularExpressions), - "depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public static IPredicate DependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return type.GetTypeDependencies() - .Any(target => - patternList.Any(pattern => - target.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Filter, description); - } - - public static IPredicate DependOnAny(IType firstType, params IType[] moreTypes) - { - var types = new List { firstType }; - types.AddRange(moreTypes); - return DependOnAny(types); - } - - public static IPredicate DependOnAny(Type firstType, params Type[] moreTypes) - { - var types = new List { firstType }; - types.AddRange(moreTypes); - return DependOnAny(types); - } - - public static IPredicate DependOnAny(IObjectProvider objectProvider) - { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var types = objectProvider.GetObjects(architecture); - return objects.Where(obj => obj.GetTypeDependencies().Intersect(types).Any()); - } - - var description = "depend on any " + objectProvider.Description; - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate DependOnAny(IEnumerable types) - { - var typeList = types.ToList(); - - IEnumerable Filter(IEnumerable objects) - { - return objects.Where(obj => obj.GetTypeDependencies().Intersect(typeList).Any()); - } - - string description; - if (typeList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstType = typeList.First(); - description = typeList - .Where(obj => !obj.Equals(firstType)) - .Distinct() - .Aggregate( - "depend on \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new EnumerablePredicate(Filter, description); - } - - public static IPredicate DependOnAny(IEnumerable types) - { - var typeList = types.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var archUnitTypeList = new List(); - foreach (var type in typeList) - { - try - { - var archUnitType = architecture.GetITypeOfType(type); - archUnitTypeList.Add(archUnitType); - } - catch (TypeDoesNotExistInArchitecture) - { - //ignore, can't have a dependency anyways - } - } - - return objects.Where(obj => - obj.GetTypeDependencies().Intersect(archUnitTypeList).Any() - ); - } - - string description; - if (typeList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstType = typeList.First(); - description = typeList - .Where(obj => obj != firstType) - .Distinct() - .Aggregate( - "depend on \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate FollowCustomPredicate( - Func predicate, - string description - ) - { - return new SimplePredicate(predicate, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public static IPredicate OnlyDependOn(string pattern, bool useRegularExpressions = false) - { - return new SimplePredicate( - obj => obj.OnlyDependsOn(pattern, useRegularExpressions), - "only depend on types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public static IPredicate OnlyDependOn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return type.GetTypeDependencies() - .All(target => - patternList.Any(pattern => - target.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "only depend on types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Filter, description); - } - - public static IPredicate OnlyDependOn(IType firstType, params IType[] moreTypes) - { - var types = new List { firstType }; - types.AddRange(moreTypes); - return OnlyDependOn(types); - } - - public static IPredicate OnlyDependOn(Type firstType, params Type[] moreTypes) - { - var types = new List { firstType }; - types.AddRange(moreTypes); - return OnlyDependOn(types); - } - - public static IPredicate OnlyDependOn(IObjectProvider objectProvider) - { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var types = objectProvider.GetObjects(architecture); - return objects.Where(obj => - obj.GetTypeDependencies(architecture).Except(types).IsNullOrEmpty() - ); - } - - var description = "only depend on " + objectProvider.Description; - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate OnlyDependOn(IEnumerable types) - { - var typeList = types.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - return objects.Where(obj => - obj.GetTypeDependencies(architecture).Except(typeList).IsNullOrEmpty() - ); - } - - string description; - if (typeList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstType = typeList.First(); - description = typeList - .Where(obj => !obj.Equals(firstType)) - .Distinct() - .Aggregate( - "only depend on \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate OnlyDependOn(IEnumerable types) - { - var typeList = types.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var archUnitTypeList = new List(); - foreach (var type in typeList) - { - try - { - var archUnitType = architecture.GetITypeOfType(type); - archUnitTypeList.Add(archUnitType); - } - catch (TypeDoesNotExistInArchitecture) - { - //ignore, can't have a dependency anyways - } - } - - return objects.Where(obj => - obj.GetTypeDependencies(architecture).Except(archUnitTypeList).IsNullOrEmpty() - ); - } - - string description; - if (typeList.IsNullOrEmpty()) - { - description = "have no dependencies"; - } - else - { - var firstType = typeList.First(); - description = typeList - .Where(obj => obj != firstType) - .Distinct() - .Aggregate( - "only depend on \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new ArchitecturePredicate(Filter, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public static IPredicate HaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - obj => obj.HasAttribute(pattern, useRegularExpressions), - "have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public static IPredicate HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return type.Attributes.Any(attribute => - patternList.Any(pattern => - attribute.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "have one of no attributes (impossible)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Filter, description); - } - - public static IPredicate HaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - var attributes = new List { firstAttribute }; - attributes.AddRange(moreAttributes); - return HaveAnyAttributes(attributes); - } - - public static IPredicate HaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - var attributes = new List { firstAttribute }; - attributes.AddRange(moreAttributes); - return HaveAnyAttributes(attributes); - } - - public static IPredicate HaveAnyAttributes(IObjectProvider objectProvider) - { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var attributes = objectProvider.GetObjects(architecture); - return objects.Where(obj => obj.Attributes.Intersect(attributes).Any()); - } - - var description = "have any " + objectProvider.Description; - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate HaveAnyAttributes(IEnumerable attributes) - { - var attributeList = attributes.ToList(); - - IEnumerable Filter(IEnumerable objects) - { - return objects.Where(obj => obj.Attributes.Intersect(attributeList).Any()); - } - - string description; - if (attributeList.IsNullOrEmpty()) - { - description = "have one of no attributes (impossible)"; - } - else - { - var firstAttribute = attributeList.First(); - description = attributeList - .Where(obj => !obj.Equals(firstAttribute)) - .Distinct() - .Aggregate( - "have attribute \"" + firstAttribute.FullName + "\"", - (current, attribute) => current + " or \"" + attribute.FullName + "\"" - ); - } - - return new EnumerablePredicate(Filter, description); - } - - public static IPredicate HaveAnyAttributes(IEnumerable attributes) - { - var attributeList = attributes.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var archAttributeList = attributeList.Select(architecture.GetAttributeOfType); - return objects.Where(obj => obj.Attributes.Intersect(archAttributeList).Any()); - } - - string description; - if (attributeList.IsNullOrEmpty()) - { - description = "have one of no attributes (impossible)"; - } - else - { - var firstType = attributeList.First(); - description = attributeList - .Where(obj => obj != firstType) - .Distinct() - .Aggregate( - "have attribute \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new ArchitecturePredicate(Filter, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public static IPredicate OnlyHaveAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - obj => obj.OnlyHasAttributes(pattern, useRegularExpressions), - "only have attributes with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public static IPredicate OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return type.Attributes.IsNullOrEmpty() - || type.Attributes.All(attribute => - patternList.Any(pattern => - attribute.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "have no attributes"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "only have attributes with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Filter, description); - } - - public static IPredicate OnlyHaveAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - var attributes = new List { firstAttribute }; - attributes.AddRange(moreAttributes); - return OnlyHaveAttributes(attributes); - } - - public static IPredicate OnlyHaveAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - var attributes = new List { firstAttribute }; - attributes.AddRange(moreAttributes); - return OnlyHaveAttributes(attributes); - } - - public static IPredicate OnlyHaveAttributes(IObjectProvider objectProvider) - { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var attributes = objectProvider.GetObjects(architecture); - return objects.Where(obj => !obj.Attributes.Except(attributes).Any()); - } - - var description = "only have " + objectProvider.Description; - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate OnlyHaveAttributes(IEnumerable attributes) - { - var attributeList = attributes.ToList(); - - IEnumerable Filter(IEnumerable objects) - { - return objects.Where(obj => !obj.Attributes.Except(attributeList).Any()); - } - - string description; - if (attributeList.IsNullOrEmpty()) - { - description = "have no attributes"; - } - else - { - var firstAttribute = attributeList.First(); - description = attributeList - .Where(obj => !obj.Equals(firstAttribute)) - .Distinct() - .Aggregate( - "only have attribute \"" + firstAttribute.FullName + "\"", - (current, attribute) => current + " or \"" + attribute.FullName + "\"" - ); - } - - return new EnumerablePredicate(Filter, description); - } - - public static IPredicate OnlyHaveAttributes(IEnumerable attributes) - { - var attributeList = attributes.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var archUnitAttributeList = new List(); - foreach (var type in attributeList) - { - try - { - var archUnitAttribute = architecture.GetAttributeOfType(type); - archUnitAttributeList.Add(archUnitAttribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //ignore, can't have a dependency anyways - } - } - - return objects.Where(obj => !obj.Attributes.Except(archUnitAttributeList).Any()); - } - - string description; - if (attributeList.IsNullOrEmpty()) - { - description = "have no attributes"; - } - else - { - var firstType = attributeList.First(); - description = attributeList - .Where(obj => obj != firstType) - .Distinct() - .Aggregate( - "only have attribute \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new ArchitecturePredicate(Filter, description); - } - - public static IPredicate HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAnyAttributesWithArguments(argumentValues); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAttributeWithArguments(attribute, argumentValues); - } - - public static IPredicate HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAttributeWithArguments(attribute, argumentValues); - } - - public static IPredicate HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return HaveAttributeWithArguments(attribute, argumentValues); - } - - public static IPredicate HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAnyAttributesWithNamedArguments(attributeArguments); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static IPredicate HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static IPredicate HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return HaveAttributeWithNamedArguments(attribute, attributeArguments); - } - - public static IPredicate HaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - string description; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have no or any attributes with arguments (always true)"; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "have any attributes with arguments \"" + firstArgument + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - var attributeArguments = obj - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.Select(arg => arg.Value) - ) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - return false; - } - } - else if (!attributeArguments.Contains(arg)) - { - return false; - } - } - - return true; - } - - return new ArchitecturePredicate(Predicate, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate HaveAttributeWithArguments( - [NotNull] string attribute, - IEnumerable argumentValues - ) - { - string description; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.FullNameMatches(attribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitecturePredicate(Predicate, description); - } - - public static IPredicate HaveAttributeWithArguments( - [NotNull] Attribute attribute, - IEnumerable argumentValues - ) - { - string description; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(attribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitecturePredicate(Predicate, description); - } - - public static IPredicate HaveAttributeWithArguments( - [NotNull] Type attribute, - IEnumerable argumentValues - ) - { - string description; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return false; - } - - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(archUnitAttribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitecturePredicate(Predicate, description); - } - - public static IPredicate HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - var argumentList = attributeArguments.ToList(); - string description; - if (argumentList.IsNullOrEmpty()) - { - description = "have no or any attributes with named arguments (always true)"; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "have any attributes with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - var attArguments = obj - .AttributeInstances.SelectMany(instance => - instance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - ) - .ToList(); - var typeAttributeArguments = attArguments - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - return false; - } - } - else if (!attArguments.Contains(arg)) - { - return false; - } - } - - return true; - } - - return new ArchitecturePredicate(Predicate, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate HaveAttributeWithNamedArguments( - [NotNull] string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - string description; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.FullNameMatches(attribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!argumentList.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitecturePredicate(Predicate, description); - } - - public static IPredicate HaveAttributeWithNamedArguments( - [NotNull] Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - string description; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Condition(T obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(attribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitecturePredicate(Condition, description); - } - - public static IPredicate HaveAttributeWithNamedArguments( - [NotNull] Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - string description; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return false; - } - - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(archUnitAttribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) - { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } - } - - return true; - NextAttribute: - ; - } - - return false; - } - - return new ArchitecturePredicate(Predicate, description); - } - - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - public static IPredicate HaveName(string pattern, bool useRegularExpressions) - { - return new SimplePredicate( - obj => obj.NameMatches(pattern, useRegularExpressions), - "have name " + (useRegularExpressions ? "matching " : "") + "\"" + pattern + "\"" - ); - } - - public static IPredicate HaveName(string name) - { - return new SimplePredicate( - obj => obj.NameEquals(name), - "have name \"" + name + "\"" - ); - } - - public static IPredicate HaveNameMatching(string pattern) - { - return new SimplePredicate( - obj => obj.NameMatches(pattern), - "have name matching \"" + pattern + "\"" - ); - } - - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - public static IPredicate HaveFullName(string pattern, bool useRegularExpressions) - { - return new SimplePredicate( - obj => obj.FullNameMatches(pattern, useRegularExpressions), - "have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - public static IPredicate HaveFullName(string fullName) - { - return new SimplePredicate( - obj => obj.FullNameEquals(fullName), - "have full name \"" + fullName + "\"" - ); - } - - public static IPredicate HaveFullNameMatching(string pattern) - { - return new SimplePredicate( - obj => obj.FullNameMatches(pattern), - "have full name matching \"" + pattern + "\"" - ); - } - - public static IPredicate HaveNameStartingWith(string pattern) - { - return new SimplePredicate( - obj => obj.NameStartsWith(pattern), - "have name starting with \"" + pattern + "\"" - ); - } - - public static IPredicate HaveNameEndingWith(string pattern) - { - return new SimplePredicate( - obj => obj.NameEndsWith(pattern), - "have name ending with \"" + pattern + "\"" - ); - } - - public static IPredicate HaveNameContaining(string pattern) - { - return new SimplePredicate( - obj => obj.NameContains(pattern), - "have name containing \"" + pattern + "\"" - ); - } - - public static IPredicate HaveFullNameContaining(string pattern) - { - return new SimplePredicate( - obj => obj.FullNameContains(pattern), - "have full name containing \"" + pattern + "\"" - ); - } - - public static IPredicate ArePrivate() - { - return new SimplePredicate(obj => obj.Visibility == Private, "are private"); - } - - public static IPredicate ArePublic() - { - return new SimplePredicate(obj => obj.Visibility == Public, "are public"); - } - - public static IPredicate AreProtected() - { - return new SimplePredicate(obj => obj.Visibility == Protected, "are protected"); - } - - public static IPredicate AreInternal() - { - return new SimplePredicate(obj => obj.Visibility == Internal, "are internal"); - } - - public static IPredicate AreProtectedInternal() - { - return new SimplePredicate( - obj => obj.Visibility == ProtectedInternal, - "are protected internal" - ); - } - - public static IPredicate ArePrivateProtected() - { - return new SimplePredicate( - obj => obj.Visibility == PrivateProtected, - "are private protected" - ); - } - - //Negations - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNot(string pattern, bool useRegularExpressions = false) - { - return new SimplePredicate( - obj => !obj.FullNameMatches(pattern, useRegularExpressions), - "do not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNot( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - string description; - if (patternList.IsNullOrEmpty()) - { - description = "exist (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "do not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate( - obj => - patternList.All(pattern => - !obj.FullNameMatches(pattern, useRegularExpressions) - ), - description - ); - } - - public static IPredicate AreNot( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - var objects = new List { firstObject } - .Concat(moreObjects) - .OfType(); - var description = moreObjects.Aggregate( - "are not \"" + firstObject.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - return new EnumerablePredicate(e => e.Except(objects), description); - } - - public static IPredicate AreNot(IEnumerable objects) - { - var objectList = objects.ToList(); - string description; - if (objectList.IsNullOrEmpty()) - { - description = "are not no object (always true)"; - } - else - { - var firstObject = objectList.First(); - description = objectList - .Where(obj => !obj.Equals(firstObject)) - .Distinct() - .Aggregate( - "are not \"" + firstObject.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new EnumerablePredicate(e => e.Except(objectList.OfType()), description); - } - - public static IPredicate AreNot(IObjectProvider objectProvider) - { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - return objects.Except(objectProvider.GetObjects(architecture).OfType()); - } - - return new ArchitecturePredicate(Filter, "are not " + objectProvider.Description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static IPredicate DoNotCallAny(string pattern, bool useRegularExpressions = false) - { - return new SimplePredicate( - obj => !obj.CallsMethod(pattern, useRegularExpressions), - "do not call any methods with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public static IPredicate DoNotCallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return patternList.All(pattern => - !type.CallsMethod(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "do not call one of no methods (always true)"; - } - else + IEnumerable Filter(IEnumerable objects, Architecture architecture) { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "do not call any methods with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); + return objects.Intersect(objectProvider.GetObjects(architecture).OfType()); } - return new SimplePredicate(Filter, description); - } - - public static IPredicate DoNotCallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - var methods = new List { method }; - methods.AddRange(moreMethods); - return DoNotCallAny(methods); + var description = objectProvider.FormatDescription( + "are any of no objects (always empty)", + "are", + "are" + ); + return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotCallAny(IObjectProvider objectProvider) + public static IPredicate CallAny(IObjectProvider objectProvider) { IEnumerable Filter(IEnumerable objects, Architecture architecture) { var methods = objectProvider.GetObjects(architecture); - return objects.Where(obj => !obj.GetCalledMethods().Intersect(methods).Any()); + return objects.Where(obj => obj.GetCalledMethods().Intersect(methods).Any()); } - var description = "do not call " + objectProvider.Description; + var description = objectProvider.FormatDescription( + "do not call any method", + "call", + "call any" + ); return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotCallAny(IEnumerable methods) + public static IPredicate DependOnAny(IObjectProvider objectProvider) { - var methodList = methods.ToList(); - - IEnumerable Filter(IEnumerable objects) - { - return objects.Where(obj => !obj.GetCalledMethods().Intersect(methodList).Any()); - } - - string description; - if (methodList.IsNullOrEmpty()) - { - description = "do not call one of no methods (always true)"; - } - else + IEnumerable Filter(IEnumerable objects, Architecture architecture) { - var firstMethod = methodList.First(); - description = methodList - .Where(obj => !obj.Equals(firstMethod)) - .Distinct() - .Aggregate( - "do not call \"" + firstMethod.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); + var types = objectProvider.GetObjects(architecture); + return objects.Where(obj => obj.GetTypeDependencies().Intersect(types).Any()); } - return new EnumerablePredicate(Filter, description); + var description = objectProvider.FormatDescription( + "depend on any of no types (impossible)", + "depend on", + "depend on any" + ); + return new ArchitecturePredicate(Filter, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - public static IPredicate DoNotDependOnAny( - string pattern, - bool useRegularExpressions = false + public static IPredicate FollowCustomPredicate( + Func predicate, + string description ) { - return new SimplePredicate( - obj => !obj.DependsOn(pattern, useRegularExpressions), - "do not depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); + return new SimplePredicate(predicate, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - public static IPredicate DoNotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) + public static IPredicate OnlyDependOn(IObjectProvider objectProvider) { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return type.GetTypeDependencies() - .All(target => - patternList.All(pattern => - target.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "do not depend on no types (always true)"; - } - else + IEnumerable Filter(IEnumerable objects, Architecture architecture) { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "do not depend on any types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); + var types = objectProvider.GetObjects(architecture); + return objects.Where(obj => + obj.GetTypeDependencies(architecture).Except(types).IsNullOrEmpty() + ); } - return new SimplePredicate(Filter, description); + var description = objectProvider.FormatDescription( + "depend on no types", + "only depend on", + "only depend on" + ); + return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotDependOnAny(IType firstType, params IType[] moreTypes) + public static IPredicate HaveAnyAttributes(IObjectProvider objectProvider) { - var types = new List { firstType }; - types.AddRange(moreTypes); - return DoNotDependOnAny(types); - } + IEnumerable Filter(IEnumerable objects, Architecture architecture) + { + var attributes = objectProvider.GetObjects(architecture); + return objects.Where(obj => obj.Attributes.Intersect(attributes).Any()); + } - public static IPredicate DoNotDependOnAny(Type firstType, params Type[] moreTypes) - { - var types = new List { firstType }; - types.AddRange(moreTypes); - return DoNotDependOnAny(types); + var description = objectProvider.FormatDescription( + "have any of no attributes (always empty)", + "have", + "have any" + ); + return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotDependOnAny(IObjectProvider objectProvider) + public static IPredicate OnlyHaveAttributes(IObjectProvider objectProvider) { IEnumerable Filter(IEnumerable objects, Architecture architecture) { - var types = objectProvider.GetObjects(architecture); - return objects.Where(obj => !obj.GetTypeDependencies().Intersect(types).Any()); + var attributes = objectProvider.GetObjects(architecture); + return objects.Where(obj => !obj.Attributes.Except(attributes).Any()); } - var description = "do not depend on any " + objectProvider.Description; + var description = objectProvider.FormatDescription( + "have no attributes", + "only have", + "only have" + ); return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotDependOnAny(IEnumerable types) + public static IPredicate HaveAnyAttributesWithArguments( + IEnumerable argumentValues + ) { - var typeList = types.ToList(); - - IEnumerable Filter(IEnumerable objects) + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); + IEnumerable Predicate(IEnumerable ruleTypes, Architecture architecture) { - return objects.Where(obj => !obj.GetTypeDependencies().Intersect(typeList).Any()); + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) + .ToList(); + return ruleTypes.Where(ruleType => + ruleType.AttributeInstances.Any(instance => + { + var instanceArgumentValues = instance + .GetAllAttributeArgumentValues() + .ToList(); + return resolvedArgumentValueList.All(instanceArgumentValues.Contains); + }) + ); } + var description = argumentValueList.FormatDescription( + "have any attributes", + "have any attributes with argument", + "have any attributes with arguments" + ); + return new ArchitecturePredicate(Predicate, description); + } - string description; - if (typeList.IsNullOrEmpty()) - { - description = "do not depend on no types (always true)"; - } - else + public static IPredicate HaveAttributeWithArguments( + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable argumentValues + ) + { + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); + IEnumerable Predicate(IEnumerable ruleTypes, Architecture architecture) { - var firstType = typeList.First(); - description = typeList - .Where(obj => !obj.Equals(firstType)) - .Distinct() - .Aggregate( - "do not depend on \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); + var resolvedAttribute = getAttribute(architecture); + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) + .ToList(); + return ruleTypes.Where(ruleType => + ruleType + .AttributeInstances.Where(instance => + instance.Type.Equals(resolvedAttribute) + ) + .Any(instance => + { + var instanceArgumentValues = instance + .GetAllAttributeArgumentValues() + .ToList(); + return resolvedArgumentValueList.All(instanceArgumentValues.Contains); + }) + ); } - - return new EnumerablePredicate(Filter, description); + var description = argumentValueList.FormatDescription( + $"have attribute \"{attributeFullName}\"", + $"have attribute \"{attributeFullName}\" with argument", + $"have attribute \"{attributeFullName}\" with arguments" + ); + return new ArchitecturePredicate(Predicate, description); } - public static IPredicate DoNotDependOnAny(IEnumerable types) + public static IPredicate HaveAnyAttributesWithNamedArguments( + IEnumerable<(string, object)> namedArguments + ) { - var typeList = types.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); + IEnumerable Predicate(IEnumerable ruleTypes, Architecture architecture) { - var archUnitTypeList = new List(); - foreach (var type in typeList) - { - try - { - var archUnitType = architecture.GetITypeOfType(type); - archUnitTypeList.Add(archUnitType); - } - catch (TypeDoesNotExistInArchitecture) + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + return ruleTypes.Where(ruleType => + ruleType.AttributeInstances.Any(instance => { - //ignore, can't have a dependency anyways - } - } - - return objects.Where(obj => - !obj.GetTypeDependencies().Intersect(archUnitTypeList).Any() + var attArguments = instance.GetAllNamedAttributeArgumentTuples().ToList(); + return resolvedNamedArgumentList.All(attArguments.Contains); + }) ); } + var description = namedArgumentList.FormatDescription( + "have any attributes", + "have any attributes with named argument", + "have any attributes with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return new ArchitecturePredicate(Predicate, description); + } - string description; - if (typeList.IsNullOrEmpty()) - { - description = "do not depend on no types (always true)"; - } - else + public static IPredicate HaveAttributeWithNamedArguments( + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable<(string, object)> namedArguments + ) + { + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); + IEnumerable Predicate(IEnumerable ruleTypes, Architecture architecture) { - var firstType = typeList.First(); - description = typeList - .Where(obj => obj != firstType) - .Distinct() - .Aggregate( - "do not depend on \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); + var resolvedAttribute = getAttribute(architecture); + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + return ruleTypes.Where(ruleType => + ruleType + .AttributeInstances.Where(instance => + instance.Type.Equals(resolvedAttribute) + ) + .Any(instance => + { + var attArguments = instance + .GetAllNamedAttributeArgumentTuples() + .ToList(); + return resolvedNamedArgumentList.All(attArguments.Contains); + }) + ); } - - return new ArchitecturePredicate(Filter, description); + var description = namedArgumentList.FormatDescription( + $"have attribute \"{attributeFullName}\"", + $"have attribute \"{attributeFullName}\" with named argument", + $"have attribute \"{attributeFullName}\" with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return new ArchitecturePredicate(Predicate, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public static IPredicate DoNotHaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) + public static IPredicate HaveName(string name) { return new SimplePredicate( - obj => !obj.HasAttribute(pattern, useRegularExpressions), - "do not have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + obj => obj.NameEquals(name), + "have name \"" + name + "\"" ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public static IPredicate DoNotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) + public static IPredicate HaveNameMatching(string pattern) { - var patternList = patterns.ToList(); - - bool Filter(T type) - { - return !type.Attributes.Any(attribute => - patternList.Any(pattern => - attribute.FullNameMatches(pattern, useRegularExpressions) - ) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "do not have one of no attributes (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(pattern => !pattern.Equals(firstPattern)) - .Distinct() - .Aggregate( - "do not have any attribute with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Filter, description); + return new SimplePredicate( + obj => obj.NameMatches(pattern), + "have name matching \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) + public static IPredicate HaveNameStartingWith(string pattern) { - var attributes = new List { firstAttribute }; - attributes.AddRange(moreAttributes); - return DoNotHaveAnyAttributes(attributes); + return new SimplePredicate( + obj => obj.NameStartsWith(pattern), + "have name starting with \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) + public static IPredicate HaveNameEndingWith(string pattern) { - var attributes = new List { firstAttribute }; - attributes.AddRange(moreAttributes); - return DoNotHaveAnyAttributes(attributes); + return new SimplePredicate( + obj => obj.NameEndsWith(pattern), + "have name ending with \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributes( - IObjectProvider objectProvider - ) + public static IPredicate HaveNameContaining(string pattern) { - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var types = objectProvider.GetObjects(architecture); - return objects.Where(obj => !obj.Attributes.Intersect(types).Any()); - } - - var description = "do not have any " + objectProvider.Description; - return new ArchitecturePredicate(Filter, description); + return new SimplePredicate( + obj => obj.NameContains(pattern), + "have name containing \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributes(IEnumerable attributes) + public static IPredicate HaveFullName(string fullName) { - var attributeList = attributes.ToList(); - - IEnumerable Filter(IEnumerable objects) - { - return objects.Where(obj => !obj.Attributes.Intersect(attributeList).Any()); - } - - string description; - if (attributeList.IsNullOrEmpty()) - { - description = "do not have one of no attributes (always true)"; - } - else - { - var firstAttribute = attributeList.First(); - description = attributeList - .Where(obj => !obj.Equals(firstAttribute)) - .Distinct() - .Aggregate( - "do not have attribute \"" + firstAttribute.FullName + "\"", - (current, attribute) => current + " or \"" + attribute.FullName + "\"" - ); - } - - return new EnumerablePredicate(Filter, description); + return new SimplePredicate( + obj => obj.FullNameEquals(fullName), + "have full name \"" + fullName + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributes(IEnumerable attributes) + public static IPredicate HaveFullNameMatching(string pattern) { - var attributeList = attributes.ToList(); - - IEnumerable Filter(IEnumerable objects, Architecture architecture) - { - var archUnitAttributeList = new List(); - foreach (var type in attributeList) - { - try - { - var archUnitAttribute = architecture.GetAttributeOfType(type); - archUnitAttributeList.Add(archUnitAttribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //ignore, can't have a dependency anyways - } - } - - return objects.Where(obj => !obj.Attributes.Intersect(archUnitAttributeList).Any()); - } - - string description; - if (attributeList.IsNullOrEmpty()) - { - description = "do not have one of no attributes (always true)"; - } - else - { - var firstType = attributeList.First(); - description = attributeList - .Where(obj => obj != firstType) - .Distinct() - .Aggregate( - "do not have attribute \"" + firstType.FullName + "\"", - (current, obj) => current + " or \"" + obj.FullName + "\"" - ); - } - - return new ArchitecturePredicate(Filter, description); + return new SimplePredicate( + obj => obj.FullNameMatches(pattern), + "have full name matching \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static IPredicate HaveFullNameStartingWith(string pattern) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return DoNotHaveAnyAttributesWithArguments(argumentValues); + return new SimplePredicate( + obj => obj.FullNameStartsWith(pattern), + "have full name starting with \"" + pattern + "\"" + ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate DoNotHaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static IPredicate HaveFullNameEndingWith(string pattern) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return DoNotHaveAttributeWithArguments(attribute, argumentValues); + return new SimplePredicate( + obj => obj.FullNameEndsWith(pattern), + "have full name ending with \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static IPredicate HaveFullNameContaining(string pattern) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return DoNotHaveAttributeWithArguments(attribute, argumentValues); + return new SimplePredicate( + obj => obj.FullNameContains(pattern), + "have full name containing \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) + public static IPredicate HaveAssemblyQualifiedName(string assemblyQualifiedName) { - var argumentValues = new List { firstArgumentValue }; - argumentValues.AddRange(moreArgumentValues); - return DoNotHaveAttributeWithArguments(attribute, argumentValues); + return new SimplePredicate( + obj => obj.AssemblyQualifiedNameEquals(assemblyQualifiedName), + "have assembly qualified name \"" + assemblyQualifiedName + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) + public static IPredicate HaveAssemblyQualifiedNameMatching(string pattern) { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return DoNotHaveAnyAttributesWithNamedArguments(attributeArguments); + return new SimplePredicate( + obj => obj.AssemblyQualifiedNameMatches(pattern), + "have assembly qualified name matching \"" + pattern + "\"" + ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate DoNotHaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) + public static IPredicate HaveAssemblyQualifiedNameStartingWith(string pattern) { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return DoNotHaveAttributeWithNamedArguments(attribute, attributeArguments); + return new SimplePredicate( + obj => obj.AssemblyQualifiedNameStartsWith(pattern), + "have assembly qualified name starting with \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) + public static IPredicate HaveAssemblyQualifiedNameEndingWith(string pattern) { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return DoNotHaveAttributeWithNamedArguments(attribute, attributeArguments); + return new SimplePredicate( + obj => obj.AssemblyQualifiedNameEndsWith(pattern), + "have assembly qualified name ending with \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) + public static IPredicate HaveAssemblyQualifiedNameContaining(string pattern) { - var attributeArguments = new List<(string, object)> { firstAttributeArgument }; - attributeArguments.AddRange(moreAttributeArguments); - return DoNotHaveAttributeWithNamedArguments(attribute, attributeArguments); + return new SimplePredicate( + obj => obj.AssemblyQualifiedNameContains(pattern), + "have assembly qualified name containing \"" + pattern + "\"" + ); } - public static IPredicate DoNotHaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) + public static IPredicate ArePrivate() { - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - string description; - if (argumentValueList.IsNullOrEmpty()) - { - description = "do not have no or any attributes with arguments (impossible)"; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "do not have any attributes with arguments \"" + firstArgument + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) - { - var attributeArguments = obj - .AttributeInstances.SelectMany(instance => - instance.AttributeArguments.Select(arg => arg.Value) - ) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.Any(t => t.FullName == argType.FullName)) - { - return false; - } - } - else if ( - attributeArguments.Contains(arg) || typeAttributeArguments.Contains(arg) - ) - { - return false; - } - } + return new SimplePredicate(obj => obj.Visibility == Private, "are private"); + } - return true; - } + public static IPredicate ArePublic() + { + return new SimplePredicate(obj => obj.Visibility == Public, "are public"); + } - return new ArchitecturePredicate(Predicate, description); + public static IPredicate AreProtected() + { + return new SimplePredicate(obj => obj.Visibility == Protected, "are protected"); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate DoNotHaveAttributeWithArguments( - [NotNull] string attribute, - IEnumerable argumentValues - ) + public static IPredicate AreInternal() { - string description; - var argumentValueList = argumentValues?.ToList() ?? new List { null }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "do not have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "do not have attribute \"" - + attribute - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } + return new SimplePredicate(obj => obj.Visibility == Internal, "are internal"); + } - bool Predicate(T obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.FullNameMatches(attribute)) - { - goto NextAttribute; - } + public static IPredicate AreProtectedInternal() + { + return new SimplePredicate( + obj => obj.Visibility == ProtectedInternal, + "are protected internal" + ); + } - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } + public static IPredicate ArePrivateProtected() + { + return new SimplePredicate( + obj => obj.Visibility == PrivateProtected, + "are private protected" + ); + } - return false; - NextAttribute: - ; - } + //Negations - return true; + public static IPredicate AreNot(IObjectProvider objectProvider) + { + IEnumerable Filter(IEnumerable objects, Architecture architecture) + { + return objects.Except(objectProvider.GetObjects(architecture).OfType()); } - return new ArchitecturePredicate(Predicate, description); + var description = objectProvider.FormatDescription( + "are not any of no objects (always true)", + "are not", + "are not" + ); + return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotHaveAttributeWithArguments( - [NotNull] Attribute attribute, - IEnumerable argumentValues - ) + public static IPredicate DoNotCallAny(IObjectProvider objectProvider) { - string description; - var argumentValueList = argumentValues?.ToList() ?? new List { }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "do not have attribute \"" + attribute.FullName + "\""; - } - else + IEnumerable Filter(IEnumerable objects, Architecture architecture) { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "do not have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); + var methods = objectProvider.GetObjects(architecture); + return objects.Where(obj => !obj.GetCalledMethods().Intersect(methods).Any()); } - bool Predicate(T obj, Architecture architecture) - { - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(attribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return false; - NextAttribute: - ; - } + var description = objectProvider.FormatDescription( + "do not call any of no methods (always true)", + "do not call", + "do not call any" + ); + return new ArchitecturePredicate(Filter, description); + } - return true; + public static IPredicate DoNotDependOnAny(IObjectProvider objectProvider) + { + IEnumerable Filter(IEnumerable objects, Architecture architecture) + { + var types = objectProvider.GetObjects(architecture); + return objects.Where(obj => + !obj.GetTypeDependencies(architecture).Intersect(types).Any() + ); } - return new ArchitecturePredicate(Predicate, description); + var description = objectProvider.FormatDescription( + "do not depend on any of no types (always true)", + "do not depend on", + "do not depend on any" + ); + return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotHaveAttributeWithArguments( - [NotNull] Type attribute, - IEnumerable argumentValues + public static IPredicate DoNotHaveAnyAttributes( + IObjectProvider objectProvider ) { - string description; - var argumentValueList = argumentValues?.ToList() ?? new List { }; - if (argumentValueList.IsNullOrEmpty()) - { - description = "do not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentValueList.First(); - description = argumentValueList - .Where(att => att != firstArgument) - .Aggregate( - "do not have attribute \"" - + attribute.FullName - + "\" with arguments \"" - + firstArgument - + "\"", - (current, argumentValue) => current + " and \"" + argumentValue + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) + IEnumerable Filter(IEnumerable objects, Architecture architecture) { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return true; - } - - foreach (var attributeInstance in obj.AttributeInstances) - { - if (!attributeInstance.Type.Equals(archUnitAttribute)) - { - goto NextAttribute; - } - - var attributeArguments = attributeInstance - .AttributeArguments.Select(arg => arg.Value) - .ToList(); - var typeAttributeArguments = attributeArguments - .OfType>() - .Select(t => t.Type) - .Union(attributeArguments.OfType()) - .ToList(); - foreach (var arg in argumentValueList) - { - if (arg is Type argType) - { - if (typeAttributeArguments.All(t => t.FullName != argType.FullName)) - { - goto NextAttribute; - } - } - else if (!attributeArguments.Contains(arg)) - { - goto NextAttribute; - } - } - - return false; - NextAttribute: - ; - } - - return true; + var types = objectProvider.GetObjects(architecture); + return objects.Where(obj => !obj.Attributes.Intersect(types).Any()); } - return new ArchitecturePredicate(Predicate, description); + var description = objectProvider.FormatDescription( + "do not have any of no attributes (always true)", + "do not have", + "do not have any" + ); + return new ArchitecturePredicate(Filter, description); } - public static IPredicate DoNotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments + public static IPredicate DoNotHaveAnyAttributesWithArguments( + IEnumerable argumentValues ) { - var argumentList = attributeArguments.ToList(); - string description; - if (argumentList.IsNullOrEmpty()) - { - description = "do not have no or any attributes with named arguments (impossible)"; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(attribute => attribute != firstArgument) - .Aggregate( - "do not have any attributes with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Condition(T obj, Architecture architecture) + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); + IEnumerable Predicate(IEnumerable ruleTypes, Architecture architecture) { - var attArguments = obj - .AttributeInstances.SelectMany(instance => - instance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - ) + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) .ToList(); - var typeAttributeArguments = attArguments - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) + foreach (var ruleType in ruleTypes) { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.Any(t => - t.Name == arg.Item1 - && ( - t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName == argType.FullName - || t.Value is IType type && type.FullName == argType.FullName - ) - ) - ) - { - return false; - } - } - else if (attArguments.Contains(arg)) + var attributeArguments = ruleType.GetAllAttributeArgumentValues().ToList(); + if (!resolvedArgumentValueList.Any(attributeArguments.Contains)) { - return false; + yield return ruleType; } } - - return true; } - - return new ArchitecturePredicate(Condition, description); + var description = argumentValueList.FormatDescription( + "do not have any attributes with any of no arguments (always true)", + "do not have any attributes with argument", + "do not have any attributes with arguments" + ); + return new ArchitecturePredicate(Predicate, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate DoNotHaveAttributeWithNamedArguments( - [NotNull] string attribute, - IEnumerable<(string, object)> attributeArguments + public static IPredicate DoNotHaveAttributeWithArguments( + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable argumentValues ) { - string description; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "do not have attribute \"" + attribute + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "do not have attribute \"" - + attribute - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } + var argumentValueList = argumentValues as IList ?? argumentValues.ToList(); - bool Predicate(T obj, Architecture architecture) + IEnumerable Predicate(IEnumerable ruleTypes, Architecture architecture) { - foreach (var attributeInstance in obj.AttributeInstances) + var resolvedAttribute = getAttribute(architecture); + var resolvedArgumentValueList = argumentValueList + .ResolveAttributeArguments(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.FullNameMatches(attribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) + var attributeArguments = ruleType + .GetAllAttributeArgumentValues(resolvedAttribute) .ToList(); - foreach (var arg in argumentList) + if (!resolvedArgumentValueList.Any(attributeArguments.Contains)) { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!argumentList.Contains(arg)) - { - goto NextAttribute; - } + yield return ruleType; } - - return false; - NextAttribute: - ; } - - return true; } + var description = argumentValueList.FormatDescription( + $"do not have attribute \"{attributeFullName}\" with any of no arguments (always true)", + $"do not have attribute \"{attributeFullName}\" with argument", + $"do not have attribute \"{attributeFullName}\" with arguments" + ); return new ArchitecturePredicate(Predicate, description); } - public static IPredicate DoNotHaveAttributeWithNamedArguments( - [NotNull] Attribute attribute, - IEnumerable<(string, object)> attributeArguments + public static IPredicate DoNotHaveAnyAttributesWithNamedArguments( + IEnumerable<(string, object)> namedArguments ) { - string description; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "do not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "do not have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); + IEnumerable Condition(IEnumerable ruleTypes, Architecture architecture) { - foreach (var attributeInstance in obj.AttributeInstances) + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.Equals(attribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) - .ToList(); - foreach (var arg in argumentList) + var attArguments = ruleType.GetAllNamedAttributeArgumentTuples().ToList(); + if (!resolvedNamedArgumentList.Any(attArguments.Contains)) { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } + yield return ruleType; } - - return false; - NextAttribute: - ; } - - return true; } - return new ArchitecturePredicate(Predicate, description); + var description = namedArgumentList.FormatDescription( + "do not have any attributes with any of no named arguments (always true)", + "do not have any attributes with named argument", + "do not have any attributes with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" + ); + return new ArchitecturePredicate(Condition, description); } public static IPredicate DoNotHaveAttributeWithNamedArguments( - [NotNull] Type attribute, - IEnumerable<(string, object)> attributeArguments + string attributeFullName, + [NotNull] Func getAttribute, + IEnumerable<(string, object)> namedArguments ) { - string description; - var argumentList = attributeArguments.ToList(); - if (argumentList.IsNullOrEmpty()) - { - description = "do not have attribute \"" + attribute.FullName + "\""; - } - else - { - var firstArgument = argumentList.First(); - description = argumentList - .Where(att => att != firstArgument) - .Aggregate( - "do not have attribute \"" - + attribute.FullName - + "\" with named arguments \"" - + firstArgument.Item1 - + "=" - + firstArgument.Item2 - + "\"", - (current, arg) => current + " and \"" + arg.Item1 + "=" + arg.Item2 + "\"" - ); - } - - bool Predicate(T obj, Architecture architecture) + var namedArgumentList = + namedArguments as IList<(string, object)> ?? namedArguments.ToList(); + IEnumerable Condition(IEnumerable ruleTypes, Architecture architecture) { - Attribute archUnitAttribute; - try - { - archUnitAttribute = architecture.GetAttributeOfType(attribute); - } - catch (TypeDoesNotExistInArchitecture) - { - //can't have a dependency - return true; - } - - foreach (var attributeInstance in obj.AttributeInstances) + var resolvedAttribute = getAttribute(architecture); + var resolvedNamedArgumentList = namedArgumentList + .ResolveNamedAttributeArgumentTuples(architecture) + .ToList(); + foreach (var ruleType in ruleTypes) { - if (!attributeInstance.Type.Equals(archUnitAttribute)) - { - goto NextAttribute; - } - - var attributeArgs = attributeInstance - .AttributeArguments.OfType() - .Select(arg => (arg.Name, arg.Value)) - .ToList(); - var typeAttributeArguments = attributeArgs - .Where(arg => arg.Value is ITypeInstance || arg.Value is IType) + var attArguments = ruleType + .GetAllNamedAttributeArgumentTuples(resolvedAttribute) .ToList(); - foreach (var arg in argumentList) + if (!resolvedNamedArgumentList.Any(attArguments.Contains)) { - if (arg.Item2 is Type argType) - { - if ( - typeAttributeArguments.All(t => - t.Name != arg.Item1 - || t.Value is ITypeInstance typeInstance - && typeInstance.Type.FullName != argType.FullName - || t.Value is IType type && type.FullName != argType.FullName - ) - ) - { - goto NextAttribute; - } - } - else if (!attributeArgs.Contains(arg)) - { - goto NextAttribute; - } + yield return ruleType; } - - return false; - NextAttribute: - ; } - - return true; } - return new ArchitecturePredicate(Predicate, description); - } - - [Obsolete( - "Either DoNotHaveName() without the useRegularExpressions parameter or DoNotHaveNameMatching() should be used" - )] - public static IPredicate DoNotHaveName(string pattern, bool useRegularExpressions) - { - return new SimplePredicate( - obj => !obj.NameMatches(pattern, useRegularExpressions), - "do not have name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + var description = namedArgumentList.FormatDescription( + $"do not have attribute \"{attributeFullName}\" with any of no named arguments (always true)", + $"do not have attribute \"{attributeFullName}\" with named argument", + $"do not have attribute \"{attributeFullName}\" with named arguments", + elementDescription: arg => $"\"{arg.Item1}={arg.Item2}\"" ); + return new ArchitecturePredicate(Condition, description); } public static IPredicate DoNotHaveName(string name) @@ -2922,18 +613,27 @@ public static IPredicate DoNotHaveNameMatching(string pattern) ); } - [Obsolete( - "Either DoNotHaveFullName() without the useRegularExpressions parameter or DoNotHaveFullNameMatching() should be used" - )] - public static IPredicate DoNotHaveFullName(string pattern, bool useRegularExpressions) + public static IPredicate DoNotHaveNameStartingWith(string pattern) + { + return new SimplePredicate( + obj => !obj.NameStartsWith(pattern), + "do not have name starting with \"" + pattern + "\"" + ); + } + + public static IPredicate DoNotHaveNameEndingWith(string pattern) + { + return new SimplePredicate( + obj => !obj.NameEndsWith(pattern), + "do not have name ending with \"" + pattern + "\"" + ); + } + + public static IPredicate DoNotHaveNameContaining(string pattern) { return new SimplePredicate( - obj => !obj.FullNameMatches(pattern, useRegularExpressions), - "do not have full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" + obj => !obj.NameContains(pattern), + "do not have name containing \"" + pattern + "\"" ); } @@ -2953,35 +653,67 @@ public static IPredicate DoNotHaveFullNameMatching(string pattern) ); } - public static IPredicate DoNotHaveNameStartingWith(string pattern) + public static IPredicate DoNotHaveFullNameStartingWith(string pattern) { return new SimplePredicate( - obj => !obj.NameStartsWith(pattern), - "do not have name starting with \"" + pattern + "\"" + obj => !obj.FullNameStartsWith(pattern), + "do not have full name starting with \"" + pattern + "\"" ); } - public static IPredicate DoNotHaveNameEndingWith(string pattern) + public static IPredicate DoNotHaveFullNameEndingWith(string pattern) { return new SimplePredicate( - obj => !obj.NameEndsWith(pattern), - "do not have name ending with \"" + pattern + "\"" + obj => !obj.FullNameEndsWith(pattern), + "do not have full name ending with \"" + pattern + "\"" ); } - public static IPredicate DoNotHaveNameContaining(string pattern) + public static IPredicate DoNotHaveFullNameContaining(string pattern) { return new SimplePredicate( - obj => !obj.NameContains(pattern), - "do not have name containing \"" + pattern + "\"" + obj => !obj.FullNameContains(pattern), + "do not have full name containing \"" + pattern + "\"" ); } - public static IPredicate DoNotHaveFullNameContaining(string pattern) + public static IPredicate DoNotHaveAssemblyQualifiedName(string assemblyQualifiedName) { return new SimplePredicate( - obj => !obj.FullNameContains(pattern), - "do not have full name containing \"" + pattern + "\"" + obj => !obj.AssemblyQualifiedNameEquals(assemblyQualifiedName), + "do not have assembly qualified name \"" + assemblyQualifiedName + "\"" + ); + } + + public static IPredicate DoNotHaveAssemblyQualifiedNameMatching(string pattern) + { + return new SimplePredicate( + obj => !obj.AssemblyQualifiedNameMatches(pattern), + "do not have assembly qualified name matching \"" + pattern + "\"" + ); + } + + public static IPredicate DoNotHaveAssemblyQualifiedNameStartingWith(string pattern) + { + return new SimplePredicate( + obj => !obj.AssemblyQualifiedNameStartsWith(pattern), + "do not have assembly qualified name starting with \"" + pattern + "\"" + ); + } + + public static IPredicate DoNotHaveAssemblyQualifiedNameEndingWith(string pattern) + { + return new SimplePredicate( + obj => !obj.AssemblyQualifiedNameEndsWith(pattern), + "do not have assembly qualified name ending with \"" + pattern + "\"" + ); + } + + public static IPredicate DoNotHaveAssemblyQualifiedNameContaining(string pattern) + { + return new SimplePredicate( + obj => !obj.AssemblyQualifiedNameContains(pattern), + "do not have assembly qualified name containing \"" + pattern + "\"" ); } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/ObjectsShould.cs b/ArchUnitNET/Fluent/Syntax/Elements/ObjectsShould.cs index 1d75779f4..adc5365b3 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/ObjectsShould.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/ObjectsShould.cs @@ -1,6 +1,5 @@ using System; using System.Collections.Generic; -using System.Linq; using ArchUnitNET.Domain; using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Fluent.Conditions; @@ -28,1614 +27,192 @@ public TRuleTypeShouldConjunction Exist() return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Be(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction Be(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.Be(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Be(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction Be( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.Be(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction Be( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - var objectList = new List { firstObject }; - objectList.AddRange(moreObjects); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.Be( - new ObjectProvider(objectList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction Be(IEnumerable objects) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.Be( - new ObjectProvider(objects.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction Be(IObjectProvider objects) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.Be(objects)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction CallAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.CallAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction CallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.CallAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction CallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - var methodList = new List { method }; - methodList.AddRange(moreMethods); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.CallAny( - new ObjectProvider(methodList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction CallAny(IEnumerable methods) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.CallAny( - new ObjectProvider(methods.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction CallAny(IObjectProvider methods) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.CallAny(methods)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.DependOnAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.DependOnAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IType firstType, params IType[] moreTypes) - { - var typeList = new List { firstType }; - typeList.AddRange(moreTypes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.DependOnAny( - new ObjectProvider(typeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(Type firstType, params Type[] moreTypes) - { - var typeList = new List { firstType }; - typeList.AddRange(moreTypes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.DependOnAny( - new SystemTypeObjectProvider(typeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IObjectProvider types) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.DependOnAny(types)); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.DependOnAny( - new ObjectProvider(types.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.DependOnAny( - new SystemTypeObjectProvider(types.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction FollowCustomCondition(ICondition condition) - { - _ruleCreator.AddCondition(condition); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction FollowCustomCondition( - Func condition, - string description - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.FollowCustomCondition(condition, description) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction FollowCustomCondition( - Func condition, - string description, - string failDescription - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.FollowCustomCondition( - condition, - description, - failDescription - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyDependOn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyDependOn(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyDependOn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyDependOn(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IType firstType, params IType[] moreTypes) - { - var typeList = new List { firstType }; - typeList.AddRange(moreTypes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyDependOn( - new ObjectProvider(typeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(Type firstType, params Type[] moreTypes) - { - var typeList = new List { firstType }; - typeList.AddRange(moreTypes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyDependOn( - new SystemTypeObjectProvider(typeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IObjectProvider types) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.OnlyDependOn(types)); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyDependOn( - new ObjectProvider(types.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyDependOn( - new SystemTypeObjectProvider(types.ToList()) - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - var attributeList = new List { firstAttribute }; - attributeList.AddRange(moreAttributes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes( - new ObjectProvider(attributeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - var attributeList = new List { firstAttribute }; - attributeList.AddRange(moreAttributes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes( - new SystemTypeObjectProvider(attributeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes(IObjectProvider attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes( - new ObjectProvider(attributes.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributes( - new SystemTypeObjectProvider(attributes.ToList()) - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyHaveAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - var attributeList = new List { firstAttribute }; - attributeList.AddRange(moreAttributes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes( - new ObjectProvider(attributeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - var attributeList = new List { firstAttribute }; - attributeList.AddRange(moreAttributes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes( - new SystemTypeObjectProvider(attributeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes(IObjectProvider attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes( - new ObjectProvider(attributes.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.OnlyHaveAttributes( - new SystemTypeObjectProvider(attributes.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributesWithArguments(argumentValues) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributesWithArguments( - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributesWithNamedArguments( - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAnyAttributesWithNamedArguments( - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - public TRuleTypeShouldConjunction HaveName(string pattern, bool useRegularExpressions) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveName(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveName(string name) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.HaveName(name)); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameMatching(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - public TRuleTypeShouldConjunction HaveFullName(string pattern, bool useRegularExpressions) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveFullName(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveFullName(string fullName) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.HaveFullName(fullName)); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveFullNameMatching(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveFullNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameStartingWith(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveNameStartingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameEndingWith(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveNameEndingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameContaining(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveFullNameContaining(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.HaveFullNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction BePrivate() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.BePrivate()); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction BePublic() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.BePublic()); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction BeProtected() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.BeProtected()); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction BeInternal() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.BeInternal()); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction BeProtectedInternal() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.BeProtectedInternal()); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction BePrivateProtected() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.BePrivateProtected()); - return Create(_ruleCreator); - } - - //Relation Conditions - - public ShouldRelateToTypesThat< - TRuleTypeShouldConjunction, - IType, - TRuleType - > DependOnAnyTypesThat() - { - _ruleCreator.BeginComplexCondition( - ArchRuleDefinition.Types(true), - ObjectConditionsDefinition.DependOnAnyTypesThat() - ); - return new ShouldRelateToTypesThat( - _ruleCreator - ); - } - - public ShouldRelateToTypesThat< - TRuleTypeShouldConjunction, - IType, - TRuleType - > OnlyDependOnTypesThat() - { - _ruleCreator.BeginComplexCondition( - ArchRuleDefinition.Types(true), - ObjectConditionsDefinition.OnlyDependOnTypesThat() - ); - return new ShouldRelateToTypesThat( - _ruleCreator - ); - } - - public ShouldRelateToAttributesThat< - TRuleTypeShouldConjunction, - TRuleType - > HaveAnyAttributesThat() - { - _ruleCreator.BeginComplexCondition( - Attributes(true), - ObjectConditionsDefinition.HaveAnyAttributesThat() - ); - return new ShouldRelateToAttributesThat( - _ruleCreator - ); - } - - public ShouldRelateToAttributesThat< - TRuleTypeShouldConjunction, - TRuleType - > OnlyHaveAttributesThat() - { - _ruleCreator.BeginComplexCondition( - Attributes(true), - ObjectConditionsDefinition.OnlyHaveAttributesThat() - ); - return new ShouldRelateToAttributesThat( - _ruleCreator - ); - } - - //Negations - - public TRuleTypeShouldConjunction NotExist() - { - _ruleCreator.RequirePositiveResults = false; - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotExist()); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBe(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotBe(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotBe(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBe(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotBe( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotBe(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotBe( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - var objectList = new List { firstObject }; - objectList.AddRange(moreObjects); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotBe( - new ObjectProvider(objectList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotBe(IEnumerable objects) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotBe( - new ObjectProvider(objects.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotBe(IObjectProvider objects) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotBe(objects)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotCallAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotCallAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotCallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotCallAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotCallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - var methods = new List { method }; - methods.AddRange(moreMethods); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotCallAny( - new ObjectProvider(methods) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotCallAny(IEnumerable methods) - { - var methodList = methods.ToList(); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotCallAny( - new ObjectProvider(methodList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotCallAny(IObjectProvider methods) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotCallAny(methods)); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotDependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotDependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotDependOnAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotDependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotDependOnAny( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotDependOnAny(IType firstType, params IType[] moreTypes) - { - var typeList = new List { firstType }; - typeList.AddRange(moreTypes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotDependOnAny( - new ObjectProvider(typeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotDependOnAny(Type firstType, params Type[] moreTypes) - { - var typeList = new List { firstType }; - typeList.AddRange(moreTypes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotDependOnAny( - new SystemTypeObjectProvider(typeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotDependOnAny(IObjectProvider types) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotDependOnAny(types)); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotDependOnAny(IEnumerable types) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotDependOnAny( - new ObjectProvider(types.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotDependOnAny(IEnumerable types) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotDependOnAny( - new SystemTypeObjectProvider(types.ToList()) - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotHaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - var attributeList = new List { firstAttribute }; - attributeList.AddRange(moreAttributes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes( - new ObjectProvider(attributeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - var attributeList = new List { firstAttribute }; - attributeList.AddRange(moreAttributes); - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes( - new SystemTypeObjectProvider(attributeList) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributes( - IObjectProvider attributes - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes( - new ObjectProvider(attributes.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributes( - new SystemTypeObjectProvider(attributes.ToList()) - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributesWithArguments( - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributesWithArguments( - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction NotHaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction NotHaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributesWithNamedArguments( - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAnyAttributesWithNamedArguments( - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } + // csharpier-ignore-start + public TRuleTypeShouldConjunction Be(params ICanBeAnalyzed[] objects) => Be(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction Be(IEnumerable objects) => Be(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction Be(IObjectProvider objects) => AddCondition(ObjectConditionsDefinition.Be(objects)); + + public TRuleTypeShouldConjunction CallAny(params MethodMember[] methods) => CallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction CallAny(IEnumerable methods) => CallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction CallAny(IObjectProvider methods) => AddCondition(ObjectConditionsDefinition.CallAny(methods)); + + public TRuleTypeShouldConjunction DependOnAny() => DependOnAny(new ObjectProvider()); + public TRuleTypeShouldConjunction DependOnAny(params IType[] types) => DependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction DependOnAny(params Type[] types) => DependOnAny(new SystemTypeObjectProvider(types)); + public TRuleTypeShouldConjunction DependOnAny(IObjectProvider types) => AddCondition(ObjectConditionsDefinition.DependOnAny(types)); + public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) => DependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) => DependOnAny(new SystemTypeObjectProvider(types)); + + public TRuleTypeShouldConjunction FollowCustomCondition(ICondition condition) => AddCondition(condition); + public TRuleTypeShouldConjunction FollowCustomCondition(Func condition, string description) => AddCondition(ObjectConditionsDefinition.FollowCustomCondition(condition, description)); + public TRuleTypeShouldConjunction FollowCustomCondition(Func condition, string description, string failDescription) => AddCondition(ObjectConditionsDefinition.FollowCustomCondition(condition, description, failDescription)); + + public TRuleTypeShouldConjunction OnlyDependOn() => OnlyDependOn(new ObjectProvider()); + public TRuleTypeShouldConjunction OnlyDependOn(params IType[] types) => OnlyDependOn(new ObjectProvider(types)); + public TRuleTypeShouldConjunction OnlyDependOn(params Type[] types) => OnlyDependOn(new SystemTypeObjectProvider(types)); + public TRuleTypeShouldConjunction OnlyDependOn(IObjectProvider types) => AddCondition(ObjectConditionsDefinition.OnlyDependOn(types)); + public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) => OnlyDependOn(new ObjectProvider(types)); + public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) => OnlyDependOn(new SystemTypeObjectProvider(types)); + + public TRuleTypeShouldConjunction HaveAnyAttributes() => HaveAnyAttributes(new ObjectProvider()); + public TRuleTypeShouldConjunction HaveAnyAttributes(params Attribute[] attributes) => HaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(params Type[] attributes) => HaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(IObjectProvider attributes) => AddCondition(ObjectConditionsDefinition.HaveAnyAttributes(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) => HaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) => HaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + + public TRuleTypeShouldConjunction OnlyHaveAttributes() => OnlyHaveAttributes(new ObjectProvider()); + public TRuleTypeShouldConjunction OnlyHaveAttributes(params Attribute[] attributes) => OnlyHaveAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(params Type[] attributes) => OnlyHaveAttributes(new SystemTypeObjectProvider(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(IObjectProvider attributes) => AddCondition(ObjectConditionsDefinition.OnlyHaveAttributes(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) => OnlyHaveAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) => OnlyHaveAttributes(new SystemTypeObjectProvider(attributes)); + + public TRuleTypeShouldConjunction HaveAnyAttributesWithArguments(IEnumerable argumentValues) => AddCondition(ObjectConditionsDefinition.HaveAnyAttributesWithArguments(argumentValues)); + + public TRuleTypeShouldConjunction HaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues) => AddCondition(ObjectConditionsDefinition.HaveAttributeWithArguments(attribute.FullName, _ => attribute, argumentValues)); + public TRuleTypeShouldConjunction HaveAttributeWithArguments(Type attribute, IEnumerable argumentValues) => AddCondition(ObjectConditionsDefinition.HaveAttributeWithArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), argumentValues)); + + public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments) => AddCondition(ObjectConditionsDefinition.HaveAnyAttributesWithNamedArguments(attributeArguments)); + public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments) => HaveAnyAttributesWithNamedArguments((IEnumerable<(string, object)>)attributeArguments); + + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments) => AddCondition(ObjectConditionsDefinition.HaveAttributeWithNamedArguments(attribute.FullName, _ => attribute, attributeArguments)); + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments) => HaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments) => AddCondition(ObjectConditionsDefinition.HaveAttributeWithNamedArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), attributeArguments)); + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments) => HaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + + public TRuleTypeShouldConjunction HaveName(string name) => AddCondition(ObjectConditionsDefinition.HaveName(name)); + public TRuleTypeShouldConjunction HaveNameMatching(string pattern) => AddCondition(ObjectConditionsDefinition.HaveNameMatching(pattern)); + public TRuleTypeShouldConjunction HaveNameStartingWith(string pattern) => AddCondition(ObjectConditionsDefinition.HaveNameStartingWith(pattern)); + public TRuleTypeShouldConjunction HaveNameEndingWith(string pattern) => AddCondition(ObjectConditionsDefinition.HaveNameEndingWith(pattern)); + public TRuleTypeShouldConjunction HaveNameContaining(string pattern) => AddCondition(ObjectConditionsDefinition.HaveNameContaining(pattern)); + + public TRuleTypeShouldConjunction HaveFullName(string fullName) => AddCondition(ObjectConditionsDefinition.HaveFullName(fullName)); + public TRuleTypeShouldConjunction HaveFullNameMatching(string pattern) => AddCondition(ObjectConditionsDefinition.HaveFullNameMatching(pattern)); + public TRuleTypeShouldConjunction HaveFullNameStartingWith(string pattern) => AddCondition(ObjectConditionsDefinition.HaveFullNameStartingWith(pattern)); + public TRuleTypeShouldConjunction HaveFullNameEndingWith(string pattern) => AddCondition(ObjectConditionsDefinition.HaveFullNameEndingWith(pattern)); + public TRuleTypeShouldConjunction HaveFullNameContaining(string pattern) => AddCondition(ObjectConditionsDefinition.HaveFullNameContaining(pattern)); + + public TRuleTypeShouldConjunction HaveAssemblyQualifiedName(string assemblyQualifiedName) => AddCondition(ObjectConditionsDefinition.HaveAssemblyQualifiedName(assemblyQualifiedName)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameMatching(string pattern) => AddCondition(ObjectConditionsDefinition.HaveAssemblyQualifiedNameMatching(pattern)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameStartingWith(string pattern) => AddCondition(ObjectConditionsDefinition.HaveAssemblyQualifiedNameStartingWith(pattern)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameEndingWith(string pattern) => AddCondition(ObjectConditionsDefinition.HaveAssemblyQualifiedNameEndingWith(pattern)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameContaining(string pattern) => AddCondition(ObjectConditionsDefinition.HaveAssemblyQualifiedNameContaining(pattern)); + + public TRuleTypeShouldConjunction BePrivate() => AddCondition(ObjectConditionsDefinition.BePrivate()); + public TRuleTypeShouldConjunction BePublic() => AddCondition(ObjectConditionsDefinition.BePublic()); + public TRuleTypeShouldConjunction BeProtected() => AddCondition(ObjectConditionsDefinition.BeProtected()); + public TRuleTypeShouldConjunction BeInternal() => AddCondition(ObjectConditionsDefinition.BeInternal()); + public TRuleTypeShouldConjunction BeProtectedInternal() => AddCondition(ObjectConditionsDefinition.BeProtectedInternal()); + public TRuleTypeShouldConjunction BePrivateProtected() => AddCondition(ObjectConditionsDefinition.BePrivateProtected()); + + // Relation Conditions + + public ShouldRelateToTypesThat DependOnAnyTypesThat() => BeginComplexTypeCondition(ObjectConditionsDefinition.DependOnAnyTypesThat()); + public ShouldRelateToTypesThat OnlyDependOnTypesThat() => BeginComplexTypeCondition(ObjectConditionsDefinition.OnlyDependOnTypesThat()); + + public ShouldRelateToAttributesThat HaveAnyAttributesThat() => BeginComplexAttributeCondition(ObjectConditionsDefinition.HaveAnyAttributesThat()); + public ShouldRelateToAttributesThat OnlyHaveAttributesThat() => BeginComplexAttributeCondition(ObjectConditionsDefinition.OnlyHaveAttributesThat()); + + // Negations - [Obsolete( - "Either NotHaveName() without the useRegularExpressions parameter or NotHaveNameMatching() should be used" - )] - public TRuleTypeShouldConjunction NotHaveName(string pattern, bool useRegularExpressions) + public TRuleTypeShouldConjunction NotExist() { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveName(pattern, useRegularExpressions) - ); + _ruleCreator.RequirePositiveResults = false; + _ruleCreator.AddCondition(ObjectConditionsDefinition.NotExist()); return Create(_ruleCreator); } - public TRuleTypeShouldConjunction NotHaveName(string name) - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotHaveName(name)); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotBe(params ICanBeAnalyzed[] objects) => NotBe(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction NotBe(IEnumerable objects) => NotBe(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction NotBe(IObjectProvider objects) => AddCondition(ObjectConditionsDefinition.NotBe(objects)); - public TRuleTypeShouldConjunction NotHaveNameMatching(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveNameMatching(pattern) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotCallAny(params MethodMember[] methods) => NotCallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction NotCallAny(IEnumerable methods) => NotCallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction NotCallAny(IObjectProvider methods) => AddCondition(ObjectConditionsDefinition.NotCallAny(methods)); - [Obsolete( - "Either NotHaveFullName() without the useRegularExpressions parameter or NotHaveFullNameMatching() should be used" - )] - public TRuleTypeShouldConjunction NotHaveFullName( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveFullName( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotDependOnAny() => NotDependOnAny(new ObjectProvider()); + public TRuleTypeShouldConjunction NotDependOnAny(params IType[] types) => NotDependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction NotDependOnAny(params Type[] types) => NotDependOnAny(new SystemTypeObjectProvider(types)); + public TRuleTypeShouldConjunction NotDependOnAny(IObjectProvider types) => AddCondition(ObjectConditionsDefinition.NotDependOnAny(types)); + public TRuleTypeShouldConjunction NotDependOnAny(IEnumerable types) => NotDependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction NotDependOnAny(IEnumerable types) => NotDependOnAny(new SystemTypeObjectProvider(types)); - public TRuleTypeShouldConjunction NotHaveFullName(string fullName) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveFullName(fullName) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveAnyAttributes() => NotHaveAnyAttributes(new ObjectProvider()); + public TRuleTypeShouldConjunction NotHaveAnyAttributes(params Attribute[] attributes) => NotHaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction NotHaveAnyAttributes(params Type[] attributes) => NotHaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + public TRuleTypeShouldConjunction NotHaveAnyAttributes(IObjectProvider attributes) => AddCondition(ObjectConditionsDefinition.NotHaveAnyAttributes(attributes)); + public TRuleTypeShouldConjunction NotHaveAnyAttributes(IEnumerable attributes) => NotHaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction NotHaveAnyAttributes(IEnumerable attributes) => NotHaveAnyAttributes(new SystemTypeObjectProvider(attributes)); - public TRuleTypeShouldConjunction NotHaveFullNameMatching(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveFullNameMatching(pattern) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveAnyAttributesWithArguments(IEnumerable argumentValues) => AddCondition(ObjectConditionsDefinition.NotHaveAnyAttributesWithArguments(argumentValues)); - public TRuleTypeShouldConjunction NotHaveNameStartingWith(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveNameStartingWith(pattern) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues) => AddCondition(ObjectConditionsDefinition.NotHaveAttributeWithArguments(attribute.FullName, _ => attribute, argumentValues)); + public TRuleTypeShouldConjunction NotHaveAttributeWithArguments(Type attribute, IEnumerable argumentValues) => AddCondition(ObjectConditionsDefinition.NotHaveAttributeWithArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), argumentValues)); - public TRuleTypeShouldConjunction NotHaveNameEndingWith(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveNameEndingWith(pattern) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments) => AddCondition(ObjectConditionsDefinition.NotHaveAnyAttributesWithNamedArguments(attributeArguments)); + public TRuleTypeShouldConjunction NotHaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments) => NotHaveAnyAttributesWithNamedArguments((IEnumerable<(string, object)>)attributeArguments); - public TRuleTypeShouldConjunction NotHaveNameContaining(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveNameContaining(pattern) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments) => AddCondition(ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments(attribute.FullName, _ => attribute, attributeArguments)); + public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments) => NotHaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments) => AddCondition(ObjectConditionsDefinition.NotHaveAttributeWithNamedArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), attributeArguments)); + public TRuleTypeShouldConjunction NotHaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments) => NotHaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); - public TRuleTypeShouldConjunction NotHaveFullNameContaining(string pattern) - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotHaveFullNameContaining(pattern) - ); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveName(string name) => AddCondition(ObjectConditionsDefinition.NotHaveName(name)); + public TRuleTypeShouldConjunction NotHaveNameMatching(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveNameMatching(pattern)); + public TRuleTypeShouldConjunction NotHaveNameStartingWith(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveNameStartingWith(pattern)); + public TRuleTypeShouldConjunction NotHaveNameEndingWith(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveNameEndingWith(pattern)); + public TRuleTypeShouldConjunction NotHaveNameContaining(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveNameContaining(pattern)); - public TRuleTypeShouldConjunction NotBePrivate() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotBePrivate()); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveFullName(string fullName) => AddCondition(ObjectConditionsDefinition.NotHaveFullName(fullName)); + public TRuleTypeShouldConjunction NotHaveFullNameMatching(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveFullNameMatching(pattern)); + public TRuleTypeShouldConjunction NotHaveFullNameStartingWith(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveFullNameStartingWith(pattern)); + public TRuleTypeShouldConjunction NotHaveFullNameEndingWith(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveFullNameEndingWith(pattern)); + public TRuleTypeShouldConjunction NotHaveFullNameContaining(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveFullNameContaining(pattern)); - public TRuleTypeShouldConjunction NotBePublic() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotBePublic()); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotHaveAssemblyQualifiedName(string assemblyQualifiedName) => AddCondition(ObjectConditionsDefinition.NotHaveAssemblyQualifiedName(assemblyQualifiedName)); + public TRuleTypeShouldConjunction NotHaveAssemblyQualifiedNameMatching(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveAssemblyQualifiedNameMatching(pattern)); + public TRuleTypeShouldConjunction NotHaveAssemblyQualifiedNameStartingWith(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveAssemblyQualifiedNameStartingWith(pattern)); + public TRuleTypeShouldConjunction NotHaveAssemblyQualifiedNameEndingWith(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveAssemblyQualifiedNameEndingWith(pattern)); + public TRuleTypeShouldConjunction NotHaveAssemblyQualifiedNameContaining(string pattern) => AddCondition(ObjectConditionsDefinition.NotHaveAssemblyQualifiedNameContaining(pattern)); - public TRuleTypeShouldConjunction NotBeProtected() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotBeProtected()); - return Create(_ruleCreator); - } + public TRuleTypeShouldConjunction NotBePrivate() => AddCondition(ObjectConditionsDefinition.NotBePrivate()); + public TRuleTypeShouldConjunction NotBePublic() => AddCondition(ObjectConditionsDefinition.NotBePublic()); + public TRuleTypeShouldConjunction NotBeProtected() => AddCondition(ObjectConditionsDefinition.NotBeProtected()); + public TRuleTypeShouldConjunction NotBeInternal() => AddCondition(ObjectConditionsDefinition.NotBeInternal()); + public TRuleTypeShouldConjunction NotBeProtectedInternal() => AddCondition(ObjectConditionsDefinition.NotBeProtectedInternal()); + public TRuleTypeShouldConjunction NotBePrivateProtected() => AddCondition(ObjectConditionsDefinition.NotBePrivateProtected()); - public TRuleTypeShouldConjunction NotBeInternal() - { - _ruleCreator.AddCondition(ObjectConditionsDefinition.NotBeInternal()); - return Create(_ruleCreator); - } + // Relation Condition Negations - public TRuleTypeShouldConjunction NotBeProtectedInternal() - { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotBeProtectedInternal() - ); - return Create(_ruleCreator); - } + public ShouldRelateToTypesThat NotDependOnAnyTypesThat() => BeginComplexTypeCondition(ObjectConditionsDefinition.NotDependOnAnyTypesThat()); + public ShouldRelateToAttributesThat NotHaveAnyAttributesThat() => BeginComplexAttributeCondition(ObjectConditionsDefinition.NotHaveAnyAttributesThat()); + // csharpier-ignore-end - public TRuleTypeShouldConjunction NotBePrivateProtected() + private TRuleTypeShouldConjunction AddCondition(ICondition condition) { - _ruleCreator.AddCondition( - ObjectConditionsDefinition.NotBePrivateProtected() - ); + _ruleCreator.AddCondition(condition); return Create(_ruleCreator); } - //Relation Condition Negations - - public ShouldRelateToTypesThat< + private ShouldRelateToTypesThat< TRuleTypeShouldConjunction, IType, TRuleType - > NotDependOnAnyTypesThat() + > BeginComplexTypeCondition(RelationCondition relationCondition) { - _ruleCreator.BeginComplexCondition( - ArchRuleDefinition.Types(true), - ObjectConditionsDefinition.NotDependOnAnyTypesThat() - ); + _ruleCreator.BeginComplexCondition(ArchRuleDefinition.Types(true), relationCondition); return new ShouldRelateToTypesThat( _ruleCreator ); } - public ShouldRelateToAttributesThat< + private ShouldRelateToAttributesThat< TRuleTypeShouldConjunction, TRuleType - > NotHaveAnyAttributesThat() + > BeginComplexAttributeCondition(RelationCondition relationCondition) { - _ruleCreator.BeginComplexCondition( - Attributes(true), - ObjectConditionsDefinition.NotHaveAnyAttributesThat() - ); + _ruleCreator.BeginComplexCondition(Attributes(true), relationCondition); return new ShouldRelateToAttributesThat( _ruleCreator ); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/ShouldRelateToObjectsThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/ShouldRelateToObjectsThat.cs index b8a7a82e4..74a682c47 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/ShouldRelateToObjectsThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/ShouldRelateToObjectsThat.cs @@ -1,6 +1,8 @@ using System; using System.Collections.Generic; +using System.Linq; using ArchUnitNET.Domain; +using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Fluent.Predicates; using static ArchUnitNET.Fluent.Syntax.ConjunctionFactory; using Attribute = ArchUnitNET.Domain.Attribute; @@ -16,1501 +18,153 @@ public class ShouldRelateToObjectsThat ruleCreator) : base(ruleCreator) { } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction Are(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.Are(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use Are(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction Are( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.Are(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction Are( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.Are(firstObject, moreObjects) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction Are(IEnumerable objects) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.Are(objects) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction Are(IObjectProvider objects) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.Are(objects) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction CallAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.CallAny(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use CallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction CallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.CallAny(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction CallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.CallAny(method, moreMethods) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction CallAny(IEnumerable methods) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.CallAny(methods) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction CallAny(IObjectProvider methods) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.CallAny(methods) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(Type firstType, params Type[] moreTypes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IType firstType, params IType[] moreTypes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IObjectProvider types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction FollowCustomPredicate( + // csharpier-ignore-start + public TRuleTypeShouldConjunction Are(params ICanBeAnalyzed[] objects) => Are(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction Are(IEnumerable objects) => Are(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction Are(IObjectProvider objects) => ContinueComplexCondition(ObjectPredicatesDefinition.Are(objects)); + + public TRuleTypeShouldConjunction CallAny(params MethodMember[] methods) => CallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction CallAny(IEnumerable methods) => CallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction CallAny(IObjectProvider methods) => ContinueComplexCondition(ObjectPredicatesDefinition.CallAny(methods)); + + public TRuleTypeShouldConjunction DependOnAny() => DependOnAny(new ObjectProvider()); + public TRuleTypeShouldConjunction DependOnAny(params IType[] types) => DependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction DependOnAny(params Type[] types) => DependOnAny(new SystemTypeObjectProvider(types)); + public TRuleTypeShouldConjunction DependOnAny(IObjectProvider types) => ContinueComplexCondition(ObjectPredicatesDefinition.DependOnAny(types)); + public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) => DependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction DependOnAny(IEnumerable types) => DependOnAny(new SystemTypeObjectProvider(types)); + + public TRuleTypeShouldConjunction FollowCustomPredicate(IPredicate predicate) => ContinueComplexCondition(predicate); + public TRuleTypeShouldConjunction FollowCustomPredicate(Func predicate, string description) => ContinueComplexCondition(ObjectPredicatesDefinition.FollowCustomPredicate(predicate, description)); + + public TRuleTypeShouldConjunction OnlyDependOn() => OnlyDependOn(new ObjectProvider()); + public TRuleTypeShouldConjunction OnlyDependOn(params IType[] types) => OnlyDependOn(new ObjectProvider(types)); + public TRuleTypeShouldConjunction OnlyDependOn(params Type[] types) => OnlyDependOn(new SystemTypeObjectProvider(types)); + public TRuleTypeShouldConjunction OnlyDependOn(IObjectProvider types) => ContinueComplexCondition(ObjectPredicatesDefinition.OnlyDependOn(types)); + public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) => OnlyDependOn(new ObjectProvider(types)); + public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) => OnlyDependOn(new SystemTypeObjectProvider(types)); + + public TRuleTypeShouldConjunction HaveAnyAttributes() => HaveAnyAttributes(new ObjectProvider()); + public TRuleTypeShouldConjunction HaveAnyAttributes(params Attribute[] attributes) => HaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(params Type[] attributes) => HaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(IObjectProvider attributes) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAnyAttributes(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) => HaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) => HaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + + public TRuleTypeShouldConjunction OnlyHaveAttributes() => OnlyHaveAttributes(new ObjectProvider()); + public TRuleTypeShouldConjunction OnlyHaveAttributes(params Attribute[] attributes) => OnlyHaveAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(params Type[] attributes) => OnlyHaveAttributes(new SystemTypeObjectProvider(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(IObjectProvider attributes) => ContinueComplexCondition(ObjectPredicatesDefinition.OnlyHaveAttributes(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) => OnlyHaveAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) => OnlyHaveAttributes(new SystemTypeObjectProvider(attributes)); + + public TRuleTypeShouldConjunction HaveAnyAttributesWithArguments(IEnumerable argumentValues) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAnyAttributesWithArguments(argumentValues)); + + public TRuleTypeShouldConjunction HaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAttributeWithArguments(attribute.FullName, _ => attribute, argumentValues)); + public TRuleTypeShouldConjunction HaveAttributeWithArguments(Type attribute, IEnumerable argumentValues) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAttributeWithArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), argumentValues)); + + public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAnyAttributesWithNamedArguments(attributeArguments)); + public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments) => HaveAnyAttributesWithNamedArguments((IEnumerable<(string, object)>)attributeArguments); + + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAttributeWithNamedArguments(attribute.FullName, _ => attribute, attributeArguments)); + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments) => HaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAttributeWithNamedArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), attributeArguments)); + public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments) => HaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + + public TRuleTypeShouldConjunction HaveName(string name) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveName(name)); + public TRuleTypeShouldConjunction HaveNameMatching(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveNameMatching(pattern)); + public TRuleTypeShouldConjunction HaveNameStartingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveNameStartingWith(pattern)); + public TRuleTypeShouldConjunction HaveNameEndingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveNameEndingWith(pattern)); + public TRuleTypeShouldConjunction HaveNameContaining(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveNameContaining(pattern)); + + public TRuleTypeShouldConjunction HaveFullName(string fullName) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveFullName(fullName)); + public TRuleTypeShouldConjunction HaveFullNameMatching(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveFullNameMatching(pattern)); + public TRuleTypeShouldConjunction HaveFullNameStartingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveFullNameStartingWith(pattern)); + public TRuleTypeShouldConjunction HaveFullNameEndingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveFullNameEndingWith(pattern)); + public TRuleTypeShouldConjunction HaveFullNameContaining(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveFullNameContaining(pattern)); + + public TRuleTypeShouldConjunction HaveAssemblyQualifiedName(string assemblyQualifiedName) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAssemblyQualifiedName(assemblyQualifiedName)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameMatching(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameMatching(pattern)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameStartingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameStartingWith(pattern)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameEndingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameEndingWith(pattern)); + public TRuleTypeShouldConjunction HaveAssemblyQualifiedNameContaining(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.HaveAssemblyQualifiedNameContaining(pattern)); + + public TRuleTypeShouldConjunction ArePrivate() => ContinueComplexCondition(ObjectPredicatesDefinition.ArePrivate()); + public TRuleTypeShouldConjunction ArePublic() => ContinueComplexCondition(ObjectPredicatesDefinition.ArePublic()); + public TRuleTypeShouldConjunction AreProtected() => ContinueComplexCondition(ObjectPredicatesDefinition.AreProtected()); + public TRuleTypeShouldConjunction AreInternal() => ContinueComplexCondition(ObjectPredicatesDefinition.AreInternal()); + public TRuleTypeShouldConjunction AreProtectedInternal() => ContinueComplexCondition(ObjectPredicatesDefinition.AreProtectedInternal()); + public TRuleTypeShouldConjunction ArePrivateProtected() => ContinueComplexCondition(ObjectPredicatesDefinition.ArePrivateProtected()); + + // Negations + + public TRuleTypeShouldConjunction AreNot(params ICanBeAnalyzed[] objects) => AreNot(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction AreNot(IEnumerable objects) => AreNot(new ObjectProvider(objects)); + public TRuleTypeShouldConjunction AreNot(IObjectProvider objects) => ContinueComplexCondition(ObjectPredicatesDefinition.AreNot(objects)); + + public TRuleTypeShouldConjunction DoNotCallAny(params MethodMember[] methods) => DoNotCallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction DoNotCallAny(IEnumerable methods) => DoNotCallAny(new ObjectProvider(methods)); + public TRuleTypeShouldConjunction DoNotCallAny(IObjectProvider methods) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotCallAny(methods)); + + public TRuleTypeShouldConjunction DoNotDependOnAny() => DoNotDependOnAny(new ObjectProvider()); + public TRuleTypeShouldConjunction DoNotDependOnAny(params IType[] types) => DoNotDependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction DoNotDependOnAny(params Type[] types) => DoNotDependOnAny(new SystemTypeObjectProvider(types)); + public TRuleTypeShouldConjunction DoNotDependOnAny(IObjectProvider types) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotDependOnAny(types)); + public TRuleTypeShouldConjunction DoNotDependOnAny(IEnumerable types) => DoNotDependOnAny(new ObjectProvider(types)); + public TRuleTypeShouldConjunction DoNotDependOnAny(IEnumerable types) => DoNotDependOnAny(new SystemTypeObjectProvider(types)); + + public TRuleTypeShouldConjunction DoNotHaveAnyAttributes() => DoNotHaveAnyAttributes(new ObjectProvider()); + public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(params Attribute[] attributes) => DoNotHaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(params Type[] attributes) => DoNotHaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(IObjectProvider attributes) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes)); + public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(IEnumerable attributes) => DoNotHaveAnyAttributes(new ObjectProvider(attributes)); + public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(IEnumerable attributes) => DoNotHaveAnyAttributes(new SystemTypeObjectProvider(attributes)); + + public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithArguments(IEnumerable argumentValues) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithArguments(argumentValues)); + + public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments(Attribute attribute, IEnumerable argumentValues) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments(attribute.FullName, _ => attribute, argumentValues)); + public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments(Type attribute, IEnumerable argumentValues) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), argumentValues)); + + public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithNamedArguments(IEnumerable<(string, object)> attributeArguments) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithNamedArguments(attributeArguments)); + public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithNamedArguments(params (string, object)[] attributeArguments) => DoNotHaveAnyAttributesWithNamedArguments((IEnumerable<(string, object)>)attributeArguments); + + public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments(Attribute attribute, IEnumerable<(string, object)> attributeArguments) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments(attribute.FullName, _ => attribute, attributeArguments)); + public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments(Attribute attribute, params (string, object)[] attributeArguments) => DoNotHaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments(Type attribute, IEnumerable<(string, object)> attributeArguments) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments(attribute.FullName, architecture => architecture.GetAttributeOfType(attribute), attributeArguments)); + public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments(Type attribute, params (string, object)[] attributeArguments) => DoNotHaveAttributeWithNamedArguments(attribute, (IEnumerable<(string, object)>)attributeArguments); + + public TRuleTypeShouldConjunction DoNotHaveName(string name) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveName(name)); + public TRuleTypeShouldConjunction DoNotHaveNameMatching(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveNameMatching(pattern)); + public TRuleTypeShouldConjunction DoNotHaveNameStartingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveNameStartingWith(pattern)); + public TRuleTypeShouldConjunction DoNotHaveNameEndingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveNameEndingWith(pattern)); + public TRuleTypeShouldConjunction DoNotHaveNameContaining(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveNameContaining(pattern)); + + public TRuleTypeShouldConjunction DoNotHaveFullName(string fullName) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveFullName(fullName)); + public TRuleTypeShouldConjunction DoNotHaveFullNameMatching(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveFullNameMatching(pattern)); + public TRuleTypeShouldConjunction DoNotHaveFullNameStartingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveFullNameStartingWith(pattern)); + public TRuleTypeShouldConjunction DoNotHaveFullNameEndingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveFullNameEndingWith(pattern)); + public TRuleTypeShouldConjunction DoNotHaveFullNameContaining(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveFullNameContaining(pattern)); + + public TRuleTypeShouldConjunction DoNotHaveAssemblyQualifiedName(string assemblyQualifiedName) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedName(assemblyQualifiedName)); + public TRuleTypeShouldConjunction DoNotHaveAssemblyQualifiedNameMatching(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameMatching(pattern)); + public TRuleTypeShouldConjunction DoNotHaveAssemblyQualifiedNameStartingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameStartingWith(pattern)); + public TRuleTypeShouldConjunction DoNotHaveAssemblyQualifiedNameEndingWith(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameEndingWith(pattern)); + public TRuleTypeShouldConjunction DoNotHaveAssemblyQualifiedNameContaining(string pattern) => ContinueComplexCondition(ObjectPredicatesDefinition.DoNotHaveAssemblyQualifiedNameContaining(pattern)); + + public TRuleTypeShouldConjunction AreNotPrivate() => ContinueComplexCondition(ObjectPredicatesDefinition.AreNotPrivate()); + public TRuleTypeShouldConjunction AreNotPublic() => ContinueComplexCondition(ObjectPredicatesDefinition.AreNotPublic()); + public TRuleTypeShouldConjunction AreNotProtected() => ContinueComplexCondition(ObjectPredicatesDefinition.AreNotProtected()); + public TRuleTypeShouldConjunction AreNotInternal() => ContinueComplexCondition(ObjectPredicatesDefinition.AreNotInternal()); + public TRuleTypeShouldConjunction AreNotProtectedInternal() => ContinueComplexCondition(ObjectPredicatesDefinition.AreNotProtectedInternal()); + public TRuleTypeShouldConjunction AreNotPrivateProtected() => ContinueComplexCondition(ObjectPredicatesDefinition.AreNotPrivateProtected()); + // csharpier-ignore-end + + private TRuleTypeShouldConjunction ContinueComplexCondition( IPredicate predicate ) { _ruleCreator.ContinueComplexCondition(predicate); return Create(_ruleCreator); } - - public TRuleTypeShouldConjunction FollowCustomPredicate( - Func predicate, - string description - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.FollowCustomPredicate( - predicate, - description - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyDependOn( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyDependOn(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyDependOn( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(Type firstType, params Type[] moreTypes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IType firstType, params IType[] moreTypes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IObjectProvider types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyDependOn(IEnumerable types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyDependOn(types) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use HaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction HaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes(IObjectProvider attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyHaveAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use OnlyHaveAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction OnlyHaveAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes(IObjectProvider attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction OnlyHaveAttributes(IEnumerable attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.OnlyHaveAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributesWithArguments( - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributesWithArguments( - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributesWithNamedArguments( - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAnyAttributesWithNamedArguments( - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either HaveName() without the useRegularExpressions parameter or HaveNameMatching() should be used" - )] - public TRuleTypeShouldConjunction HaveName(string pattern, bool useRegularExpressions) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveName(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveName(string name) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveName(name) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameMatching(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either HaveFullName() without the useRegularExpressions parameter or HaveFullNameMatching() should be used" - )] - public TRuleTypeShouldConjunction HaveFullName(string pattern, bool useRegularExpressions) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveFullName( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveFullName(string fullName) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveFullName(fullName) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveFullNameMatching(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveFullNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameStartingWith(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveNameStartingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameEndingWith(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveNameEndingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveNameContaining(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction HaveFullNameContaining(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.HaveFullNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction ArePrivate() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.ArePrivate() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction ArePublic() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.ArePublic() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreProtected() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreProtected() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreInternal() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreInternal() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreProtectedInternal() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreProtectedInternal() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction ArePrivateProtected() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.ArePrivateProtected() - ); - return Create(_ruleCreator); - } - - //Negations - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNot(string pattern, bool useRegularExpressions = false) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNot(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNot(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNot( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNot(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNot( - ICanBeAnalyzed firstObject, - params ICanBeAnalyzed[] moreObjects - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNot(firstObject, moreObjects) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNot(IEnumerable objects) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNot(objects) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNot(IObjectProvider objects) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNot(objects) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotCallAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotCallAny( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotCallAny(MethodMembers().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotCallAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotCallAny( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotCallAny( - MethodMember method, - params MethodMember[] moreMethods - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotCallAny(method, moreMethods) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotCallAny(IEnumerable methods) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotCallAny(methods) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotCallAny(IObjectProvider methods) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotCallAny(methods) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotDependOnAny( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotDependOnAny(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotDependOnAny( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotDependOnAny(Type firstType, params Type[] moreTypes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotDependOnAny( - IType firstType, - params IType[] moreTypes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny(firstType, moreTypes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotDependOnAny(IObjectProvider types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotDependOnAny(IEnumerable types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny(types) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotDependOnAny(IEnumerable types) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotDependOnAny(types) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use DoNotHaveAnyAttributes(Attributes().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes( - Type firstAttribute, - params Type[] moreAttributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes( - Attribute firstAttribute, - params Attribute[] moreAttributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes( - firstAttribute, - moreAttributes - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes( - IObjectProvider attributes - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributes(IEnumerable attributes) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributes(attributes) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithArguments( - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithArguments( - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithArguments( - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithArguments( - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments( - Attribute attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments( - Attribute attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments( - Type attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments( - Type attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithNamedArguments( - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithNamedArguments( - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAnyAttributesWithNamedArguments( - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAnyAttributesWithNamedArguments( - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments( - string attribute, - IEnumerable argumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - argumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction DoNotHaveAttributeWithArguments( - string attribute, - object firstArgumentValue, - params object[] moreArgumentValues - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithArguments( - attribute, - firstArgumentValue, - moreArgumentValues - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments( - string attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments( - string attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments( - Attribute attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments( - Type attribute, - IEnumerable<(string, object)> attributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - attributeArguments - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveAttributeWithNamedArguments( - Type attribute, - (string, object) firstAttributeArgument, - params (string, object)[] moreAttributeArguments - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveAttributeWithNamedArguments( - attribute, - firstAttributeArgument, - moreAttributeArguments - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either DoNotHaveName() without the useRegularExpressions parameter or DoNotHaveNameMatching() should be used" - )] - public TRuleTypeShouldConjunction DoNotHaveName(string pattern, bool useRegularExpressions) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveName( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveName(string name) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveName(name) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveNameMatching(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Either DoNotHaveFullName() without the useRegularExpressions parameter or DoNotHaveFullNameMatching() should be used" - )] - public TRuleTypeShouldConjunction DoNotHaveFullName( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveFullName( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveFullName(string fullName) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveFullName(fullName) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveFullNameMatching(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveFullNameMatching(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveNameStartingWith(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveNameStartingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveNameEndingWith(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveNameEndingWith(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveNameContaining(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction DoNotHaveFullNameContaining(string pattern) - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.DoNotHaveFullNameContaining(pattern) - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNotPrivate() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNotPrivate() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNotPublic() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNotPublic() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNotProtected() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNotProtected() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNotInternal() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNotInternal() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNotProtectedInternal() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNotProtectedInternal() - ); - return Create(_ruleCreator); - } - - public TRuleTypeShouldConjunction AreNotPrivateProtected() - { - _ruleCreator.ContinueComplexCondition( - ObjectPredicatesDefinition.AreNotPrivateProtected() - ); - return Create(_ruleCreator); - } } } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/GivenTypesThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/GivenTypesThat.cs index 01fc07078..3444079eb 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/GivenTypesThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/GivenTypesThat.cs @@ -31,34 +31,6 @@ public TGivenRuleTypeConjunction Are(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.AreAssignableTo(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.AreAssignableTo(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction AreAssignableTo(IType firstType, params IType[] moreTypes) { _ruleCreator.AddPredicate( @@ -145,23 +117,6 @@ public TGivenRuleTypeConjunction AreStructs() return Create(_ruleCreator); } - [Obsolete( - "Use ImplementAnyInterfaces(Interfacs().That().HaveFullName(...)) instead. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction ImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.ImplementInterface( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction ImplementInterface(Interface intf) { _ruleCreator.AddPredicate(TypePredicatesDefinition.ImplementInterface(intf)); @@ -183,23 +138,6 @@ public TGivenRuleTypeConjunction ImplementInterface(Type intf) public TGivenRuleTypeConjunction ImplementAnyInterfaces(IObjectProvider interfaces) => Handle(TypePredicatesDefinition.ImplementAny(interfaces)); // csharpier-ignore-end - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - public TGivenRuleTypeConjunction ResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.ResideInNamespace( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction ResideInNamespace(string fullName) { _ruleCreator.AddPredicate( @@ -216,24 +154,6 @@ public TGivenRuleTypeConjunction ResideInNamespaceMatching(string pattern) return Create(_ruleCreator); } - /// Matches the types that reside in the assembly. - /// Name of the assembly to match. - /// Indicates if pattern shall be considered a regular expression. - /// In case of not using regular expression pattern has to be Assembly Full Name. - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - public TGivenRuleTypeConjunction ResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.ResideInAssembly(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction ResideInAssembly(string fullName) { _ruleCreator.AddPredicate( @@ -324,40 +244,6 @@ public TGivenRuleTypeConjunction AreNot(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreNotAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.AreNotAssignableTo( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - public TGivenRuleTypeConjunction AreNotAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.AreNotAssignableTo( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction AreNotAssignableTo( IType firstType, params IType[] moreTypes @@ -419,23 +305,6 @@ public TGivenRuleTypeConjunction AreNotStructs() return Create(_ruleCreator); } - [Obsolete( - "Use DoNotImplementAnyInterfaces(Interfaces().That().HaveFullName(...)) instead. This will be removed in a future update." - )] - public TGivenRuleTypeConjunction DoNotImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.DoNotImplementInterface( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction DoNotImplementInterface(Interface intf) { _ruleCreator.AddPredicate( @@ -461,23 +330,6 @@ public TGivenRuleTypeConjunction DoNotImplementInterface(Type intf) public TGivenRuleTypeConjunction DoNotImplementAnyInterfaces(IObjectProvider interfaces) => Handle(TypePredicatesDefinition.DoNotImplementAny(interfaces)); // csharpier-ignore-end - [Obsolete( - "Either DoNotResideInNamespace() without the useRegularExpressions parameter or DoNotResideInNamespaceMatching() should be used" - )] - public TGivenRuleTypeConjunction DoNotResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.DoNotResideInNamespace( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction DoNotResideInNamespace(string fullName) { _ruleCreator.AddPredicate( @@ -494,23 +346,6 @@ public TGivenRuleTypeConjunction DoNotResideInNamespaceMatching(string pattern) return Create(_ruleCreator); } - [Obsolete( - "Either DoNotResideInAssembly() without the useRegularExpressions parameter or DoNotResideInAssemblyMatching() should be used" - )] - public TGivenRuleTypeConjunction DoNotResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddPredicate( - TypePredicatesDefinition.DoNotResideInAssembly( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TGivenRuleTypeConjunction DoNotResideInAssembly(string fullName) { _ruleCreator.AddPredicate( diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypeConditions.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypeConditions.cs index ff747a679..ef631f0e3 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypeConditions.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypeConditions.cs @@ -12,18 +12,6 @@ public interface ITypeConditions TReturnType Be(Type firstType, params Type[] moreTypes); TReturnType Be(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType BeAssignableTo(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType BeAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType BeAssignableTo(IType firstType, params IType[] moreTypes); TReturnType BeAssignableTo(Type type, params Type[] moreTypes); TReturnType BeAssignableTo(IObjectProvider types); @@ -33,10 +21,6 @@ TReturnType BeAssignableTo( TReturnType BeEnums(); TReturnType BeStructs(); - [Obsolete( - "Use ImplementAnyInterfacesThat().HaveFullName(...) instead. This will be removed in a future update." - )] - TReturnType ImplementInterface(string pattern, bool useRegularExpressions = false); TReturnType ImplementInterface(Interface intf); TReturnType ImplementInterface(Type intf); @@ -47,17 +31,9 @@ TReturnType BeAssignableTo( TReturnType ImplementAnyInterfaces(IEnumerable interfaces); TReturnType ImplementAnyInterfaces(IObjectProvider interfaces); - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - TReturnType ResideInNamespace(string pattern, bool useRegularExpressions); TReturnType ResideInNamespace(string fullName); TReturnType ResideInNamespaceMatching(string pattern); - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - TReturnType ResideInAssembly(string pattern, bool useRegularExpressions); TReturnType ResideInAssembly(string fullName); TReturnType ResideInAssemblyMatching(string pattern); TReturnType ResideInAssembly(Assembly assembly, params Assembly[] moreAssemblies); @@ -76,18 +52,6 @@ params Domain.Assembly[] moreAssemblies TReturnType NotBe(Type firstType, params Type[] moreTypes); TReturnType NotBe(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType NotBeAssignableTo(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType NotBeAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType NotBeAssignableTo(IType type, params IType[] moreTypes); TReturnType NotBeAssignableTo(Type type, params Type[] moreTypes); TReturnType NotBeAssignableTo(IObjectProvider types); @@ -97,10 +61,6 @@ TReturnType NotBeAssignableTo( TReturnType NotBeEnums(); TReturnType NotBeStructs(); - [Obsolete( - "Use NotImplementAnyInterfacesThat().HaveFullName(...) instead. This will be removed in a future update." - )] - TReturnType NotImplementInterface(string pattern, bool useRegularExpressions = false); TReturnType NotImplementInterface(Interface intf); TReturnType NotImplementInterface(Type intf); @@ -111,19 +71,10 @@ TReturnType NotBeAssignableTo( TReturnType NotImplementAnyInterfaces(IEnumerable interfaces); TReturnType NotImplementAnyInterfaces(IObjectProvider interfaces); - [Obsolete( - "Either NotResideInNamespace() without the useRegularExpressions parameter or NotResideInNamespaceMatching() should be used" - )] - TReturnType NotResideInNamespace(string pattern, bool useRegularExpressions); TReturnType NotResideInNamespace(string fullName); TReturnType NotResideInNamespaceMatching(string pattern); - [Obsolete( - "Either NotResideInAssembly() without the useRegularExpressions parameter or NotResideInAssemblyMatching() should be used" - )] - TReturnType NotResideInAssembly(string fullName); TReturnType NotResideInAssemblyMatching(string pattern); - TReturnType NotResideInAssembly(string pattern, bool useRegularExpressions); TReturnType NotResideInAssembly(Assembly assembly, params Assembly[] moreAssemblies); TReturnType NotResideInAssembly( Domain.Assembly assembly, diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypePredicates.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypePredicates.cs index ca5b2b36f..03449a678 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypePredicates.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/ITypePredicates.cs @@ -12,18 +12,6 @@ public interface ITypePredicates TReturnType Are(Type firstType, params Type[] moreTypes); TReturnType Are(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType AreAssignableTo(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType AreAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType AreAssignableTo(IType firstType, params IType[] moreTypes); TReturnType AreAssignableTo(Type type, params Type[] moreTypes); TReturnType AreAssignableTo(IObjectProvider types); @@ -33,10 +21,6 @@ TReturnType AreAssignableTo( TReturnType AreEnums(); TReturnType AreStructs(); - [Obsolete( - "Use ImplementAnyInterfaces(Interfaces().That().HaveFullName(...)) instead. This will be removed in a future update." - )] - TReturnType ImplementInterface(string pattern, bool useRegularExpressions = false); TReturnType ImplementInterface(Interface intf); TReturnType ImplementInterface(Type intf); @@ -47,17 +31,9 @@ TReturnType AreAssignableTo( TReturnType ImplementAnyInterfaces(IEnumerable interfaces); TReturnType ImplementAnyInterfaces(IObjectProvider interfaces); - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - TReturnType ResideInNamespace(string pattern, bool useRegularExpressions); TReturnType ResideInNamespace(string fullName); TReturnType ResideInNamespaceMatching(string pattern); - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - TReturnType ResideInAssembly(string pattern, bool useRegularExpressions); TReturnType ResideInAssembly(string fullName); TReturnType ResideInAssemblyMatching(string pattern); TReturnType ResideInAssembly(Assembly assembly, params Assembly[] moreAssemblies); @@ -76,18 +52,6 @@ params Domain.Assembly[] moreAssemblies TReturnType AreNot(Type firstType, params Type[] moreTypes); TReturnType AreNot(IEnumerable types); - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType AreNotAssignableTo(string pattern, bool useRegularExpressions = false); - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - TReturnType AreNotAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ); TReturnType AreNotAssignableTo(IType type, params IType[] moreTypes); TReturnType AreNotAssignableTo(Type type, params Type[] moreTypes); TReturnType AreNotAssignableTo(IObjectProvider types); @@ -97,10 +61,6 @@ TReturnType AreNotAssignableTo( TReturnType AreNotEnums(); TReturnType AreNotStructs(); - [Obsolete( - "Use DoNotImplementAnyInterfaces(Interfaces().That().HaveFullName(...)) instead. This will be removed in a future update." - )] - TReturnType DoNotImplementInterface(string pattern, bool useRegularExpressions = false); TReturnType DoNotImplementInterface(Interface intf); TReturnType DoNotImplementInterface(Type intf); @@ -111,16 +71,8 @@ TReturnType AreNotAssignableTo( TReturnType DoNotImplementAnyInterfaces(IEnumerable interfaces); TReturnType DoNotImplementAnyInterfaces(IObjectProvider interfaces); - [Obsolete( - "Either DoNotResideInNamespace() without the useRegularExpressions parameter or DoNotResideInNamespaceMatching() should be used" - )] - TReturnType DoNotResideInNamespace(string pattern, bool useRegularExpressions); TReturnType DoNotResideInNamespace(string fullName); - [Obsolete( - "Either DoNotResideInAssembly() without the useRegularExpressions parameter or DoNotResideInAssemblyMatching() should be used" - )] - TReturnType DoNotResideInAssembly(string pattern, bool useRegularExpressions); TReturnType DoNotResideInAssembly(string fullName); TReturnType DoNotResideInAssemblyMatching(string pattern); TReturnType DoNotResideInAssembly(Assembly assembly, params Assembly[] moreAssemblies); diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/ShouldRelateToTypesThat.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/ShouldRelateToTypesThat.cs index ad279b222..7d273560c 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/ShouldRelateToTypesThat.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/ShouldRelateToTypesThat.cs @@ -33,40 +33,6 @@ public TRuleTypeShouldConjunction Are(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.AreAssignableTo( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.AreAssignableTo( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction AreAssignableTo(IType firstType, params IType[] moreTypes) { _ruleCreator.ContinueComplexCondition( @@ -171,23 +137,6 @@ public TRuleTypeShouldConjunction AreStructs() return Create(_ruleCreator); } - [Obsolete( - "Use ImplementAnyInterfaces(Interfacs().That().HaveFullName(...)) instead. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction ImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.ImplementInterface( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction ImplementInterface(Interface intf) { _ruleCreator.ContinueComplexCondition( @@ -213,23 +162,6 @@ public TRuleTypeShouldConjunction ImplementInterface(Type intf) public TRuleTypeShouldConjunction ImplementAnyInterfaces(IObjectProvider interfaces) => Handle(TypePredicatesDefinition.ImplementAny(interfaces)); // csharpier-ignore-end - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - public TRuleTypeShouldConjunction ResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.ResideInNamespace( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction ResideInNamespace(string fullName) { _ruleCreator.ContinueComplexCondition( @@ -246,23 +178,6 @@ public TRuleTypeShouldConjunction ResideInNamespaceMatching(string pattern) return Create(_ruleCreator); } - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - public TRuleTypeShouldConjunction ResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.ResideInAssembly( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction ResideInAssembly(string fullName) { _ruleCreator.ContinueComplexCondition( @@ -359,40 +274,6 @@ public TRuleTypeShouldConjunction AreNot(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNotAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.AreNotAssignableTo( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction AreNotAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.AreNotAssignableTo( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction AreNotAssignableTo( IType firstType, params IType[] moreTypes @@ -463,23 +344,6 @@ public TRuleTypeShouldConjunction AreNotStructs() return Create(_ruleCreator); } - [Obsolete( - "Use DoNotImplementAnyInterfaces(Interfaces().That().HaveFullName(...)) instead. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction DoNotImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.DoNotImplementInterface( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction DoNotImplementInterface(Interface intf) { _ruleCreator.ContinueComplexCondition( @@ -505,23 +369,6 @@ public TRuleTypeShouldConjunction DoNotImplementInterface(Type intf) public TRuleTypeShouldConjunction DoNotImplementAnyInterfaces(IObjectProvider interfaces) => Handle(TypePredicatesDefinition.DoNotImplementAny(interfaces)); // csharpier-ignore-end - [Obsolete( - "Either DoNotResideInNamespace() without the useRegularExpressions parameter or DoNotResideInNamespaceMatching() should be used" - )] - public TRuleTypeShouldConjunction DoNotResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.DoNotResideInNamespace( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction DoNotResideInNamespace(string fullName) { _ruleCreator.ContinueComplexCondition( @@ -538,23 +385,6 @@ public TRuleTypeShouldConjunction DoNotResideInNamespaceMatching(string pattern) return Create(_ruleCreator); } - [Obsolete( - "Either DoNotResideInAssembly() without the useRegularExpressions parameter or DoNotResideInAssemblyMatching() should be used" - )] - public TRuleTypeShouldConjunction DoNotResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.ContinueComplexCondition( - TypePredicatesDefinition.DoNotResideInAssembly( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction DoNotResideInAssembly(string fullName) { _ruleCreator.ContinueComplexCondition( diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/TypeConditionsDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/TypeConditionsDefinition.cs index 6d91968a5..bfe0a5f6f 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/TypeConditionsDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/TypeConditionsDefinition.cs @@ -7,7 +7,6 @@ using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Domain.PlantUml.Import; using ArchUnitNET.Fluent.Conditions; -using static ArchUnitNET.Fluent.Syntax.DescriptionHelpers; using Enum = ArchUnitNET.Domain.Enum; namespace ArchUnitNET.Fluent.Syntax.Elements.Types @@ -85,87 +84,6 @@ Architecture architecture return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeAssignableTo(Types().That().HaveFullName()) instead" - )] - public static ICondition BeAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - var description = - "be assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - var failDescription = - "is not assignable to a type with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - return new SimpleCondition( - type => type.IsAssignableTo(pattern, useRegularExpressions), - description, - failDescription - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeAssignableTo(Types().That().HaveFullName()) instead" - )] - public static ICondition BeAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(TRuleType ruleType) - { - return patternList.Any(pattern => - ruleType.IsAssignableTo(pattern, useRegularExpressions) - ); - } - - string description; - string failDescription; - if (patternList.IsNullOrEmpty()) - { - description = "be assignable to no types (always false)"; - failDescription = "is assignable to any type (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "be assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - failDescription = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "is not assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description, failDescription); - } - public static RelationCondition BeTypesThat() { return new RelationCondition( @@ -545,29 +463,6 @@ public static ICondition BeStructs() ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition ImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - type => type.ImplementsInterface(pattern, useRegularExpressions), - "implement interface with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does not implement interface with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static ICondition ImplementInterface(Interface intf) { return new SimpleCondition( @@ -668,34 +563,14 @@ Architecture architecture } } - var description = SelectDescription( + var description = interfaces.FormatDescription( "implement any interface", "implement", - "implement any", - interfaces + "implement any" ); return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - public static ICondition ResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - return new SimpleCondition( - type => type.ResidesInNamespace(pattern, useRegularExpressions), - obj => "does reside in " + obj.Namespace.FullName, - "reside in namespace with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static ICondition ResideInNamespace(string fullName) { return new SimpleCondition( @@ -714,25 +589,6 @@ public static ICondition ResideInNamespaceMatching(string pattern) ); } - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - public static ICondition ResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - return new SimpleCondition( - type => type.ResidesInAssembly(pattern, useRegularExpressions), - obj => "does reside in " + obj.Assembly.FullName, - "reside in assembly with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static ICondition ResideInAssembly(string fullName) { return new SimpleCondition( @@ -769,7 +625,7 @@ bool Condition(TRuleType ruleType, Architecture architecture) (current, asm) => current + " or \"" + asm.FullName + "\"" ); - return new ArchitectureCondition( + return new OrderedArchitectureCondition( Condition, (type, architecture) => "does reside in " + type.Assembly.FullName, description @@ -997,93 +853,6 @@ Architecture architecture return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeAssignableTo(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBeAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - ConditionResult Condition(TRuleType ruleType) - { - var pass = true; - var dynamicFailDescription = "is assignable to"; - foreach (var type in ruleType.GetAssignableTypes()) - { - if (type.FullNameMatches(pattern, useRegularExpressions)) - { - dynamicFailDescription += (pass ? " " : " and ") + type.FullName; - pass = false; - } - } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - var description = - "not be assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - return new SimpleCondition(Condition, description); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeAssignableTo(Types().That().HaveFullName()) instead" - )] - public static ICondition NotBeAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - ConditionResult Condition(TRuleType ruleType) - { - var pass = true; - var dynamicFailDescription = "is assignable to"; - foreach (var type in ruleType.GetAssignableTypes()) - { - if ( - patternList.Any(pattern => - type.FullNameMatches(pattern, useRegularExpressions) - ) - ) - { - dynamicFailDescription += (pass ? " " : " and ") + type.FullName; - pass = false; - } - } - - return new ConditionResult(ruleType, pass, dynamicFailDescription); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "not be assignable to no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "not be assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimpleCondition(Condition, description); - } - public static ICondition NotBeAssignableTo( IType firstType, params IType[] moreTypes @@ -1322,29 +1091,6 @@ public static ICondition NotBeStructs() ); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static ICondition NotImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimpleCondition( - type => !type.ImplementsInterface(pattern, useRegularExpressions), - "not implement interface with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"", - "does implement interface with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static ICondition NotImplementInterface(Interface intf) { return new SimpleCondition( @@ -1439,34 +1185,14 @@ Architecture architecture } } - var description = SelectDescription( + var description = interfaces.FormatDescription( "not implement any interface", "not implement", - "not implement any", - interfaces + "not implement any" ); return new ArchitectureCondition(Condition, description); } - [Obsolete( - "Either NotResideInNamespace() without the useRegularExpressions parameter or NotResideInNamespaceMatching() should be used" - )] - public static ICondition NotResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - return new SimpleCondition( - type => !type.ResidesInNamespace(pattern, useRegularExpressions), - obj => "does reside in " + obj.Namespace.FullName, - "not reside in namespace with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static ICondition NotResideInNamespace(string fullName) { return new SimpleCondition( @@ -1485,25 +1211,6 @@ public static ICondition NotResideInNamespaceMatching(string pattern) ); } - [Obsolete( - "Either NotResideInAssembly() without the useRegularExpressions parameter or NotResideInAssemblyMatching() should be used" - )] - public static ICondition NotResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - return new SimpleCondition( - type => !type.ResidesInAssembly(pattern, useRegularExpressions), - obj => "does reside in " + obj.Assembly.FullName, - "not reside in assembly with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static ICondition NotResideInAssembly(string fullName) { return new SimpleCondition( @@ -1540,7 +1247,7 @@ bool Condition(TRuleType ruleType, Architecture architecture) (current, asm) => current + " or \"" + asm.FullName + "\"" ); - return new ArchitectureCondition( + return new OrderedArchitectureCondition( Condition, (type, architecture) => "does reside in " + type.Assembly.FullName, description diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/TypePredicatesDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/TypePredicatesDefinition.cs index 455ee5436..3244b7f6d 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/TypePredicatesDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/TypePredicatesDefinition.cs @@ -5,7 +5,6 @@ using ArchUnitNET.Domain.Exceptions; using ArchUnitNET.Domain.Extensions; using ArchUnitNET.Fluent.Predicates; -using static ArchUnitNET.Fluent.Syntax.DescriptionHelpers; using Assembly = System.Reflection.Assembly; using Enum = ArchUnitNET.Domain.Enum; @@ -64,67 +63,6 @@ IEnumerable Filter(IEnumerable ruleTypes, Architecture architecture) return new ArchitecturePredicate(Filter, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - var description = - "are assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - return new SimplePredicate( - type => type.IsAssignableTo(pattern, useRegularExpressions), - description - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreAssignableTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(T ruleType) - { - return patternList.Any(pattern => - ruleType.IsAssignableTo(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "are assignable to no types (always false)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "are assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate AreAssignableTo(IType firstType, params IType[] moreTypes) { IEnumerable Condition(IEnumerable ruleTypes) @@ -371,24 +309,6 @@ public static IPredicate AreStructs() return new SimplePredicate(type => type is Struct, "are structs"); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate ImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - type => type.ImplementsInterface(pattern, useRegularExpressions), - "implement interface with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static IPredicate ImplementInterface(Interface intf) { return new SimplePredicate( @@ -432,30 +352,14 @@ IEnumerable Condition(IEnumerable ruleTypes, Architecture architecture) : type.ImplementedInterfaces.Any() ); } - var description = SelectDescription( + var description = interfaces.FormatDescription( "implement any interface", "implement", - "implement any", - interfaces + "implement any" ); return new ArchitecturePredicate(Condition, description); } - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - public static IPredicate ResideInNamespace(string pattern, bool useRegularExpressions) - { - return new SimplePredicate( - type => type.ResidesInNamespace(pattern, useRegularExpressions), - "reside in namespace with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static IPredicate ResideInNamespace(string fullName) { return new SimplePredicate( @@ -472,21 +376,6 @@ public static IPredicate ResideInNamespaceMatching(string pattern) ); } - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - public static IPredicate ResideInAssembly(string pattern, bool useRegularExpressions) - { - return new SimplePredicate( - type => type.ResidesInAssembly(pattern, useRegularExpressions), - "reside in assembly with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static IPredicate ResideInAssembly(string fullName) { return new SimplePredicate( @@ -630,67 +519,6 @@ IEnumerable Filter(IEnumerable ruleTypes, Architecture architecture) return new ArchitecturePredicate(Filter, description); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNotAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - var description = - "are not assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\""; - return new SimplePredicate( - type => !type.IsAssignableTo(pattern, useRegularExpressions), - description - ); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use AreNotAssignableTo(Types().That().HaveFullName()) instead" - )] - public static IPredicate AreNotAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - var patternList = patterns.ToList(); - - bool Condition(T ruleType) - { - return patternList.All(pattern => - !ruleType.IsAssignableTo(pattern, useRegularExpressions) - ); - } - - string description; - if (patternList.IsNullOrEmpty()) - { - description = "are not assignable to no types (always true)"; - } - else - { - var firstPattern = patternList.First(); - description = patternList - .Where(type => !type.Equals(firstPattern)) - .Distinct() - .Aggregate( - "are not assignable to types with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + firstPattern - + "\"", - (current, pattern) => current + " or \"" + pattern + "\"" - ); - } - - return new SimplePredicate(Condition, description); - } - public static IPredicate AreNotAssignableTo(IType firstType, params IType[] moreTypes) { IEnumerable Condition(IEnumerable ruleTypes) @@ -829,24 +657,6 @@ public static IPredicate AreNotStructs() return new SimplePredicate(cls => !(cls is Struct), "are not structs"); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update." - )] - public static IPredicate DoNotImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - return new SimplePredicate( - type => !type.ImplementsInterface(pattern, useRegularExpressions), - "do not implement interface with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static IPredicate DoNotImplementInterface(Interface intf) { return new SimplePredicate( @@ -890,33 +700,14 @@ IEnumerable Condition(IEnumerable ruleTypes, Architecture architecture) : !type.ImplementedInterfaces.Any() ); } - var description = SelectDescription( + var description = interfaces.FormatDescription( "do not implement any interface", "do not implement", - "do not implement any", - interfaces + "do not implement any" ); return new ArchitecturePredicate(Condition, description); } - [Obsolete( - "Either DoNotResideInNamespace() without the useRegularExpressions parameter or DoNotResideInNamespaceMatching() should be used" - )] - public static IPredicate DoNotResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - return new SimplePredicate( - type => !type.ResidesInNamespace(pattern, useRegularExpressions), - "do not reside in namespace with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static IPredicate DoNotResideInNamespace(string fullName) { return new SimplePredicate( @@ -933,24 +724,6 @@ public static IPredicate DoNotResideInNamespaceMatching(string pattern) ); } - [Obsolete( - "Either DoNotResideInAssembly() without the useRegularExpressions parameter or DoNotResideInAssemblyMatching() should be used" - )] - public static IPredicate DoNotResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - return new SimplePredicate( - type => !type.ResidesInAssembly(pattern, useRegularExpressions), - "do not reside in assembly with full name " - + (useRegularExpressions ? "matching " : "") - + "\"" - + pattern - + "\"" - ); - } - public static IPredicate DoNotResideInAssembly(string fullName) { return new SimplePredicate( diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Types/TypesShould.cs b/ArchUnitNET/Fluent/Syntax/Elements/Types/TypesShould.cs index e638df57b..c730f3917 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Types/TypesShould.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Types/TypesShould.cs @@ -31,34 +31,6 @@ public TRuleTypeShouldConjunction Be(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction BeAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.BeAssignableTo(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use BeAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction BeAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.BeAssignableTo(patterns, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public ShouldRelateToTypesThat BeTypesThat() { _ruleCreator.BeginComplexCondition( @@ -156,23 +128,6 @@ public TRuleTypeShouldConjunction BeStructs() return Create(_ruleCreator); } - [Obsolete( - "Use ImplementAnyInterfacesThat().HaveFullName(...) instead. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction ImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.ImplementInterface( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction ImplementInterface(Interface intf) { _ruleCreator.AddCondition(TypeConditionsDefinition.ImplementInterface(intf)); @@ -194,23 +149,6 @@ public TRuleTypeShouldConjunction ImplementInterface(Type intf) public TRuleTypeShouldConjunction ImplementAnyInterfaces(IObjectProvider interfaces) => Handle(TypeConditionsDefinition.ImplementAny(interfaces)); // csharpier-ignore-end - [Obsolete( - "Either ResideInNamespace() without the useRegularExpressions parameter or ResideInNamespaceMatching() should be used" - )] - public TRuleTypeShouldConjunction ResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.ResideInNamespace( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction ResideInNamespace(string fullName) { _ruleCreator.AddCondition( @@ -227,20 +165,6 @@ public TRuleTypeShouldConjunction ResideInNamespaceMatching(string pattern) return Create(_ruleCreator); } - [Obsolete( - "Either ResideInAssembly() without the useRegularExpressions parameter or ResideInAssemblyMatching() should be used" - )] - public TRuleTypeShouldConjunction ResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.ResideInAssembly(pattern, useRegularExpressions) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction ResideInAssembly(string fullName) { _ruleCreator.AddCondition( @@ -362,40 +286,6 @@ public TRuleTypeShouldConjunction NotBe(IEnumerable types) return Create(_ruleCreator); } - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotBeAssignableTo( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.NotBeAssignableTo( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - - [Obsolete( - "Another overload of this method should be used. This will be removed in a future update. You can use NotBeAssignableTo(Types().That().HaveFullName()) instead" - )] - public TRuleTypeShouldConjunction NotBeAssignableTo( - IEnumerable patterns, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.NotBeAssignableTo( - patterns, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction NotBeAssignableTo( IType firstType, params IType[] moreTypes @@ -451,23 +341,6 @@ public TRuleTypeShouldConjunction NotBeStructs() return Create(_ruleCreator); } - [Obsolete( - "Use NotImplementAnyInterfacesThat().HaveFullName(...) instead. This will be removed in a future update." - )] - public TRuleTypeShouldConjunction NotImplementInterface( - string pattern, - bool useRegularExpressions = false - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.NotImplementInterface( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction NotImplementInterface(Interface intf) { _ruleCreator.AddCondition( @@ -493,23 +366,6 @@ public TRuleTypeShouldConjunction NotImplementInterface(Type intf) public TRuleTypeShouldConjunction NotImplementAnyInterfaces(IObjectProvider interfaces) => Handle(TypeConditionsDefinition.NotImplementAny(interfaces)); // csharpier-ignore-end - [Obsolete( - "Either NotResideInNamespace() without the useRegularExpressions parameter or NotResideInNamespaceMatching() should be used" - )] - public TRuleTypeShouldConjunction NotResideInNamespace( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.NotResideInNamespace( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction NotResideInNamespace(string fullName) { _ruleCreator.AddCondition( @@ -526,23 +382,6 @@ public TRuleTypeShouldConjunction NotResideInNamespaceMatching(string pattern) return Create(_ruleCreator); } - [Obsolete( - "Either NotResideInAssembly() without the useRegularExpressions parameter or NotResideInAssemblyMatching() should be used" - )] - public TRuleTypeShouldConjunction NotResideInAssembly( - string pattern, - bool useRegularExpressions - ) - { - _ruleCreator.AddCondition( - TypeConditionsDefinition.NotResideInAssembly( - pattern, - useRegularExpressions - ) - ); - return Create(_ruleCreator); - } - public TRuleTypeShouldConjunction NotResideInAssembly(string fullName) { _ruleCreator.AddCondition( diff --git a/ArchUnitNET/Loader/ArchBuilder.cs b/ArchUnitNET/Loader/ArchBuilder.cs index 095b0805b..db9af6a0d 100644 --- a/ArchUnitNET/Loader/ArchBuilder.cs +++ b/ArchUnitNET/Loader/ArchBuilder.cs @@ -113,15 +113,10 @@ public void LoadTypesForModule(ModuleDefinition module, string namespaceFilter) } }); - _namespaceRegistry - .Namespaces.Where(ns => RegexUtils.MatchNamespaces(namespaceFilter, ns.FullName)) - .ForEach(ns => - { - _loadTaskRegistry.Add( - typeof(AddTypesToNamespace), - new AddTypesToNamespace(ns, currentTypes) - ); - }); + _loadTaskRegistry.Add( + typeof(AddTypesToNamespaces), + new AddTypesToNamespaces(currentTypes) + ); } private void UpdateTypeDefinitions() @@ -138,7 +133,7 @@ private void UpdateTypeDefinitions() typeof(AddGenericArgumentDependencies), typeof(AddClassDependencies), typeof(AddBackwardsDependencies), - typeof(AddTypesToNamespace), + typeof(AddTypesToNamespaces), } ); } diff --git a/ArchUnitNET/Loader/LoadTasks/AddTypesToNamespace.cs b/ArchUnitNET/Loader/LoadTasks/AddTypesToNamespaces.cs similarity index 50% rename from ArchUnitNET/Loader/LoadTasks/AddTypesToNamespace.cs rename to ArchUnitNET/Loader/LoadTasks/AddTypesToNamespaces.cs index b8cfa2e8c..d934104f5 100644 --- a/ArchUnitNET/Loader/LoadTasks/AddTypesToNamespace.cs +++ b/ArchUnitNET/Loader/LoadTasks/AddTypesToNamespaces.cs @@ -4,20 +4,21 @@ namespace ArchUnitNET.Loader.LoadTasks { - internal class AddTypesToNamespace : ILoadTask + internal class AddTypesToNamespaces : ILoadTask { - private readonly Namespace _ns; private readonly List _types; - public AddTypesToNamespace(Namespace ns, List types) + public AddTypesToNamespaces(List types) { - _ns = ns; _types = types; } public void Execute() { - ((List)_ns.Types).AddRange(_types.Where(type => type.Namespace.Equals(_ns))); + foreach (var type in _types) + { + ((List)type.Namespace.Types).Add(type); + } } } } diff --git a/ArchUnitNETTests/ArchUnitNETTests.csproj b/ArchUnitNETTests/ArchUnitNETTests.csproj index 7195ae4ef..429c801c1 100644 --- a/ArchUnitNETTests/ArchUnitNETTests.csproj +++ b/ArchUnitNETTests/ArchUnitNETTests.csproj @@ -1,11 +1,14 @@ - net9.0 + net10.0 latest TNG Technology Consulting GmbH true true + + $(DefineConstants);WINDOWS + @@ -27,28 +30,29 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + - + - - Never - PreserveNewest - - + + + + Never + + Dependencies\cpplib\CppDllTest.dll diff --git a/ArchUnitNETTests/Dependencies/CppDependenciesTests.cs b/ArchUnitNETTests/Dependencies/CppDependenciesTests.cs index cc0722822..d0f251840 100644 --- a/ArchUnitNETTests/Dependencies/CppDependenciesTests.cs +++ b/ArchUnitNETTests/Dependencies/CppDependenciesTests.cs @@ -5,6 +5,7 @@ namespace ArchUnitNETTests.Dependencies { +#if WINDOWS public class CppDependenciesTests { private static readonly Architecture Architecture = new ArchLoader() @@ -26,6 +27,7 @@ internal class CppExampleClassUser { CppExampleClass _cppExampleClass = new CppExampleClass(); } +#endif /* * C++/CLI code contains the next .h .cpp content diff --git a/ArchUnitNETTests/Domain/AttributeArgumentTests.cs b/ArchUnitNETTests/Domain/AttributeArgumentTests.cs index bea2e095e..ef4ecc5db 100644 --- a/ArchUnitNETTests/Domain/AttributeArgumentTests.cs +++ b/ArchUnitNETTests/Domain/AttributeArgumentTests.cs @@ -116,384 +116,6 @@ public void AssignNamesToAttributeParameters() arg => arg.Name == "Parameter3" && (string)arg.Value == "param3_2" ); } - - [Fact] - public void FluentPredicatesTest() - { - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAttributeWithArguments(_attributeWithStringParameters, "param1_1") - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAnyAttributesWithArguments("param1_0") - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAnyAttributesWithNamedArguments(("Parameter2", "param2_1")) - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAnyAttributesWithNamedArguments( - ("Parameter2", "param2_1"), - ("Parameter3", "param3_2") - ) - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAnyAttributesWithArguments(null) - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .And() - .HaveAnyAttributesWithArguments(typeof(ClassWithArrayParameterAttribute)) - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .And() - .HaveAnyAttributesWithNamedArguments( - ("Type2", typeof(ClassWithArrayParameterAttribute)) - ) - .Should() - .Exist() - .Check(Architecture); - - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAnyAttributesWithNamedArguments(("Parameter2", "param1_1")) - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAttributeWithArguments(_attributeWithStringParameters, "non_existent") - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .And() - .HaveAnyAttributesWithNamedArguments( - ("Type3", typeof(ClassWithArrayParameterAttribute)) - ) - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .HaveAnyAttributesWithArguments("1") - .Should() - .NotExist() - .Check(Architecture); - - //Negations - - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAttributeWithArguments(_attributeWithStringParameters, "param1_1") - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAnyAttributesWithArguments("param1_0") - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAnyAttributesWithNamedArguments(("Parameter2", "param2_1")) - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAnyAttributesWithNamedArguments( - ("Parameter2", "param2_1"), - ("Parameter3", "param3_2") - ) - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAnyAttributesWithArguments(null) - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .And() - .DoNotHaveAnyAttributesWithArguments(typeof(ClassWithArrayParameterAttribute)) - .Should() - .NotExist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .And() - .DoNotHaveAnyAttributesWithNamedArguments( - ("Type2", typeof(ClassWithArrayParameterAttribute)) - ) - .Should() - .NotExist() - .Check(Architecture); - - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAnyAttributesWithNamedArguments(("Parameter2", "param1_1")) - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAttributeWithArguments(_attributeWithStringParameters, "non_existent") - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .And() - .DoNotHaveAnyAttributesWithNamedArguments( - ("Type3", typeof(ClassWithArrayParameterAttribute)) - ) - .Should() - .Exist() - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .And() - .DoNotHaveAnyAttributesWithArguments("1") - .Should() - .Exist() - .Check(Architecture); - } - - [Fact] - public void FluentConditionsTest() - { - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAttributeWithArguments(_attributeWithStringParameters, "param1_1") - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAnyAttributesWithArguments("param1_0") - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAnyAttributesWithNamedArguments(("Parameter2", "param2_1")) - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAnyAttributesWithNamedArguments( - ("Parameter2", "param2_1"), - ("Parameter3", "param3_2") - ) - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAnyAttributesWithArguments(null) - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .Should() - .HaveAnyAttributesWithArguments(typeof(ClassWithArrayParameterAttribute)) - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .Should() - .HaveAnyAttributesWithNamedArguments( - ("Type2", typeof(ClassWithArrayParameterAttribute)) - ) - .Check(Architecture); - - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAnyAttributesWithNamedArguments(("Parameter2", "param1_1")) - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAttributeWithArguments(_attributeWithStringParameters, "non_existent") - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .Should() - .HaveAnyAttributesWithNamedArguments( - ("Type3", typeof(ClassWithArrayParameterAttribute)) - ) - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .HaveAnyAttributesWithArguments("1") - .Check(Architecture) - ); - - //Negations - - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAttributeWithArguments(_attributeWithStringParameters, "param1_1") - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAnyAttributesWithArguments("param1_0") - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAnyAttributesWithNamedArguments(("Parameter2", "param2_1")) - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAnyAttributesWithNamedArguments( - ("Parameter2", "param2_1"), - ("Parameter3", "param3_2") - ) - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAnyAttributesWithArguments(null) - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .Should() - .NotHaveAnyAttributesWithArguments(typeof(ClassWithArrayParameterAttribute)) - .Check(Architecture) - ); - Assert.Throws(() => - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .Should() - .NotHaveAnyAttributesWithNamedArguments( - ("Type2", typeof(ClassWithArrayParameterAttribute)) - ) - .Check(Architecture) - ); - - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAnyAttributesWithNamedArguments(("Parameter2", "param1_1")) - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAttributeWithArguments(_attributeWithStringParameters, "non_existent") - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithTypeParameterAttribute)) - .Should() - .NotHaveAnyAttributesWithNamedArguments( - ("Type3", typeof(ClassWithArrayParameterAttribute)) - ) - .Check(Architecture); - Types() - .That() - .Are(typeof(ClassWithMultipleAttributesWithParameters)) - .Should() - .NotHaveAnyAttributesWithArguments("1") - .Check(Architecture); - } } [AttributeUsage(AttributeTargets.Class, AllowMultiple = true)] diff --git a/ArchUnitNETTests/Domain/PlantUml/PlantUmlFileBuilderTest.cs b/ArchUnitNETTests/Domain/PlantUml/PlantUmlFileBuilderTest.cs index 0a929769f..74d9a1045 100644 --- a/ArchUnitNETTests/Domain/PlantUml/PlantUmlFileBuilderTest.cs +++ b/ArchUnitNETTests/Domain/PlantUml/PlantUmlFileBuilderTest.cs @@ -141,10 +141,12 @@ public void HandleIllegalComponentNamesTest() new PlantUmlDependency("a", character, DependencyType.OneToOne) ); Assert.Throws(() => new PlantUmlClass(character)); - Assert.Throws(() => new PlantUmlInterface(character) + Assert.Throws(() => + new PlantUmlInterface(character) ); Assert.Throws(() => new PlantUmlSlice(character)); - Assert.Throws(() => new PlantUmlNamespace(character) + Assert.Throws(() => + new PlantUmlNamespace(character) ); } } diff --git a/ArchUnitNETTests/Fluent/NoErrorReferencingOfTypesOutsideOfArchitectureTests.cs b/ArchUnitNETTests/Fluent/NoErrorReferencingOfTypesOutsideOfArchitectureTests.cs index f5b51acc8..634f30025 100644 --- a/ArchUnitNETTests/Fluent/NoErrorReferencingOfTypesOutsideOfArchitectureTests.cs +++ b/ArchUnitNETTests/Fluent/NoErrorReferencingOfTypesOutsideOfArchitectureTests.cs @@ -33,81 +33,6 @@ private static void AssertNoException(Action action) Assert.Null(exception); } - [Fact] - public void HaveAttributeWithArgumentsTest() - { - var rule = Classes() - .That() - .Are(typeof(EmptyTestClass)) - .Should() - .HaveAttributeWithArguments(_classNotInArchitecture, Enumerable.Empty()); - var negation = Classes() - .That() - .Are(typeof(EmptyTestClass)) - .Should() - .NotHaveAttributeWithArguments(_classNotInArchitecture, Enumerable.Empty()); - Assert.Throws(() => rule.Check(Architecture)); - negation.Check(Architecture); - - AssertNoException(() => - Classes() - .That() - .HaveAttributeWithArguments(_classNotInArchitecture, Enumerable.Empty()) - .GetObjects(Architecture) - ); - AssertNoException(() => - Classes() - .That() - .DoNotHaveAttributeWithArguments( - _classNotInArchitecture, - Enumerable.Empty() - ) - .GetObjects(Architecture) - ); - } - - [Fact] - public void HaveAttributeWithNamedArgumentsTest() - { - var rule = Classes() - .That() - .Are(typeof(EmptyTestClass)) - .Should() - .HaveAttributeWithNamedArguments( - _classNotInArchitecture, - Enumerable.Empty<(string, object)>() - ); - var negation = Classes() - .That() - .Are(typeof(EmptyTestClass)) - .Should() - .NotHaveAttributeWithNamedArguments( - _classNotInArchitecture, - Enumerable.Empty<(string, object)>() - ); - Assert.Throws(() => rule.Check(Architecture)); - negation.Check(Architecture); - - AssertNoException(() => - Classes() - .That() - .HaveAttributeWithNamedArguments( - _classNotInArchitecture, - Enumerable.Empty<(string, object)>() - ) - .GetObjects(Architecture) - ); - AssertNoException(() => - Classes() - .That() - .DoNotHaveAttributeWithNamedArguments( - _classNotInArchitecture, - Enumerable.Empty<(string, object)>() - ) - .GetObjects(Architecture) - ); - } - [Fact] public void AreBeTest() { diff --git a/ArchUnitNETTests/Fluent/ObjectConditionsErrorMessagesTests.cs b/ArchUnitNETTests/Fluent/ObjectConditionsErrorMessagesTests.cs deleted file mode 100644 index 0405c3e57..000000000 --- a/ArchUnitNETTests/Fluent/ObjectConditionsErrorMessagesTests.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System.Linq; -using ArchUnitNET.Domain; -using ArchUnitNET.Fluent; -using TestAssembly; -using Xunit; -using static ArchUnitNET.Fluent.ArchRuleDefinition; - -namespace ArchUnitNETTests.Fluent -{ - public class ObjectConditionsErrorMessagesTests - { - private static readonly Architecture Architecture = - StaticTestArchitectures.ArchUnitNETTestAssemblyArchitecture; - - private void AssertFailsWithErrorMessage(IArchRule rule, string errorMessage) - { - var evaluationResults = rule.Evaluate(Architecture); - var failedResults = evaluationResults.Where(r => !r.Passed); - Assert.Equal(errorMessage, failedResults.Single().Description); - } - - [Fact] - public void OnlyListForbiddenITypesInError() - { - var rule = Classes() - .That() - .Are(typeof(Class1)) - .Should() - .NotDependOnAnyTypesThat() - .Are(typeof(Class2)); - AssertFailsWithErrorMessage( - rule, - "TestAssembly.Class1 does depend on TestAssembly.Class2" - ); - } - - [Fact] - public void OnlyListForbiddenTypesInError() - { - var rule = Classes().That().Are(typeof(Class1)).Should().NotDependOnAny(typeof(Class2)); - AssertFailsWithErrorMessage( - rule, - "TestAssembly.Class1 does depend on TestAssembly.Class2" - ); - } - - [Fact] - public void OnlyListForbiddenMethodsInErrors() - { - var rule = MethodMembers() - .That() - .AreDeclaredIn(typeof(ClassCallingOtherMethod)) - .Should() - .NotCallAny(MethodMembers().That().AreDeclaredIn(typeof(Class1))); - AssertFailsWithErrorMessage( - rule, - "System.Void TestAssembly.ClassCallingOtherMethod::CallingOther(TestAssembly.Class1)" - + " does call System.String TestAssembly.Class1::AccessClass2(System.Int32)" - ); - } - - [Fact] - public void OnlyListForbiddenMethodsFromEnumerableInErrors() - { - var methodsInClass1 = MethodMembers() - .That() - .AreDeclaredIn(typeof(Class1)) - .GetObjects(Architecture); - var rule = MethodMembers() - .That() - .AreDeclaredIn(typeof(ClassCallingOtherMethod)) - .Should() - .NotCallAny(methodsInClass1); - AssertFailsWithErrorMessage( - rule, - "System.Void TestAssembly.ClassCallingOtherMethod::CallingOther(TestAssembly.Class1)" - + " does call System.String TestAssembly.Class1::AccessClass2(System.Int32)" - ); - } - } -} diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/ObjectSyntaxElementsTests.cs b/ArchUnitNETTests/Fluent/Syntax/Elements/ObjectSyntaxElementsTests.cs index e01ea7d0c..0f9a7eac5 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/ObjectSyntaxElementsTests.cs +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/ObjectSyntaxElementsTests.cs @@ -27,8 +27,8 @@ public async Task AreTest() Types().That().Are(helper.ChildClass), Types().That().Are(helper.ChildClassSystemType), Types().That().Are(Classes().That().Are(helper.ChildClass)), - Types().That().Are([helper.ChildClass]), - Types().That().Are([helper.ChildClassSystemType]), + Types().That().Are(new List { helper.ChildClass }), + Types().That().Are(new List { helper.ChildClassSystemType }), }; foreach (var predicate in predicates) { @@ -40,8 +40,8 @@ public async Task AreTest() Types().That().Are(helper.BaseClass, helper.ChildClass), Types().That().Are(helper.BaseClassSystemType, helper.ChildClassSystemType), Types().That().Are(Classes().That().Are(helper.BaseClass, helper.ChildClass)), - Types().That().Are([helper.BaseClass, helper.ChildClass]), - Types().That().Are([helper.BaseClassSystemType, helper.ChildClassSystemType]), + Types().That().Are(new List { helper.BaseClass, helper.ChildClass }), + Types().That().Are(new List { helper.BaseClassSystemType, helper.ChildClassSystemType }), }; foreach (var predicate in predicates) { @@ -49,8 +49,9 @@ public async Task AreTest() } // Empty arguments + Assert.Equal([.. Types().That().Are().GetObjects(helper.Architecture)], new List()); Assert.Equal([.. Types().That().Are(new List()).GetObjects(helper.Architecture)], new List()); - Assert.Equal([.. Types().That().Are([]).GetObjects(helper.Architecture)], new List()); + Assert.Equal([.. Types().That().Are(new List()).GetObjects(helper.Architecture)], new List()); // Empty inputs Types().That().Are([]).Should().BeTypesThat().Are(helper.ChildClass).AssertOnlyViolations(helper); @@ -60,8 +61,8 @@ public async Task AreTest() should.BeTypesThat().Are(helper.ChildClass).AssertNoViolations(helper); should.BeTypesThat().Are(helper.ChildClassSystemType).AssertNoViolations(helper); should.BeTypesThat().Are(Classes().That().Are(helper.ChildClass)).AssertNoViolations(helper); - should.BeTypesThat().Are([helper.ChildClass]).AssertNoViolations(helper); - should.BeTypesThat().Are([helper.ChildClassSystemType]).AssertNoViolations(helper); + should.BeTypesThat().Are(new List { helper.ChildClass }).AssertNoViolations(helper); + should.BeTypesThat().Are(new List { helper.ChildClassSystemType }).AssertNoViolations(helper); await helper.AssertSnapshotMatches(); } @@ -75,29 +76,30 @@ public async Task BeTest() should.Be(helper.ChildClass).AssertNoViolations(helper); should.Be(helper.ChildClassSystemType).AssertNoViolations(helper); should.Be(Classes().That().Are(helper.ChildClass)).AssertNoViolations(helper); - should.Be([helper.ChildClass]).AssertNoViolations(helper); - should.Be([helper.ChildClassSystemType]).AssertNoViolations(helper); + should.Be(new List { helper.ChildClass }).AssertNoViolations(helper); + should.Be(new List { helper.ChildClassSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); should = Types().That().Are(helper.ChildClass).Should(); should.Be(helper.ClassWithoutDependencies).AssertOnlyViolations(helper); should.Be(helper.ClassWithoutDependenciesSystemType).AssertOnlyViolations(helper); should.Be(Classes().That().Are(helper.ClassWithoutDependencies)).AssertOnlyViolations(helper); - should.Be([helper.ClassWithoutDependencies]).AssertOnlyViolations(helper); - should.Be([helper.ClassWithoutDependenciesSystemType]).AssertOnlyViolations(helper); + should.Be(new List { helper.ClassWithoutDependencies }).AssertOnlyViolations(helper); + should.Be(new List { helper.ClassWithoutDependenciesSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.BaseClass).Should(); - should.Be(new List()).AssertOnlyViolations(helper); + should.Be().AssertOnlyViolations(helper); + should.Be(new List()).AssertOnlyViolations(helper); should.Be(new List()).AssertOnlyViolations(helper); should.Be(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ChildClass).Should(); should.Be(helper.ClassWithoutDependencies, helper.BaseClass).AssertOnlyViolations(helper); - should.Be([helper.ClassWithoutDependencies, helper.BaseClass]).AssertOnlyViolations(helper); + should.Be(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertOnlyViolations(helper); should.Be(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertOnlyViolations(helper); - should.Be([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.Be(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); Types().That().Are(helper.ChildClass, helper.BaseClass).Should().Be(helper.ChildClass, helper.BaseClass).AssertNoViolations(helper); @@ -262,17 +264,17 @@ public async Task CallAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.CallAny(helper.CalledMethod).AssertNoViolations(helper); - should.CallAny([helper.CalledMethod]).AssertNoViolations(helper); + should.CallAny(new List { helper.CalledMethod }).AssertNoViolations(helper); should.CallAny(MethodMembers().That().Are(helper.CalledMethod)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(MethodMembers().That().CallAny(helper.CalledMethod)).AssertNoViolations(helper); - should.Be(MethodMembers().That().CallAny([helper.CalledMethod])).AssertNoViolations(helper); + should.Be(MethodMembers().That().CallAny(new List { helper.CalledMethod })).AssertNoViolations(helper); should.Be(MethodMembers().That().CallAny(MethodMembers().That().Are(helper.CalledMethod))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeMethodMembersThat().CallAny(helper.CalledMethod).AssertNoViolations(helper); - should.BeMethodMembersThat().CallAny([helper.CalledMethod]).AssertNoViolations(helper); + should.BeMethodMembersThat().CallAny(new List { helper.CalledMethod }).AssertNoViolations(helper); should.BeMethodMembersThat().CallAny(MethodMembers().That().Are(helper.CalledMethod)).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); @@ -280,31 +282,34 @@ public async Task CallAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.CallAny(helper.CalledMethod).AssertOnlyViolations(helper); - should.CallAny([helper.CalledMethod]).AssertOnlyViolations(helper); + should.CallAny(new List { helper.CalledMethod }).AssertOnlyViolations(helper); should.CallAny(MethodMembers().That().Are(helper.CalledMethod)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(MethodMembers().That().CallAny(helper.CalledMethod)).AssertOnlyViolations(helper); - should.Be(MethodMembers().That().CallAny([helper.CalledMethod])).AssertOnlyViolations(helper); + should.Be(MethodMembers().That().CallAny(new List { helper.CalledMethod })).AssertOnlyViolations(helper); should.Be(MethodMembers().That().CallAny(MethodMembers().That().Are(helper.CalledMethod))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeMethodMembersThat().CallAny(helper.CalledMethod).AssertOnlyViolations(helper); - should.BeMethodMembersThat().CallAny([helper.CalledMethod]).AssertOnlyViolations(helper); + should.BeMethodMembersThat().CallAny(new List { helper.CalledMethod }).AssertOnlyViolations(helper); should.BeMethodMembersThat().CallAny(MethodMembers().That().Are(helper.CalledMethod)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = MethodMembers().That().Are(helper.MethodWithSingleDependency).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.CallAny().AssertOnlyViolations(helper); should.CallAny(new List()).AssertOnlyViolations(helper); should.CallAny(MethodMembers().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(MethodMembers().That().CallAny()).AssertOnlyViolations(helper); should.Be(MethodMembers().That().CallAny(new List())).AssertOnlyViolations(helper); should.Be(MethodMembers().That().CallAny(MethodMembers().That().HaveFullName(helper.NonExistentObjectName))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeMethodMembersThat().CallAny().AssertOnlyViolations(helper); should.BeMethodMembersThat().CallAny(new List()).AssertOnlyViolations(helper); should.BeMethodMembersThat().CallAny(MethodMembers().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); @@ -313,17 +318,17 @@ public async Task CallAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.CallAny(helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies).AssertOnlyViolations(helper); - should.CallAny([helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies]).AssertOnlyViolations(helper); + should.CallAny(new List { helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies }).AssertOnlyViolations(helper); should.CallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(MethodMembers().That().CallAny(helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies)).AssertOnlyViolations(helper); - should.Be(MethodMembers().That().CallAny([helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies])).AssertOnlyViolations(helper); + should.Be(MethodMembers().That().CallAny(new List { helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies })).AssertOnlyViolations(helper); should.Be(MethodMembers().That().CallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeMethodMembersThat().CallAny(helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies).AssertOnlyViolations(helper); - should.BeMethodMembersThat().CallAny([helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies]).AssertOnlyViolations(helper); + should.BeMethodMembersThat().CallAny(new List { helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies }).AssertOnlyViolations(helper); should.BeMethodMembersThat().CallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies, helper.MethodWithMultipleDependencies)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Input with multiple dependencies"); @@ -356,22 +361,22 @@ public async Task DependOnAnyTest() should.DependOnAny(helper.BaseClass).AssertNoViolations(helper); should.DependOnAny(helper.BaseClassSystemType).AssertNoViolations(helper); should.DependOnAny(Classes().That().Are(helper.BaseClass)).AssertNoViolations(helper); - should.DependOnAny([helper.BaseClass]).AssertNoViolations(helper); - should.DependOnAny([helper.BaseClassSystemType]).AssertNoViolations(helper); + should.DependOnAny(new List { helper.BaseClass }).AssertNoViolations(helper); + should.DependOnAny(new List { helper.BaseClassSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DependOnAny(helper.BaseClass)).AssertNoViolations(helper); should.Be(Types().That().DependOnAny(helper.BaseClassSystemType)).AssertNoViolations(helper); should.Be(Types().That().DependOnAny(Classes().That().Are(helper.BaseClass))).AssertNoViolations(helper); - should.Be(Types().That().DependOnAny([helper.BaseClass])).AssertNoViolations(helper); - should.Be(Types().That().DependOnAny([helper.BaseClassSystemType])).AssertNoViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.BaseClass })).AssertNoViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.BaseClassSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DependOnAny(helper.BaseClass).AssertNoViolations(helper); should.BeTypesThat().DependOnAny(helper.BaseClassSystemType).AssertNoViolations(helper); should.BeTypesThat().DependOnAny(Classes().That().Are(helper.BaseClass)).AssertNoViolations(helper); - should.BeTypesThat().DependOnAny([helper.BaseClass]).AssertNoViolations(helper); - should.BeTypesThat().DependOnAny([helper.BaseClassSystemType]).AssertNoViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.BaseClass }).AssertNoViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.BaseClassSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); should = Types().That().HaveFullName(helper.ClassWithMultipleDependencies.FullName).Should(); @@ -380,22 +385,22 @@ public async Task DependOnAnyTest() should.DependOnAny(helper.ClassWithoutDependencies).AssertOnlyViolations(helper); should.DependOnAny(helper.ClassWithoutDependenciesSystemType).AssertOnlyViolations(helper); should.DependOnAny(Classes().That().Are(helper.ClassWithoutDependencies)).AssertOnlyViolations(helper); - should.DependOnAny([helper.ClassWithoutDependencies]).AssertOnlyViolations(helper); - should.DependOnAny([helper.ClassWithoutDependenciesSystemType]).AssertOnlyViolations(helper); + should.DependOnAny(new List { helper.ClassWithoutDependencies }).AssertOnlyViolations(helper); + should.DependOnAny(new List { helper.ClassWithoutDependenciesSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DependOnAny(helper.ClassWithoutDependencies)).AssertOnlyViolations(helper); should.Be(Types().That().DependOnAny(helper.ClassWithoutDependenciesSystemType)).AssertOnlyViolations(helper); should.Be(Types().That().DependOnAny(Classes().That().Are(helper.ClassWithoutDependencies))).AssertOnlyViolations(helper); - should.Be(Types().That().DependOnAny([helper.ClassWithoutDependencies])).AssertOnlyViolations(helper); - should.Be(Types().That().DependOnAny([helper.ClassWithoutDependenciesSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.ClassWithoutDependencies })).AssertOnlyViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.ClassWithoutDependenciesSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DependOnAny(helper.ClassWithoutDependencies).AssertOnlyViolations(helper); should.BeTypesThat().DependOnAny(helper.ClassWithoutDependenciesSystemType).AssertOnlyViolations(helper); should.BeTypesThat().DependOnAny(Classes().That().Are(helper.ClassWithoutDependencies)).AssertOnlyViolations(helper); - should.BeTypesThat().DependOnAny([helper.ClassWithoutDependencies]).AssertOnlyViolations(helper); - should.BeTypesThat().DependOnAny([helper.ClassWithoutDependenciesSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.ClassWithoutDependencies }).AssertOnlyViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.ClassWithoutDependenciesSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ClassWithMultipleDependencies).Should(); @@ -404,25 +409,28 @@ public async Task DependOnAnyTest() should.DependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes))).AssertOnlyViolations(helper); + should.Be(Types().That().DependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertOnlyViolations(helper); + should.BeTypesThat().DependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithMultipleDependencies).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.DependOnAny().AssertOnlyViolations(helper); should.DependOnAny(new List()).AssertOnlyViolations(helper); should.DependOnAny(new List()).AssertOnlyViolations(helper); should.DependOnAny(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().DependOnAny()).AssertOnlyViolations(helper); should.Be(Types().That().DependOnAny(new List())).AssertOnlyViolations(helper); should.Be(Types().That().DependOnAny(new List())).AssertOnlyViolations(helper); should.Be(Types().That().DependOnAny(Classes().That().HaveFullName(helper.NonExistentObjectName))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().DependOnAny().AssertOnlyViolations(helper); should.BeTypesThat().DependOnAny(new List()).AssertOnlyViolations(helper); should.BeTypesThat().DependOnAny(new List()).AssertOnlyViolations(helper); should.BeTypesThat().DependOnAny(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); @@ -432,33 +440,33 @@ public async Task DependOnAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.DependOnAny(helper.ClassWithoutDependencies, helper.BaseClass).AssertOnlyViolations(helper); - should.DependOnAny([helper.ClassWithoutDependencies, helper.BaseClass]).AssertOnlyViolations(helper); + should.DependOnAny(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertOnlyViolations(helper); should.DependOnAny(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertOnlyViolations(helper); - should.DependOnAny([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.DependOnAny(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DependOnAny(helper.ClassWithoutDependencies, helper.BaseClass)).AssertOnlyViolations(helper); - should.Be(Types().That().DependOnAny([helper.ClassWithoutDependencies, helper.BaseClass])).AssertOnlyViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.ClassWithoutDependencies, helper.BaseClass })).AssertOnlyViolations(helper); should.Be(Types().That().DependOnAny(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DependOnAny([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DependOnAny(helper.ClassWithoutDependencies, helper.BaseClass).AssertOnlyViolations(helper); - should.BeTypesThat().DependOnAny([helper.ClassWithoutDependencies, helper.BaseClass]).AssertOnlyViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertOnlyViolations(helper); should.BeTypesThat().DependOnAny(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DependOnAny([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Input without dependencies"); should = Types().That().Are(helper.ClassWithoutDependencies).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.DependOnAny([helper.BaseClass, helper.ChildClass]).AssertOnlyViolations(helper); + should.DependOnAny(new List { helper.BaseClass, helper.ChildClass }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DependOnAny([helper.BaseClass, helper.ChildClass])).AssertOnlyViolations(helper); + should.Be(Types().That().DependOnAny(new List { helper.BaseClass, helper.ChildClass })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DependOnAny([helper.BaseClass, helper.ChildClass]).AssertOnlyViolations(helper); + should.BeTypesThat().DependOnAny(new List { helper.BaseClass, helper.ChildClass }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); @@ -593,23 +601,23 @@ public async Task HaveAnyAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributes(helper.Attribute1).AssertNoViolations(helper); - should.HaveAnyAttributes([helper.Attribute1]).AssertNoViolations(helper); + should.HaveAnyAttributes(new List { helper.Attribute1 }).AssertNoViolations(helper); should.HaveAnyAttributes(helper.Attribute1SystemType).AssertNoViolations(helper); - should.HaveAnyAttributes([helper.Attribute1SystemType]).AssertNoViolations(helper); + should.HaveAnyAttributes(new List { helper.Attribute1SystemType }).AssertNoViolations(helper); should.HaveAnyAttributes(Attributes().That().Are(helper.Attribute1)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributes(helper.Attribute1)).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributes([helper.Attribute1])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributes(new List { helper.Attribute1 })).AssertNoViolations(helper); should.Be(Types().That().HaveAnyAttributes(helper.Attribute1SystemType)).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributes([helper.Attribute1SystemType])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributes(new List { helper.Attribute1SystemType })).AssertNoViolations(helper); should.Be(Types().That().HaveAnyAttributes(Attributes().That().Are(helper.Attribute1))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributes(helper.Attribute1).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributes([helper.Attribute1]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributes(new List { helper.Attribute1 }).AssertNoViolations(helper); should.BeTypesThat().HaveAnyAttributes(helper.Attribute1SystemType).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributes([helper.Attribute1SystemType]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributes(new List { helper.Attribute1SystemType }).AssertNoViolations(helper); should.BeTypesThat().HaveAnyAttributes(Attributes().That().Are(helper.Attribute1)).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); @@ -617,39 +625,42 @@ public async Task HaveAnyAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributes(helper.UnusedAttribute).AssertOnlyViolations(helper); - should.HaveAnyAttributes([helper.UnusedAttribute]).AssertOnlyViolations(helper); + should.HaveAnyAttributes(new List { helper.UnusedAttribute }).AssertOnlyViolations(helper); should.HaveAnyAttributes(helper.UnusedAttributeSystemType).AssertOnlyViolations(helper); - should.HaveAnyAttributes([helper.UnusedAttributeSystemType]).AssertOnlyViolations(helper); + should.HaveAnyAttributes(new List { helper.UnusedAttributeSystemType }).AssertOnlyViolations(helper); should.HaveAnyAttributes(Attributes().That().Are(helper.UnusedAttribute)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributes(helper.UnusedAttribute)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributes([helper.UnusedAttribute])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributes(new List { helper.UnusedAttribute })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributes(helper.UnusedAttributeSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributes([helper.UnusedAttributeSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributes(new List { helper.UnusedAttributeSystemType })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributes(Attributes().That().Are(helper.UnusedAttribute))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributes(helper.UnusedAttribute).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributes([helper.UnusedAttribute]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributes(new List { helper.UnusedAttribute }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributes(helper.UnusedAttributeSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributes([helper.UnusedAttributeSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributes(new List { helper.UnusedAttributeSystemType }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributes(Attributes().That().Are(helper.UnusedAttribute)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithTwoAttributes).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.HaveAnyAttributes().AssertOnlyViolations(helper); should.HaveAnyAttributes(new List()).AssertOnlyViolations(helper); should.HaveAnyAttributes(new List()).AssertOnlyViolations(helper); should.HaveAnyAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().HaveAnyAttributes()).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributes(new List())).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributes(new List())).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().HaveAnyAttributes().AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributes(new List()).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributes(new List()).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); @@ -659,23 +670,23 @@ public async Task HaveAnyAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributes(helper.Attribute1, helper.UnusedAttribute).AssertNoViolations(helper); - should.HaveAnyAttributes([helper.Attribute1, helper.UnusedAttribute]).AssertNoViolations(helper); + should.HaveAnyAttributes(new List { helper.Attribute1, helper.UnusedAttribute }).AssertNoViolations(helper); should.HaveAnyAttributes(helper.Attribute1SystemType, helper.UnusedAttributeSystemType).AssertNoViolations(helper); - should.HaveAnyAttributes([helper.Attribute1SystemType, helper.UnusedAttributeSystemType]).AssertNoViolations(helper); + should.HaveAnyAttributes(new List { helper.Attribute1SystemType, helper.UnusedAttributeSystemType }).AssertNoViolations(helper); should.HaveAnyAttributes(Attributes().That().Are(helper.Attribute1, helper.UnusedAttribute)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributes(helper.Attribute1, helper.UnusedAttribute)).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributes([helper.Attribute1, helper.UnusedAttribute])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributes(new List { helper.Attribute1, helper.UnusedAttribute })).AssertNoViolations(helper); should.Be(Types().That().HaveAnyAttributes(helper.Attribute1SystemType, helper.UnusedAttributeSystemType)).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributes([helper.Attribute1SystemType, helper.UnusedAttributeSystemType])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributes(new List { helper.Attribute1SystemType, helper.UnusedAttributeSystemType })).AssertNoViolations(helper); should.Be(Types().That().HaveAnyAttributes(Attributes().That().Are(helper.Attribute1, helper.UnusedAttribute))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributes(helper.Attribute1, helper.UnusedAttribute).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributes([helper.Attribute1, helper.UnusedAttribute]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributes(new List { helper.Attribute1, helper.UnusedAttribute }).AssertNoViolations(helper); should.BeTypesThat().HaveAnyAttributes(helper.Attribute1SystemType, helper.UnusedAttributeSystemType).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributes([helper.Attribute1SystemType, helper.UnusedAttributeSystemType]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributes(new List { helper.Attribute1SystemType, helper.UnusedAttributeSystemType }).AssertNoViolations(helper); should.BeTypesThat().HaveAnyAttributes(Attributes().That().Are(helper.Attribute1, helper.UnusedAttribute)).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); @@ -718,116 +729,87 @@ public async Task HaveAnyAttributesWithArgumentsTest() var should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithArguments(helper.Attribute1TypeArgumentSystemType).AssertNoViolations(helper); - should.HaveAnyAttributesWithArguments([helper.Attribute1TypeArgumentSystemType]).AssertNoViolations(helper); + should.HaveAnyAttributesWithArguments(new List { helper.Attribute1TypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithArguments(helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithArguments([helper.Attribute1TypeArgumentSystemType])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithArguments(new List { helper.Attribute1TypeArgumentSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithArguments(helper.Attribute1TypeArgumentSystemType).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithArguments([helper.Attribute1TypeArgumentSystemType]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithArguments(new List { helper.Attribute1TypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument).AssertNoViolations(helper); - should.HaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument]).AssertNoViolations(helper); + should.HaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument)).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithArguments(helper.UnusedTypeArgumentSystemType).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithArguments([helper.UnusedTypeArgumentSystemType]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithArguments(helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithArguments([helper.UnusedTypeArgumentSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgumentSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithArguments(helper.UnusedTypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithArguments([helper.UnusedTypeArgumentSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithoutAttributes).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); - - helper.AddSnapshotHeader("Null argument"); - should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); - - helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithArguments(null).AssertOnlyViolations(helper); - - helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithArguments(null)).AssertOnlyViolations(helper); - - helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithArguments(null).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); + should = Types().That().Are(helper.ClassWithoutAttributes).Should(); helper.AddSnapshotSubHeader("Conditions"); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should().HaveAnyAttributesWithArguments([]).AssertNoViolations(helper); - Types().That().Are(helper.ClassWithTwoAttributesWithArguments).Should().HaveAnyAttributesWithArguments([]).AssertNoViolations(helper); + should.HaveAnyAttributesWithArguments(new List()).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should().Be(Types().That().HaveAnyAttributesWithArguments([])).AssertNoViolations(helper); - Types().That().Are(helper.ClassWithTwoAttributesWithArguments).Should().Be(Types().That().HaveAnyAttributesWithArguments([])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithArguments(new List())).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should().BeTypesThat().HaveAnyAttributesWithArguments([]).AssertNoViolations(helper); - Types().That().Are(helper.ClassWithTwoAttributesWithArguments).Should().BeTypesThat().HaveAnyAttributesWithArguments([]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithArguments(new List()).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithArguments([helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue]).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithArguments(helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithArguments(new List { helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithArguments([helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue])).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithArguments(helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithArguments(new List { helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithArguments([helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue]).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithArguments(helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithArguments(new List { helper.UnusedAttributeIntValue, helper.UnusedAttributeStringValue }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); helper.AddSnapshotSubHeader("Conditions"); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().HaveAnyAttributesWithArguments(helper.Attribute1StringArgument).AssertNoViolations(helper); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().HaveAnyAttributesWithArguments(helper.Attribute2IntegerArgument).AssertAnyViolations(helper); + Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().HaveAnyAttributesWithArguments([helper.Attribute1StringArgument]).AssertNoViolations(helper); + Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().HaveAnyAttributesWithArguments([helper.Attribute2IntegerArgument]).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().Be(Types().That().HaveAnyAttributesWithArguments(helper.Attribute1StringArgument)).AssertNoViolations(helper); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().Be(Types().That().HaveAnyAttributesWithArguments(helper.Attribute2IntegerArgument)).AssertAnyViolations(helper); + Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().Be(Types().That().HaveAnyAttributesWithArguments([helper.Attribute1StringArgument])).AssertNoViolations(helper); + Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().Be(Types().That().HaveAnyAttributesWithArguments([helper.Attribute2IntegerArgument])).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().BeTypesThat().HaveAnyAttributesWithArguments(helper.Attribute1StringArgument).AssertNoViolations(helper); - Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().BeTypesThat().HaveAnyAttributesWithArguments(helper.Attribute2IntegerArgument).AssertAnyViolations(helper); + Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().BeTypesThat().HaveAnyAttributesWithArguments([helper.Attribute1StringArgument]).AssertNoViolations(helper); + Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should().BeTypesThat().HaveAnyAttributesWithArguments([helper.Attribute2IntegerArgument]).AssertAnyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -842,141 +824,141 @@ public async Task HaveAnyAttributesWithNamedArguments() helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations for attribute without named arguments"); should = Types().That().Are(helper.ClassWithSingleAttribute).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.UnusedTypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.UnusedTypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.UnusedAttributeStringValue)]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.UnusedAttributeStringValue))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.UnusedAttributeStringValue)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.UnusedAttributeStringValue)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); - should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); + should = Types().That().Are(helper.ClassWithoutAttributes).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAnyAttributesWithNamedArguments([]).AssertNoViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)>()).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)>())).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)>()).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertNoViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); should.HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue),]).AssertOnlyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument),])).AssertNoViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) })).AssertNoViolations(helper); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue),])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertNoViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue),]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments, helper.ClassWithTwoAttributesWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.HaveAnyAttributesWithNamedArguments([("NamedParameter3", helper.Attribute2TypeArgumentSystemType)]).AssertAnyViolations(helper); + should.HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) }).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().HaveAnyAttributesWithNamedArguments([("NamedParameter3", helper.Attribute2TypeArgumentSystemType)])).AssertAnyViolations(helper); + should.Be(Types().That().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) })).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().HaveAnyAttributesWithNamedArguments([("NamedParameter3", helper.Attribute2TypeArgumentSystemType)]).AssertAnyViolations(helper); + should.BeTypesThat().HaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) }).AssertAnyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -990,133 +972,88 @@ public async Task HaveAttributeWithArgumentsTest() var should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType]).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType]).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType }).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType })).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType]).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType }).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument]).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument]).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument])).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument })).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument]).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations for wrong attribute"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.UnusedAttribute, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.UnusedAttribute, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.UnusedAttributeSystemType, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.UnusedAttributeSystemType, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(helper.UnusedAttribute, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(helper.UnusedAttributeSystemType, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.UnusedAttribute, helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.UnusedAttribute, [helper.Attribute1TypeArgumentSystemType])).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.UnusedAttributeSystemType, helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.UnusedAttributeSystemType, [helper.Attribute1TypeArgumentSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.UnusedAttribute, new List { helper.Attribute1TypeArgumentSystemType })).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.UnusedAttributeSystemType, new List { helper.Attribute1TypeArgumentSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.UnusedAttribute, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.UnusedAttribute, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.UnusedAttributeSystemType, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.UnusedAttributeSystemType, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.UnusedAttribute, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.UnusedAttributeSystemType, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, helper.UnusedTypeArgumentSystemType).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1, [helper.UnusedTypeArgumentSystemType]).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, helper.UnusedTypeArgumentSystemType).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.UnusedTypeArgumentSystemType]).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1, new List { helper.UnusedTypeArgumentSystemType }).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.UnusedTypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, [helper.UnusedTypeArgumentSystemType])).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.UnusedTypeArgumentSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, new List { helper.UnusedTypeArgumentSystemType })).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.UnusedTypeArgumentSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, helper.UnusedTypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, [helper.UnusedTypeArgumentSystemType]).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.UnusedTypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.UnusedTypeArgumentSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, new List { helper.UnusedTypeArgumentSystemType }).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.UnusedTypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, helper.Attribute2StringArgument).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2StringArgument]).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2StringArgument).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2StringArgument]).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2StringArgument }).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2StringArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute2StringArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2StringArgument])).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2StringArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2StringArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2StringArgument })).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2StringArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute2StringArgument).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2StringArgument]).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2StringArgument).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2StringArgument]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2StringArgument }).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2StringArgument }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), helper.Attribute1StringArgument).AssertOnlyViolations(helper); - - helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - - helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), helper.Attribute1StringArgument).AssertOnlyViolations(helper); - - helper.AddSnapshotHeader("Null argument"); - should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); - - helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, null).AssertOnlyViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, null).AssertOnlyViolations(helper); + should.HaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), [helper.Attribute1StringArgument]).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, null)).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, null)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), [helper.Attribute1StringArgument])).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, null).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, null).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), [helper.Attribute1StringArgument]).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); @@ -1137,37 +1074,31 @@ public async Task HaveAttributeWithArgumentsTest() should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument, helper.Attribute1IntegerArgument).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument, helper.Attribute1IntegerArgument]).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument, helper.Attribute1IntegerArgument).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument, helper.Attribute1IntegerArgument]).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument, helper.Attribute1IntegerArgument }).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument, helper.Attribute1IntegerArgument }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument, helper.Attribute1IntegerArgument)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument, helper.Attribute1IntegerArgument])).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument, helper.Attribute1IntegerArgument)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument, helper.Attribute1IntegerArgument])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument, helper.Attribute1IntegerArgument })).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument, helper.Attribute1IntegerArgument })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument, helper.Attribute1IntegerArgument).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument, helper.Attribute1IntegerArgument]).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument, helper.Attribute1IntegerArgument).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument, helper.Attribute1IntegerArgument]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument, helper.Attribute1IntegerArgument }).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument, helper.Attribute1IntegerArgument }).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.HaveAttributeWithArguments(helper.Attribute2, helper.Attribute2IntegerArgument).AssertAnyViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument]).AssertNoViolations(helper); + should.HaveAttributeWithArguments(helper.Attribute2, [helper.Attribute2IntegerArgument]).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute2, helper.Attribute2IntegerArgument)).AssertAnyViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithArguments(helper.Attribute2, [helper.Attribute2IntegerArgument])).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute2, helper.Attribute2IntegerArgument).AssertAnyViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithArguments(helper.Attribute2, [helper.Attribute2IntegerArgument]).AssertAnyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -1182,201 +1113,201 @@ public async Task HaveAttributeWithNamedArguments() helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); - + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); + helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertNoViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute1StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute1StringArgument)])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertNoViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute1StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute1StringArgument)])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations for attribute without named arguments"); should = Types().That().Are(helper.ClassWithSingleAttribute).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("InvalidName", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("InvalidName", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertOnlyViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("InvalidName", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("InvalidName", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.UnusedTypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.UnusedTypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.UnusedTypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.UnusedTypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("InvalidName", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("InvalidName", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("InvalidName", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("InvalidName", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.UnusedAttributeStringValue)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("InvalidName", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("InvalidName", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.UnusedAttributeStringValue))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.UnusedAttributeStringValue)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("InvalidName", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("InvalidName", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.UnusedAttributeStringValue)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.UnusedAttributeStringValue)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Unused attribute"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.UnusedAttribute, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.UnusedAttribute, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.UnusedAttribute, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertOnlyViolations(helper); should.HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.UnusedAttribute, ("NamedParameter1", helper.Attribute1TypeArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.UnusedAttribute, [("NamedParameter1", helper.Attribute1TypeArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.UnusedAttribute, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) })).AssertOnlyViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, ("NamedParameter1", helper.Attribute1TypeArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, [("NamedParameter1", helper.Attribute1TypeArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.UnusedAttribute, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.UnusedAttribute, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.UnusedAttribute, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertOnlyViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument))).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithNamedArguments(helper.Attribute1, []).AssertNoViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, []).AssertNoViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)>()).AssertNoViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)>()).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [])).AssertNoViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [])).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)>())).AssertNoViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)>())).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, []).AssertNoViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, []).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)>()).AssertNoViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)>()).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument)).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument) }).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument)).AssertOnlyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),])).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),])).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument))).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument) })).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument))).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument)).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument) }).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument)).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute2StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments, helper.ClassWithTwoAttributesWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.HaveAttributeWithNamedArguments(helper.Attribute2, ("NamedParameter3", helper.Attribute2TypeArgumentSystemType)).AssertAnyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute2, [("NamedParameter3", helper.Attribute2TypeArgumentSystemType)]).AssertAnyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute2, new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) }).AssertAnyViolations(helper); should.HaveAttributeWithNamedArguments(helper.Attribute2SystemType, ("NamedParameter3", helper.Attribute2TypeArgumentSystemType)).AssertAnyViolations(helper); - should.HaveAttributeWithNamedArguments(helper.Attribute2SystemType, [("NamedParameter3", helper.Attribute2TypeArgumentSystemType)]).AssertAnyViolations(helper); + should.HaveAttributeWithNamedArguments(helper.Attribute2SystemType, new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) }).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute2, ("NamedParameter3", helper.Attribute2TypeArgumentSystemType))).AssertAnyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute2, [("NamedParameter3", helper.Attribute2TypeArgumentSystemType)])).AssertAnyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute2, new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) })).AssertAnyViolations(helper); should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute2SystemType, ("NamedParameter3", helper.Attribute2TypeArgumentSystemType))).AssertAnyViolations(helper); - should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute2SystemType, [("NamedParameter3", helper.Attribute2TypeArgumentSystemType)])).AssertAnyViolations(helper); + should.Be(Types().That().HaveAttributeWithNamedArguments(helper.Attribute2SystemType, new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) })).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute2, ("NamedParameter3", helper.Attribute2TypeArgumentSystemType)).AssertAnyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute2, [("NamedParameter3", helper.Attribute2TypeArgumentSystemType)]).AssertAnyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute2, new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) }).AssertAnyViolations(helper); should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute2SystemType, ("NamedParameter3", helper.Attribute2TypeArgumentSystemType)).AssertAnyViolations(helper); - should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute2SystemType, [("NamedParameter3", helper.Attribute2TypeArgumentSystemType)]).AssertAnyViolations(helper); + should.BeTypesThat().HaveAttributeWithNamedArguments(helper.Attribute2SystemType, new List<(string, object)> { ("NamedParameter3", helper.Attribute2TypeArgumentSystemType) }).AssertAnyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -1391,32 +1322,53 @@ public async Task HaveNameTest() helper.AddSnapshotSubHeader("Conditions"); should.HaveName(helper.BaseClass.Name).AssertNoViolations(helper); should.HaveNameMatching("^Base.*$").AssertNoViolations(helper); + should.HaveNameStartingWith("Base").AssertNoViolations(helper); + should.HaveNameEndingWith("Class").AssertNoViolations(helper); + should.HaveNameContaining("Base").AssertNoViolations(helper); should.HaveFullName(helper.BaseClass.FullName).AssertNoViolations(helper); should.HaveFullNameMatching("^.*\\.Base.*$").AssertNoViolations(helper); - should.HaveNameContaining("Base").AssertNoViolations(helper); + should.HaveFullNameStartingWith(helper.BaseClass.Namespace.FullName).AssertNoViolations(helper); + should.HaveFullNameEndingWith("BaseClass").AssertNoViolations(helper); should.HaveFullNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); - should.HaveNameStartingWith("Base").AssertNoViolations(helper); - should.HaveNameEndingWith("Class").AssertNoViolations(helper); + should.HaveAssemblyQualifiedName(helper.BaseClass.AssemblyQualifiedName).AssertNoViolations(helper); + should.HaveAssemblyQualifiedNameMatching($"^{helper.BaseClass.FullName}, .*{helper.BaseClass.Assembly.Name}.*$").AssertNoViolations(helper); + should.HaveAssemblyQualifiedNameStartingWith(helper.BaseClass.FullName).AssertNoViolations(helper); + should.HaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Assembly.FullName).AssertNoViolations(helper); + should.HaveAssemblyQualifiedNameContaining(helper.BaseClass.Assembly.Name).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().HaveName(helper.BaseClass.Name)).AssertNoViolations(helper); should.Be(Types().That().HaveNameMatching("^Base.*$")).AssertNoViolations(helper); + should.Be(Types().That().HaveNameStartingWith("Base")).AssertNoViolations(helper); + should.Be(Types().That().HaveNameEndingWith("Class")).AssertNoViolations(helper); + should.Be(Types().That().HaveNameContaining("Base")).AssertNoViolations(helper); should.Be(Types().That().HaveFullName(helper.BaseClass.FullName)).AssertNoViolations(helper); should.Be(Types().That().HaveFullNameMatching("^.*\\.Base.*$")).AssertNoViolations(helper); - should.Be(Types().That().HaveNameContaining("Base")).AssertNoViolations(helper); + should.Be(Types().That().HaveFullNameStartingWith(helper.BaseClass.Namespace.FullName)).AssertNoViolations(helper); + should.Be(Types().That().HaveFullNameEndingWith("BaseClass")).AssertNoViolations(helper); should.Be(Types().That().HaveFullNameContaining(helper.BaseClass.Namespace.Name)).AssertNoViolations(helper); - should.Be(Types().That().HaveNameStartingWith("Base")).AssertNoViolations(helper); - should.Be(Types().That().HaveNameEndingWith("Class")).AssertNoViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedName(helper.BaseClass.AssemblyQualifiedName)).AssertNoViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameMatching($"^{helper.BaseClass.FullName}, .*{helper.BaseClass.Assembly.Name}.*$")).AssertNoViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameStartingWith(helper.BaseClass.FullName)).AssertNoViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Assembly.FullName)).AssertNoViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameContaining(helper.BaseClass.Assembly.Name)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().HaveName(helper.BaseClass.Name).AssertNoViolations(helper); should.BeTypesThat().HaveNameMatching("^Base.*$").AssertNoViolations(helper); + should.BeTypesThat().HaveNameStartingWith("Base").AssertNoViolations(helper); + should.BeTypesThat().HaveNameEndingWith("Class").AssertNoViolations(helper); + should.BeTypesThat().HaveNameContaining("Base").AssertNoViolations(helper); should.BeTypesThat().HaveFullName(helper.BaseClass.FullName).AssertNoViolations(helper); should.BeTypesThat().HaveFullNameMatching("^.*\\.Base.*$").AssertNoViolations(helper); - should.BeTypesThat().HaveNameContaining("Base").AssertNoViolations(helper); + should.BeTypesThat().HaveFullNameStartingWith(helper.BaseClass.Namespace.FullName).AssertNoViolations(helper); + should.BeTypesThat().HaveFullNameEndingWith("BaseClass").AssertNoViolations(helper); should.BeTypesThat().HaveFullNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); - should.BeTypesThat().HaveNameStartingWith("Base").AssertNoViolations(helper); - should.BeTypesThat().HaveNameEndingWith("Class").AssertNoViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedName(helper.BaseClass.AssemblyQualifiedName).AssertNoViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameMatching($"^{helper.BaseClass.FullName}, .*{helper.BaseClass.Assembly.Name}.*$").AssertNoViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameStartingWith(helper.BaseClass.FullName).AssertNoViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Assembly.FullName).AssertNoViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameContaining(helper.BaseClass.Assembly.Name).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); should = Types().That().Are(helper.BaseClass).Should(); @@ -1424,33 +1376,54 @@ public async Task HaveNameTest() helper.AddSnapshotSubHeader("Conditions"); should.HaveName(helper.BaseClass.FullName).AssertOnlyViolations(helper); should.HaveName("^.*\\.Base.*$").AssertOnlyViolations(helper); + should.HaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.HaveNameEndingWith("Base").AssertOnlyViolations(helper); + should.HaveNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); should.HaveFullName(helper.BaseClass.Name).AssertOnlyViolations(helper); should.HaveFullName("^Base.*$").AssertOnlyViolations(helper); - should.HaveNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.HaveFullNameStartingWith("Base").AssertOnlyViolations(helper); + should.HaveFullNameEndingWith(helper.BaseClass.Namespace.FullName).AssertOnlyViolations(helper); should.HaveFullNameContaining(helper.NonExistentObjectName).AssertOnlyViolations(helper); - should.HaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); - should.HaveNameEndingWith("Base").AssertOnlyViolations(helper); - - helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().HaveName(helper.BaseClass.Name)).AssertNoViolations(helper); - should.Be(Types().That().HaveNameMatching("^Base.*$")).AssertNoViolations(helper); - should.Be(Types().That().HaveFullName(helper.BaseClass.FullName)).AssertNoViolations(helper); - should.Be(Types().That().HaveFullNameMatching("^.*\\.Base.*$")).AssertNoViolations(helper); - should.Be(Types().That().HaveNameContaining("Base")).AssertNoViolations(helper); - should.Be(Types().That().HaveFullNameContaining(helper.BaseClass.Namespace.Name)).AssertNoViolations(helper); - should.Be(Types().That().HaveNameStartingWith("Base")).AssertNoViolations(helper); - should.Be(Types().That().HaveNameEndingWith("Class")).AssertNoViolations(helper); - + should.HaveAssemblyQualifiedName(helper.BaseClass.FullName).AssertOnlyViolations(helper); + should.HaveAssemblyQualifiedName($"^{helper.BaseClass.FullName}, .*{helper.NonExistentObjectName}.*$").AssertOnlyViolations(helper); + should.HaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.HaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Namespace.FullName).AssertOnlyViolations(helper); + should.HaveAssemblyQualifiedNameContaining(helper.NonExistentObjectName).AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().HaveName(helper.BaseClass.FullName)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveName("^.*\\.Base.*$")).AssertOnlyViolations(helper); + should.Be(Types().That().HaveNameStartingWith(helper.BaseClass.Namespace.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveNameEndingWith("Base")).AssertOnlyViolations(helper); + should.Be(Types().That().HaveNameContaining(helper.BaseClass.Namespace.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveFullName(helper.BaseClass.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveFullName("^Base.*$")).AssertOnlyViolations(helper); + should.Be(Types().That().HaveFullNameStartingWith("Base")).AssertOnlyViolations(helper); + should.Be(Types().That().HaveFullNameEndingWith(helper.BaseClass.Namespace.FullName)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveFullNameContaining(helper.NonExistentObjectName)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedName(helper.BaseClass.FullName)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedName($"^{helper.BaseClass.FullName}, .*{helper.NonExistentObjectName}.*$")).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Namespace.FullName)).AssertOnlyViolations(helper); + should.Be(Types().That().HaveAssemblyQualifiedNameContaining(helper.NonExistentObjectName)).AssertOnlyViolations(helper); + helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().HaveName(helper.BaseClass.Name).AssertNoViolations(helper); - should.BeTypesThat().HaveNameMatching("^Base.*$").AssertNoViolations(helper); - should.BeTypesThat().HaveFullName(helper.BaseClass.FullName).AssertNoViolations(helper); - should.BeTypesThat().HaveFullNameMatching("^.*\\.Base.*$").AssertNoViolations(helper); - should.BeTypesThat().HaveNameContaining("Base").AssertNoViolations(helper); - should.BeTypesThat().HaveFullNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); - should.BeTypesThat().HaveNameStartingWith("Base").AssertNoViolations(helper); - should.BeTypesThat().HaveNameEndingWith("Class").AssertNoViolations(helper); - + should.BeTypesThat().HaveName(helper.BaseClass.FullName).AssertOnlyViolations(helper); + should.BeTypesThat().HaveName("^.*\\.Base.*$").AssertOnlyViolations(helper); + should.BeTypesThat().HaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.BeTypesThat().HaveNameEndingWith("Base").AssertOnlyViolations(helper); + should.BeTypesThat().HaveNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.BeTypesThat().HaveFullName(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.BeTypesThat().HaveFullName("^Base.*$").AssertOnlyViolations(helper); + should.BeTypesThat().HaveFullNameStartingWith("Base").AssertOnlyViolations(helper); + should.BeTypesThat().HaveFullNameEndingWith(helper.BaseClass.Namespace.FullName).AssertOnlyViolations(helper); + should.BeTypesThat().HaveFullNameContaining(helper.NonExistentObjectName).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedName(helper.BaseClass.FullName).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedName($"^{helper.BaseClass.FullName}, .*{helper.NonExistentObjectName}.*$").AssertOnlyViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Namespace.FullName).AssertOnlyViolations(helper); + should.BeTypesThat().HaveAssemblyQualifiedNameContaining(helper.NonExistentObjectName).AssertOnlyViolations(helper); + await helper.AssertSnapshotMatches(); } @@ -1466,22 +1439,22 @@ public async Task NotBeTest() should.NotBe(helper.ClassWithoutDependencies).AssertNoViolations(helper); should.NotBe(helper.ClassWithoutDependenciesSystemType).AssertNoViolations(helper); should.NotBe(Classes().That().Are(helper.ClassWithoutDependencies)).AssertNoViolations(helper); - should.NotBe([helper.ClassWithoutDependencies]).AssertNoViolations(helper); - should.NotBe([helper.ClassWithoutDependenciesSystemType]).AssertNoViolations(helper); + should.NotBe(new List { helper.ClassWithoutDependencies }).AssertNoViolations(helper); + should.NotBe(new List { helper.ClassWithoutDependenciesSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().AreNot(helper.ClassWithoutDependencies)).AssertNoViolations(helper); should.Be(Types().That().AreNot(helper.ClassWithoutDependenciesSystemType)).AssertNoViolations(helper); - should.Be(Types().That().AreNot(helper.ClassWithoutDependencies)).AssertNoViolations(helper); - should.Be(Types().That().AreNot([helper.ClassWithoutDependencies])).AssertNoViolations(helper); - should.Be(Types().That().AreNot([helper.ClassWithoutDependenciesSystemType])).AssertNoViolations(helper); + should.Be(Types().That().AreNot(Classes().That().Are(helper.ClassWithoutDependencies))).AssertNoViolations(helper); + should.Be(Types().That().AreNot(new List { helper.ClassWithoutDependencies })).AssertNoViolations(helper); + should.Be(Types().That().AreNot(new List { helper.ClassWithoutDependenciesSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().AreNot(helper.ClassWithoutDependencies).AssertNoViolations(helper); should.BeTypesThat().AreNot(helper.ClassWithoutDependenciesSystemType).AssertNoViolations(helper); should.BeTypesThat().AreNot(Classes().That().Are(helper.ClassWithoutDependencies)).AssertNoViolations(helper); - should.BeTypesThat().AreNot([helper.ClassWithoutDependencies]).AssertNoViolations(helper); - should.BeTypesThat().AreNot([helper.ClassWithoutDependenciesSystemType]).AssertNoViolations(helper); + should.BeTypesThat().AreNot(new List { helper.ClassWithoutDependencies }).AssertNoViolations(helper); + should.BeTypesThat().AreNot(new List { helper.ClassWithoutDependenciesSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); should = Types().That().DependOnAny(helper.BaseClass).Should(); @@ -1490,37 +1463,40 @@ public async Task NotBeTest() should.NotBe(helper.ChildClass).AssertAnyViolations(helper); should.NotBe(helper.ChildClassSystemType).AssertAnyViolations(helper); should.NotBe(Classes().That().Are(helper.ChildClass)).AssertAnyViolations(helper); - should.NotBe([helper.ChildClass]).AssertAnyViolations(helper); - should.NotBe([helper.ChildClassSystemType]).AssertAnyViolations(helper); + should.NotBe(new List { helper.ChildClass }).AssertAnyViolations(helper); + should.NotBe(new List { helper.ChildClassSystemType }).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().AreNot(helper.ChildClass)).AssertAnyViolations(helper); should.Be(Types().That().AreNot(helper.ChildClassSystemType)).AssertAnyViolations(helper); should.Be(Types().That().AreNot(Classes().That().Are(helper.ChildClass))).AssertAnyViolations(helper); - should.Be(Types().That().AreNot([helper.ChildClass])).AssertAnyViolations(helper); - should.Be(Types().That().AreNot([helper.ChildClassSystemType])).AssertAnyViolations(helper); + should.Be(Types().That().AreNot(new List { helper.ChildClass })).AssertAnyViolations(helper); + should.Be(Types().That().AreNot(new List { helper.ChildClassSystemType })).AssertAnyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().AreNot(helper.ChildClass).AssertAnyViolations(helper); should.BeTypesThat().AreNot(helper.ChildClassSystemType).AssertAnyViolations(helper); should.BeTypesThat().AreNot(Classes().That().Are(helper.ChildClass)).AssertAnyViolations(helper); - should.BeTypesThat().AreNot([helper.ChildClass]).AssertAnyViolations(helper); - should.BeTypesThat().AreNot([helper.ChildClassSystemType]).AssertAnyViolations(helper); + should.BeTypesThat().AreNot(new List { helper.ChildClass }).AssertAnyViolations(helper); + should.BeTypesThat().AreNot(new List { helper.ChildClassSystemType }).AssertAnyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().DependOnAny(helper.BaseClass).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.NotBe().AssertNoViolations(helper); should.NotBe(new List()).AssertNoViolations(helper); should.NotBe(new List()).AssertNoViolations(helper); should.NotBe(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().AreNot()).AssertNoViolations(helper); should.Be(Types().That().AreNot(new List())).AssertNoViolations(helper); should.Be(Types().That().AreNot(new List())).AssertNoViolations(helper); should.Be(Types().That().AreNot(Classes().That().HaveFullName(helper.NonExistentObjectName))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().AreNot().AssertNoViolations(helper); should.BeTypesThat().AreNot(new List()).AssertNoViolations(helper); should.BeTypesThat().AreNot(new List()).AssertNoViolations(helper); should.BeTypesThat().AreNot(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertNoViolations(helper); @@ -1530,21 +1506,21 @@ public async Task NotBeTest() helper.AddSnapshotSubHeader("Conditions"); should.NotBe(helper.ClassWithoutDependencies, helper.BaseClass).AssertNoViolations(helper); - should.NotBe([helper.ClassWithoutDependencies, helper.BaseClass]).AssertNoViolations(helper); + should.NotBe(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertNoViolations(helper); should.NotBe(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertNoViolations(helper); - should.NotBe([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertNoViolations(helper); + should.NotBe(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().AreNot(helper.ClassWithoutDependencies, helper.BaseClass)).AssertNoViolations(helper); - should.Be(Types().That().AreNot([helper.ClassWithoutDependencies, helper.BaseClass])).AssertNoViolations(helper); + should.Be(Types().That().AreNot(new List { helper.ClassWithoutDependencies, helper.BaseClass })).AssertNoViolations(helper); should.Be(Types().That().AreNot(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType)).AssertNoViolations(helper); - should.Be(Types().That().AreNot([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType])).AssertNoViolations(helper); + should.Be(Types().That().AreNot(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().AreNot(helper.ClassWithoutDependencies, helper.BaseClass).AssertNoViolations(helper); - should.BeTypesThat().AreNot([helper.ClassWithoutDependencies, helper.BaseClass]).AssertNoViolations(helper); + should.BeTypesThat().AreNot(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertNoViolations(helper); should.BeTypesThat().AreNot(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertNoViolations(helper); - should.BeTypesThat().AreNot([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertNoViolations(helper); + should.BeTypesThat().AreNot(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertNoViolations(helper); await helper.AssertSnapshotMatches(); } @@ -1559,17 +1535,17 @@ public async Task NotCallAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.NotCallAny(helper.MethodWithoutDependencies).AssertNoViolations(helper); - should.NotCallAny([helper.MethodWithoutDependencies]).AssertNoViolations(helper); + should.NotCallAny(new List { helper.MethodWithoutDependencies }).AssertNoViolations(helper); should.NotCallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(MethodMembers().That().DoNotCallAny(helper.MethodWithoutDependencies)).AssertNoViolations(helper); - should.Be(MethodMembers().That().DoNotCallAny([helper.MethodWithoutDependencies])).AssertNoViolations(helper); + should.Be(MethodMembers().That().DoNotCallAny(new List { helper.MethodWithoutDependencies })).AssertNoViolations(helper); should.Be(MethodMembers().That().DoNotCallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeMethodMembersThat().DoNotCallAny(helper.MethodWithoutDependencies).AssertNoViolations(helper); - should.BeMethodMembersThat().DoNotCallAny([helper.MethodWithoutDependencies]).AssertNoViolations(helper); + should.BeMethodMembersThat().DoNotCallAny(new List { helper.MethodWithoutDependencies }).AssertNoViolations(helper); should.BeMethodMembersThat().DoNotCallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies)).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); @@ -1577,29 +1553,32 @@ public async Task NotCallAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.NotCallAny(helper.CalledMethod).AssertOnlyViolations(helper); - should.NotCallAny([helper.CalledMethod]).AssertOnlyViolations(helper); + should.NotCallAny(new List { helper.CalledMethod }).AssertOnlyViolations(helper); should.NotCallAny(MethodMembers().That().Are(helper.CalledMethod)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(MethodMembers().That().DoNotCallAny(helper.CalledMethod)).AssertOnlyViolations(helper); - should.Be(MethodMembers().That().DoNotCallAny([helper.CalledMethod])).AssertOnlyViolations(helper); + should.Be(MethodMembers().That().DoNotCallAny(new List { helper.CalledMethod })).AssertOnlyViolations(helper); should.Be(MethodMembers().That().DoNotCallAny(MethodMembers().That().Are(helper.CalledMethod))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeMethodMembersThat().DoNotCallAny(helper.CalledMethod).AssertOnlyViolations(helper); - should.BeMethodMembersThat().DoNotCallAny([helper.CalledMethod]).AssertOnlyViolations(helper); + should.BeMethodMembersThat().DoNotCallAny(new List { helper.CalledMethod }).AssertOnlyViolations(helper); should.BeMethodMembersThat().DoNotCallAny(MethodMembers().That().Are(helper.CalledMethod)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = MethodMembers().That().Are(helper.MethodWithSingleDependency).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.NotCallAny().AssertNoViolations(helper); should.NotCallAny(new List()).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(MethodMembers().That().DoNotCallAny()).AssertNoViolations(helper); should.Be(MethodMembers().That().DoNotCallAny(new List())).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeMethodMembersThat().DoNotCallAny().AssertNoViolations(helper); should.BeMethodMembersThat().DoNotCallAny(new List()).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); @@ -1607,17 +1586,17 @@ public async Task NotCallAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.NotCallAny(helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2).AssertOnlyViolations(helper); - should.NotCallAny([helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2]).AssertOnlyViolations(helper); + should.NotCallAny(new List { helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2 }).AssertOnlyViolations(helper); should.NotCallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(MethodMembers().That().DoNotCallAny(helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2)).AssertOnlyViolations(helper); - should.Be(MethodMembers().That().DoNotCallAny([helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2])).AssertOnlyViolations(helper); + should.Be(MethodMembers().That().DoNotCallAny(new List { helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2 })).AssertOnlyViolations(helper); should.Be(MethodMembers().That().DoNotCallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeMethodMembersThat().DoNotCallAny(helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2).AssertOnlyViolations(helper); - should.BeMethodMembersThat().DoNotCallAny([helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2]).AssertOnlyViolations(helper); + should.BeMethodMembersThat().DoNotCallAny(new List { helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2 }).AssertOnlyViolations(helper); should.BeMethodMembersThat().DoNotCallAny(MethodMembers().That().Are(helper.MethodWithoutDependencies, helper.CalledMethod1, helper.CalledMethod2)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); @@ -1662,22 +1641,22 @@ public async Task NotDependOnAnyTest() should.NotDependOnAny(helper.ClassWithoutDependencies).AssertNoViolations(helper); should.NotDependOnAny(helper.ClassWithoutDependenciesSystemType).AssertNoViolations(helper); should.NotDependOnAny(Classes().That().Are(helper.ClassWithoutDependencies)).AssertNoViolations(helper); - should.NotDependOnAny([helper.ClassWithoutDependencies]).AssertNoViolations(helper); - should.NotDependOnAny([helper.ClassWithoutDependenciesSystemType]).AssertNoViolations(helper); + should.NotDependOnAny(new List { helper.ClassWithoutDependencies }).AssertNoViolations(helper); + should.NotDependOnAny(new List { helper.ClassWithoutDependenciesSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotDependOnAny(helper.ClassWithoutDependencies)).AssertNoViolations(helper); should.Be(Types().That().DoNotDependOnAny(helper.ClassWithoutDependenciesSystemType)).AssertNoViolations(helper); should.Be(Types().That().DoNotDependOnAny(helper.ClassWithoutDependencies)).AssertNoViolations(helper); - should.Be(Types().That().DoNotDependOnAny([helper.ClassWithoutDependencies])).AssertNoViolations(helper); - should.Be(Types().That().DoNotDependOnAny([helper.ClassWithoutDependenciesSystemType])).AssertNoViolations(helper); + should.Be(Types().That().DoNotDependOnAny(new List { helper.ClassWithoutDependencies })).AssertNoViolations(helper); + should.Be(Types().That().DoNotDependOnAny(new List { helper.ClassWithoutDependenciesSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotDependOnAny(helper.ClassWithoutDependencies).AssertNoViolations(helper); should.BeTypesThat().DoNotDependOnAny(helper.ClassWithoutDependenciesSystemType).AssertNoViolations(helper); should.BeTypesThat().DoNotDependOnAny(Classes().That().Are(helper.ClassWithoutDependencies)).AssertNoViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.ClassWithoutDependencies]).AssertNoViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.ClassWithoutDependenciesSystemType]).AssertNoViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.ClassWithoutDependencies }).AssertNoViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.ClassWithoutDependenciesSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); should = Types().That().Are(helper.ChildClass).Should(); @@ -1686,8 +1665,8 @@ public async Task NotDependOnAnyTest() should.NotDependOnAny(helper.BaseClass).AssertOnlyViolations(helper); should.NotDependOnAny(helper.BaseClassSystemType).AssertOnlyViolations(helper); should.NotDependOnAny(Classes().That().Are(helper.BaseClass)).AssertOnlyViolations(helper); - should.NotDependOnAny([helper.BaseClass]).AssertOnlyViolations(helper); - should.NotDependOnAny([helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.NotDependOnAny(new List { helper.BaseClass }).AssertOnlyViolations(helper); + should.NotDependOnAny(new List { helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotDependOnAny(helper.BaseClass)).AssertOnlyViolations(helper); @@ -1698,8 +1677,8 @@ public async Task NotDependOnAnyTest() should.BeTypesThat().DoNotDependOnAny(helper.BaseClass).AssertOnlyViolations(helper); should.BeTypesThat().DoNotDependOnAny(helper.BaseClassSystemType).AssertOnlyViolations(helper); should.BeTypesThat().DoNotDependOnAny(Classes().That().Are(helper.BaseClass)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.BaseClass]).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.BaseClass }).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ChildClass).Should(); @@ -1708,23 +1687,26 @@ public async Task NotDependOnAnyTest() should.NotDependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotDependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes))).AssertNoViolations(helper); + should.Be(Types().That().DoNotDependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotDependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertNoViolations(helper); + should.BeTypesThat().DoNotDependOnAny(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ChildClass).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.NotDependOnAny().AssertNoViolations(helper); should.NotDependOnAny(new List()).AssertNoViolations(helper); should.NotDependOnAny(new List()).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().DoNotDependOnAny()).AssertNoViolations(helper); should.Be(Types().That().DoNotDependOnAny(new List())).AssertNoViolations(helper); should.Be(Types().That().DoNotDependOnAny(new List())).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().DoNotDependOnAny().AssertNoViolations(helper); should.BeTypesThat().DoNotDependOnAny(new List()).AssertNoViolations(helper); should.BeTypesThat().DoNotDependOnAny(new List()).AssertNoViolations(helper); @@ -1733,44 +1715,44 @@ public async Task NotDependOnAnyTest() helper.AddSnapshotSubHeader("Conditions"); should.NotDependOnAny(helper.ClassWithoutDependencies, helper.BaseClass).AssertOnlyViolations(helper); - should.NotDependOnAny([helper.ClassWithoutDependencies, helper.BaseClass]).AssertOnlyViolations(helper); + should.NotDependOnAny(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertOnlyViolations(helper); should.NotDependOnAny(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertOnlyViolations(helper); - should.NotDependOnAny([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.NotDependOnAny(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotDependOnAny(helper.ClassWithoutDependencies, helper.BaseClass)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotDependOnAny([helper.ClassWithoutDependencies, helper.BaseClass])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotDependOnAny(new List { helper.ClassWithoutDependencies, helper.BaseClass })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotDependOnAny(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotDependOnAny([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotDependOnAny(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotDependOnAny(helper.ClassWithoutDependencies, helper.BaseClass).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.ClassWithoutDependencies, helper.BaseClass]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.ClassWithoutDependencies, helper.BaseClass }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotDependOnAny(helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.ClassWithoutDependenciesSystemType, helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Input with multiple dependencies"); should = Types().That().Are(helper.ClassWithMultipleDependencies).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotDependOnAny(helper.BaseClassWithMember, helper.OtherBaseClass).AssertOnlyViolations(helper); - should.NotDependOnAny([helper.BaseClassWithMember, helper.OtherBaseClass]).AssertOnlyViolations(helper); + should.NotDependOnAny(new List { helper.BaseClassWithMember, helper.OtherBaseClass }).AssertOnlyViolations(helper); should.NotDependOnAny(helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType).AssertOnlyViolations(helper); - should.NotDependOnAny([helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType]).AssertOnlyViolations(helper); + should.NotDependOnAny(new List { helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType }).AssertOnlyViolations(helper); should.NotDependOnAny(Classes().That().Are(helper.BaseClassWithMember, helper.OtherBaseClass)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotDependOnAny(helper.BaseClassWithMember, helper.OtherBaseClass)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotDependOnAny([helper.BaseClassWithMember, helper.OtherBaseClass])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotDependOnAny(new List { helper.BaseClassWithMember, helper.OtherBaseClass })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotDependOnAny(helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotDependOnAny([helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotDependOnAny(new List { helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType })).AssertOnlyViolations(helper); should.Be(Classes().That().DoNotDependOnAny(helper.BaseClassWithMember, helper.OtherBaseClass)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotDependOnAny(helper.BaseClassWithMember, helper.OtherBaseClass).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.BaseClassWithMember, helper.OtherBaseClass]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.BaseClassWithMember, helper.OtherBaseClass }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotDependOnAny(helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotDependOnAny([helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotDependOnAny(new List { helper.BaseClassWithMemberSystemType, helper.OtherBaseClassSystemType }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotDependOnAny(Classes().That().Are(helper.BaseClassWithMember, helper.OtherBaseClass)).AssertOnlyViolations(helper); await helper.AssertSnapshotMatches(); @@ -1800,23 +1782,23 @@ public async Task NotHaveAnyAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributes(helper.UnusedAttribute).AssertNoViolations(helper); - should.NotHaveAnyAttributes([helper.UnusedAttribute]).AssertNoViolations(helper); + should.NotHaveAnyAttributes(new List { helper.UnusedAttribute }).AssertNoViolations(helper); should.NotHaveAnyAttributes(helper.UnusedAttributeSystemType).AssertNoViolations(helper); - should.NotHaveAnyAttributes([helper.UnusedAttributeSystemType]).AssertNoViolations(helper); + should.NotHaveAnyAttributes(new List { helper.UnusedAttributeSystemType }).AssertNoViolations(helper); should.NotHaveAnyAttributes(Attributes().That().Are(helper.UnusedAttribute)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributes(helper.UnusedAttribute)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributes([helper.UnusedAttribute])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(new List { helper.UnusedAttribute })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(helper.UnusedAttributeSystemType)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributes([helper.UnusedAttributeSystemType])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(new List { helper.UnusedAttributeSystemType })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(Attributes().That().Are(helper.UnusedAttribute))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributes(helper.UnusedAttribute).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributes([helper.UnusedAttribute]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(new List { helper.UnusedAttribute }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(helper.UnusedAttributeSystemType).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributes([helper.UnusedAttributeSystemType]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(new List { helper.UnusedAttributeSystemType }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(Attributes().That().Are(helper.UnusedAttribute)).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); @@ -1824,23 +1806,23 @@ public async Task NotHaveAnyAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributes(helper.Attribute1).AssertOnlyViolations(helper); - should.NotHaveAnyAttributes([helper.Attribute1]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributes(new List { helper.Attribute1 }).AssertOnlyViolations(helper); should.NotHaveAnyAttributes(helper.Attribute1SystemType).AssertOnlyViolations(helper); - should.NotHaveAnyAttributes([helper.Attribute1SystemType]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributes(new List { helper.Attribute1SystemType }).AssertOnlyViolations(helper); should.NotHaveAnyAttributes(Attributes().That().Are(helper.Attribute1)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributes(helper.Attribute1)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributes([helper.Attribute1])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(new List { helper.Attribute1 })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(helper.Attribute1SystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributes([helper.Attribute1SystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(new List { helper.Attribute1SystemType })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(Attributes().That().Are(helper.Attribute1))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributes(helper.Attribute1).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributes([helper.Attribute1]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(new List { helper.Attribute1 }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(helper.Attribute1SystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributes([helper.Attribute1SystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(new List { helper.Attribute1SystemType }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(Attributes().That().Are(helper.Attribute1)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); @@ -1850,25 +1832,28 @@ public async Task NotHaveAnyAttributesTest() should.NotHaveAnyAttributes(typeof(TypeDependencyNamespace.BaseClass)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributes(typeof(TypeDependencyNamespace.BaseClass))).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(typeof(TypeDependencyNamespace.BaseClass))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributes(typeof(TypeDependencyNamespace.BaseClass)).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(typeof(TypeDependencyNamespace.BaseClass)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithoutAttributes).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveAnyAttributes().AssertNoViolations(helper); should.NotHaveAnyAttributes(new List()).AssertNoViolations(helper); should.NotHaveAnyAttributes(new List()).AssertNoViolations(helper); should.NotHaveAnyAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().DoNotHaveAnyAttributes()).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(new List())).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(new List())).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().DoNotHaveAnyAttributes().AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(new List()).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(new List()).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName)).AssertNoViolations(helper); @@ -1878,23 +1863,23 @@ public async Task NotHaveAnyAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributes(helper.Attribute1, helper.Attribute2).AssertOnlyViolations(helper); - should.NotHaveAnyAttributes([helper.Attribute1, helper.Attribute2]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributes(new List { helper.Attribute1, helper.Attribute2 }).AssertOnlyViolations(helper); should.NotHaveAnyAttributes(helper.Attribute1SystemType, helper.Attribute2SystemType).AssertOnlyViolations(helper); - should.NotHaveAnyAttributes([helper.Attribute1SystemType, helper.Attribute2SystemType]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributes(new List { helper.Attribute1SystemType, helper.Attribute2SystemType }).AssertOnlyViolations(helper); should.NotHaveAnyAttributes(Attributes().That().Are(helper.Attribute1, helper.Attribute2)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributes(helper.Attribute1, helper.Attribute2)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributes([helper.Attribute1, helper.Attribute2])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(new List { helper.Attribute1, helper.Attribute2 })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(helper.Attribute1SystemType, helper.Attribute2SystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributes([helper.Attribute1SystemType, helper.Attribute2SystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributes(new List { helper.Attribute1SystemType, helper.Attribute2SystemType })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributes(Attributes().That().Are(helper.Attribute1, helper.Attribute2))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributes(helper.Attribute1, helper.Attribute2).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributes([helper.Attribute1, helper.Attribute2]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(new List { helper.Attribute1, helper.Attribute2 }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(helper.Attribute1SystemType, helper.Attribute2SystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributes([helper.Attribute1SystemType, helper.Attribute2SystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributes(new List { helper.Attribute1SystemType, helper.Attribute2SystemType }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributes(Attributes().That().Are(helper.Attribute1, helper.Attribute2)).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); @@ -1938,127 +1923,97 @@ public async Task NotHaveAnyAttributesWithArgumentsTest() var should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(helper.UnusedTypeArgumentSystemType).AssertNoViolations(helper); - should.NotHaveAnyAttributesWithArguments([helper.UnusedTypeArgumentSystemType]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.UnusedTypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.UnusedTypeArgumentSystemType])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgumentSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.UnusedTypeArgumentSystemType).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.UnusedTypeArgumentSystemType]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(helper.UnusedAttributeStringValue).AssertNoViolations(helper); - should.NotHaveAnyAttributesWithArguments([helper.UnusedAttributeStringValue]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List { helper.UnusedAttributeStringValue }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.UnusedAttributeStringValue)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.UnusedAttributeStringValue])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List { helper.UnusedAttributeStringValue })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.UnusedAttributeStringValue).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.UnusedAttributeStringValue]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List { helper.UnusedAttributeStringValue }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithArguments([helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.Attribute1TypeArgumentSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List { helper.Attribute1TypeArgumentSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type without attributes"); should = Types().That().Are(helper.ClassWithoutAttributes).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(helper.Attribute1StringArgument).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithArguments([helper.Attribute1StringArgument]).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.Attribute1StringArgument)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.Attribute1StringArgument])).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.Attribute1StringArgument).AssertNoViolations(helper); - - helper.AddSnapshotHeader("Null argument"); - should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); - - helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(null).AssertNoViolations(helper); - - helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(null)).AssertNoViolations(helper); - - helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(null).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.Attribute1StringArgument]).AssertNoViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments([]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List()).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List())).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List()).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments([helper.UnusedTypeArgument, helper.Attribute1StringArgument]).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithArguments(helper.UnusedTypeArgument, helper.Attribute1StringArgument).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgument, helper.Attribute1StringArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.UnusedTypeArgument, helper.Attribute1StringArgument])).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.UnusedTypeArgument, helper.Attribute1StringArgument)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgument, helper.Attribute1StringArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.UnusedTypeArgument, helper.Attribute1StringArgument]).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.UnusedTypeArgument, helper.Attribute1StringArgument).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List { helper.UnusedTypeArgument, helper.Attribute1StringArgument }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithArguments(helper.Attribute1StringArgument).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithArguments([helper.Attribute1StringArgument]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithArguments(new List { helper.Attribute1StringArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithArguments([helper.Attribute1StringArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithArguments(new List { helper.Attribute1StringArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(helper.Attribute1StringArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithArguments([helper.Attribute1StringArgument]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithArguments(new List { helper.Attribute1StringArgument }).AssertOnlyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -2073,110 +2028,110 @@ public async Task NotHaveAnyAttributesWithNamedArgumentsTest() helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); should.NotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertNoViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1TypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.UnusedTypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.UnusedTypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1TypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1TypeArgumentSystemType) }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.UnusedTypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.UnusedTypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.UnusedTypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) }).AssertNoViolations(helper); should.NotHaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.UnusedAttributeStringValue)).AssertNoViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.UnusedAttributeStringValue)]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1StringArgument)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.UnusedAttributeStringValue))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.UnusedAttributeStringValue)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("InvalidName", helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("InvalidName", helper.Attribute1StringArgument)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("InvalidName", helper.Attribute1StringArgument) }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.UnusedAttributeStringValue)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.UnusedAttributeStringValue)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.UnusedAttributeStringValue) }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAnyAttributesWithNamedArguments([]).AssertNoViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)>()).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)>())).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)>()).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument), ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments, helper.ClassWithTwoAttributesWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.NotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.NotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments([("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAnyAttributesWithNamedArguments(new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -2190,180 +2145,125 @@ public async Task NotHaveAttributeWithArgumentsTest() var should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute2TypeArgumentSystemType).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2TypeArgumentSystemType]).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2TypeArgumentSystemType).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2TypeArgumentSystemType]).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2TypeArgumentSystemType }).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2TypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute2TypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2TypeArgumentSystemType])).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2TypeArgumentSystemType)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2TypeArgumentSystemType])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2TypeArgumentSystemType })).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2TypeArgumentSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute2TypeArgumentSystemType).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2TypeArgumentSystemType]).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2TypeArgumentSystemType).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2TypeArgumentSystemType]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2TypeArgumentSystemType }).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2TypeArgumentSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute2StringArgument).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2StringArgument]).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2StringArgument).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2StringArgument]).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2StringArgument }).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2StringArgument }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute2StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2StringArgument])).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2StringArgument])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2StringArgument })).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2StringArgument })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute2StringArgument).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute2StringArgument]).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute2StringArgument).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute2StringArgument]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute2StringArgument }).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute2StringArgument }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType])).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType })).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1IntegerArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1IntegerArgument])).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1IntegerArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1IntegerArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1IntegerArgument })).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1IntegerArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Unused attribute"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.UnusedAttribute, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.UnusedAttribute, [helper.Attribute1StringArgument]).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, [helper.Attribute1StringArgument]).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.UnusedAttribute, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, [helper.Attribute1StringArgument])).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, helper.Attribute1StringArgument)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, [helper.Attribute1StringArgument])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, new List { helper.Attribute1StringArgument })).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, new List { helper.Attribute1StringArgument })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, [helper.Attribute1StringArgument]).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, helper.Attribute1StringArgument).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, [helper.Attribute1StringArgument]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, new List { helper.Attribute1StringArgument }).AssertNoViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass),1).AssertNoViolations(helper); - - helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass),1)).AssertNoViolations(helper); - - helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass),1).AssertNoViolations(helper); - - helper.AddSnapshotHeader("Null argument"); - should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); - - helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.UnusedAttribute, null).AssertNoViolations(helper); - should.NotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, null).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), [1]).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, null)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, null)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), [1])).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttribute, null).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.UnusedAttributeSystemType, null).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(typeof(TypeDependencyNamespace.BaseClass), [1]).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); - should.NotHaveAttributeWithArguments(helper.Attribute1, []).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, []).AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List()).AssertNoViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List()).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument])).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument })).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1TypeArgumentSystemType, helper.Attribute1IntegerArgument }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithArguments, helper.ClassWithTwoAttributesWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument]).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument).AssertOnlyViolations(helper); - should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument }).AssertOnlyViolations(helper); + should.NotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument])).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument })).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, helper.Attribute1StringArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, [helper.Attribute1StringArgument]).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, helper.Attribute1StringArgument).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, [helper.Attribute1StringArgument]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1, new List { helper.Attribute1StringArgument }).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithArguments(helper.Attribute1SystemType, new List { helper.Attribute1StringArgument }).AssertOnlyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -2378,174 +2278,174 @@ public async Task NotHaveAttributeWithNamedArgumentsTest() helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute2TypeArgumentSystemType)).AssertNoViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute2TypeArgumentSystemType)]).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute2TypeArgumentSystemType) }).AssertNoViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute2TypeArgumentSystemType)).AssertNoViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute2TypeArgumentSystemType)]).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute2TypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute2TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute2TypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute2TypeArgumentSystemType) })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute2TypeArgumentSystemType))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute2TypeArgumentSystemType)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute2TypeArgumentSystemType) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute2TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute2TypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute2TypeArgumentSystemType) }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute2TypeArgumentSystemType)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute2TypeArgumentSystemType)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute2TypeArgumentSystemType) }).AssertNoViolations(helper); helper.AddSnapshotHeader("No violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute2StringArgument)).AssertNoViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute2StringArgument)]).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute2StringArgument) }).AssertNoViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute2StringArgument)).AssertNoViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute2StringArgument)]).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute2StringArgument) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute2StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute2StringArgument)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute2StringArgument) })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute2StringArgument))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute2StringArgument)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute2StringArgument) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute2StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute2StringArgument)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute2StringArgument) }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute2StringArgument)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute2StringArgument)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute2StringArgument) }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations with type arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Violations with value arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Unused attribute"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.UnusedAttribute, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertNoViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.UnusedAttribute, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.UnusedAttribute, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertNoViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertNoViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttribute, ("NamedParameter1", helper.Attribute1TypeArgument))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttribute, [("NamedParameter1", helper.Attribute1TypeArgument)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttribute, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) })).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, ("NamedParameter1", helper.Attribute1TypeArgument))).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, [("NamedParameter1", helper.Attribute1TypeArgument)])).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttribute, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttribute, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttribute, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, ("NamedParameter1", helper.Attribute1TypeArgument)).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, [("NamedParameter1", helper.Attribute1TypeArgument)]).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.UnusedAttributeSystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgument) }).AssertNoViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument))).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(typeof(TypeDependencyNamespace.BaseClass), ("NamedParameter1", helper.Attribute1TypeArgument)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, []).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, []).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)>()).AssertNoViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)>()).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [])).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)>())).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)>())).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, []).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, []).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)>()).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)>()).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple arguments"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument),]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType), ("NamedParameter2", helper.Attribute1StringArgument) }).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); should = Types().That().Are(helper.ClassWithSingleAttributeWithNamedArguments, helper.ClassWithTwoAttributesWithNamedArguments).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.NotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType))).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)])).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) })).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, ("NamedParameter1", helper.Attribute1TypeArgumentSystemType)).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, [("NamedParameter1", helper.Attribute1TypeArgumentSystemType)]).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAttributeWithNamedArguments(helper.Attribute1SystemType, new List<(string, object)> { ("NamedParameter1", helper.Attribute1TypeArgumentSystemType) }).AssertOnlyViolations(helper); await helper.AssertSnapshotMatches(); } @@ -2561,66 +2461,108 @@ public async Task NotHaveNameTest() helper.AddSnapshotSubHeader("Conditions"); should.NotHaveName(helper.BaseClass.FullName).AssertNoViolations(helper); should.NotHaveNameMatching("^.*\\.Base.*$").AssertNoViolations(helper); + should.NotHaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); + should.NotHaveNameEndingWith("Test").AssertNoViolations(helper); + should.NotHaveNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); should.NotHaveFullName(helper.BaseClass.Name).AssertNoViolations(helper); should.NotHaveFullNameMatching("^Base.*$").AssertNoViolations(helper); - should.NotHaveNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); + should.NotHaveFullNameStartingWith(helper.BaseClass.Name).AssertNoViolations(helper); + should.NotHaveFullNameEndingWith("Test").AssertNoViolations(helper); should.NotHaveFullNameContaining(helper.NonExistentObjectName).AssertNoViolations(helper); - should.NotHaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); - should.NotHaveNameEndingWith("Test").AssertNoViolations(helper); + should.NotHaveAssemblyQualifiedName(helper.ChildClass.AssemblyQualifiedName).AssertNoViolations(helper); + should.NotHaveAssemblyQualifiedNameMatching("^.*\\.Child.*$").AssertNoViolations(helper); + should.NotHaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Name).AssertNoViolations(helper); + should.NotHaveAssemblyQualifiedNameEndingWith("Test").AssertNoViolations(helper); + should.NotHaveAssemblyQualifiedNameContaining(helper.NonExistentObjectName).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveName(helper.BaseClass.FullName)).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveNameMatching("^.*\\.Base.*$")).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveNameStartingWith(helper.BaseClass.Namespace.Name)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveNameEndingWith("Test")).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveNameContaining(helper.BaseClass.Namespace.Name)).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveFullName(helper.BaseClass.Name)).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveFullNameMatching("^Base.*$")).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveNameContaining(helper.BaseClass.Namespace.Name)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveFullNameStartingWith(helper.BaseClass.Name)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveFullNameEndingWith("Test")).AssertNoViolations(helper); should.Be(Types().That().DoNotHaveFullNameContaining(helper.NonExistentObjectName)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveNameStartingWith(helper.BaseClass.Namespace.Name)).AssertNoViolations(helper); - should.Be(Types().That().DoNotHaveNameEndingWith("Test")).AssertNoViolations(helper); - + should.Be(Types().That().DoNotHaveAssemblyQualifiedName(helper.ChildClass.AssemblyQualifiedName)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameMatching("^.*\\.Child.*$")).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Name)).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameEndingWith("Test")).AssertNoViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameContaining(helper.NonExistentObjectName)).AssertNoViolations(helper); + helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveName(helper.BaseClass.FullName).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveNameMatching("^.*\\.Base.*$").AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveNameEndingWith("Test").AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveFullName(helper.BaseClass.Name).AssertNoViolations(helper); should.BeTypesThat().DoNotHaveFullNameMatching("^Base.*$").AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveNameContaining(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveFullNameStartingWith(helper.BaseClass.Name).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveFullNameEndingWith("Test").AssertNoViolations(helper); should.BeTypesThat().DoNotHaveFullNameContaining(helper.NonExistentObjectName).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveNameStartingWith(helper.BaseClass.Namespace.Name).AssertNoViolations(helper); - should.BeTypesThat().DoNotHaveNameEndingWith("Test").AssertNoViolations(helper); - + should.BeTypesThat().DoNotHaveAssemblyQualifiedName(helper.ChildClass.AssemblyQualifiedName).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameMatching("^.*\\.Child.*$").AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Name).AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameEndingWith("Test").AssertNoViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameContaining(helper.NonExistentObjectName).AssertNoViolations(helper); + helper.AddSnapshotHeader("Violations"); should = Types().That().Are(helper.BaseClass).Should(); helper.AddSnapshotSubHeader("Conditions"); should.NotHaveName(helper.BaseClass.Name).AssertOnlyViolations(helper); should.NotHaveNameMatching("^Base.*$").AssertOnlyViolations(helper); + should.NotHaveNameStartingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.NotHaveNameEndingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.NotHaveNameContaining(helper.BaseClass.Name).AssertOnlyViolations(helper); should.NotHaveFullName(helper.BaseClass.FullName).AssertOnlyViolations(helper); should.NotHaveFullNameMatching("^.*\\.Base.*$").AssertOnlyViolations(helper); - should.NotHaveNameContaining(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.NotHaveFullNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.NotHaveFullNameEndingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); should.NotHaveFullNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); - should.NotHaveNameStartingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); - should.NotHaveNameEndingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.NotHaveAssemblyQualifiedName(helper.BaseClass.AssemblyQualifiedName).AssertOnlyViolations(helper); + should.NotHaveAssemblyQualifiedNameMatching("^.*\\.Base.*$").AssertOnlyViolations(helper); + should.NotHaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.NotHaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Assembly.FullName).AssertOnlyViolations(helper); + should.NotHaveAssemblyQualifiedNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().DoNotHaveName(helper.BaseClass.Name)).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveNameMatching("^Base.*$")).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveNameStartingWith(helper.BaseClass.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveNameEndingWith(helper.BaseClass.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveNameContaining(helper.BaseClass.Name)).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveFullName(helper.BaseClass.FullName)).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveFullNameMatching("^.*\\.Base.*$")).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveNameContaining(helper.BaseClass.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveFullNameStartingWith(helper.BaseClass.Namespace.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveFullNameEndingWith(helper.BaseClass.Name)).AssertOnlyViolations(helper); should.Be(Types().That().DoNotHaveFullNameContaining(helper.BaseClass.Namespace.Name)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveNameStartingWith(helper.BaseClass.Name)).AssertOnlyViolations(helper); - should.Be(Types().That().DoNotHaveNameEndingWith(helper.BaseClass.Name)).AssertOnlyViolations(helper); - + should.Be(Types().That().DoNotHaveAssemblyQualifiedName(helper.BaseClass.AssemblyQualifiedName)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameMatching("^.*\\.Base.*$")).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Namespace.Name)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Assembly.FullName)).AssertOnlyViolations(helper); + should.Be(Types().That().DoNotHaveAssemblyQualifiedNameContaining(helper.BaseClass.Namespace.Name)).AssertOnlyViolations(helper); + helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().DoNotHaveName(helper.BaseClass.Name).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveNameMatching("^Base.*$").AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveNameStartingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveNameEndingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveNameContaining(helper.BaseClass.Name).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveFullName(helper.BaseClass.FullName).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveFullNameMatching("^.*\\.Base.*$").AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveNameContaining(helper.BaseClass.Name).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveFullNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveFullNameEndingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); should.BeTypesThat().DoNotHaveFullNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveNameStartingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); - should.BeTypesThat().DoNotHaveNameEndingWith(helper.BaseClass.Name).AssertOnlyViolations(helper); - + should.BeTypesThat().DoNotHaveAssemblyQualifiedName(helper.BaseClass.AssemblyQualifiedName).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameMatching("^.*\\.Base.*$").AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameStartingWith(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameEndingWith(helper.BaseClass.Assembly.FullName).AssertOnlyViolations(helper); + should.BeTypesThat().DoNotHaveAssemblyQualifiedNameContaining(helper.BaseClass.Namespace.Name).AssertOnlyViolations(helper); + await helper.AssertSnapshotMatches(); } @@ -2636,22 +2578,22 @@ public async Task OnlyDependOnTest() should.OnlyDependOn(helper.BaseClass).AssertNoViolations(helper); should.OnlyDependOn(helper.BaseClassSystemType).AssertNoViolations(helper); should.OnlyDependOn(Classes().That().Are(helper.BaseClass)).AssertNoViolations(helper); - should.OnlyDependOn([helper.BaseClass]).AssertNoViolations(helper); - should.OnlyDependOn([helper.BaseClassSystemType]).AssertNoViolations(helper); + should.OnlyDependOn(new List { helper.BaseClass }).AssertNoViolations(helper); + should.OnlyDependOn(new List { helper.BaseClassSystemType }).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().OnlyDependOn(helper.BaseClass)).AssertNoViolations(helper); should.Be(Types().That().OnlyDependOn(helper.BaseClassSystemType)).AssertNoViolations(helper); should.Be(Types().That().OnlyDependOn(Classes().That().Are(helper.BaseClass))).AssertNoViolations(helper); - should.Be(Types().That().OnlyDependOn([helper.BaseClass])).AssertNoViolations(helper); - should.Be(Types().That().OnlyDependOn([helper.BaseClassSystemType])).AssertNoViolations(helper); + should.Be(Types().That().OnlyDependOn(new List { helper.BaseClass })).AssertNoViolations(helper); + should.Be(Types().That().OnlyDependOn(new List { helper.BaseClassSystemType })).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().OnlyDependOn(helper.BaseClass).AssertNoViolations(helper); should.BeTypesThat().OnlyDependOn(helper.BaseClassSystemType).AssertNoViolations(helper); should.BeTypesThat().OnlyDependOn(Classes().That().Are(helper.BaseClass)).AssertNoViolations(helper); - should.BeTypesThat().OnlyDependOn([helper.BaseClass]).AssertNoViolations(helper); - should.BeTypesThat().OnlyDependOn([helper.BaseClassSystemType]).AssertNoViolations(helper); + should.BeTypesThat().OnlyDependOn(new List { helper.BaseClass }).AssertNoViolations(helper); + should.BeTypesThat().OnlyDependOn(new List { helper.BaseClassSystemType }).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); should = Types().That().Are(helper.ClassWithMultipleDependencies).Should(); @@ -2660,15 +2602,15 @@ public async Task OnlyDependOnTest() should.OnlyDependOn(helper.BaseClass).AssertOnlyViolations(helper); should.OnlyDependOn(helper.BaseClassSystemType).AssertOnlyViolations(helper); should.OnlyDependOn(Classes().That().Are(helper.BaseClass)).AssertOnlyViolations(helper); - should.OnlyDependOn([helper.BaseClass]).AssertOnlyViolations(helper); - should.OnlyDependOn([helper.BaseClassSystemType]).AssertOnlyViolations(helper); + should.OnlyDependOn(new List { helper.BaseClass }).AssertOnlyViolations(helper); + should.OnlyDependOn(new List { helper.BaseClassSystemType }).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().OnlyDependOn(helper.BaseClass)).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(helper.BaseClassSystemType)).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(Classes().That().Are(helper.BaseClass))).AssertOnlyViolations(helper); - should.Be(Types().That().OnlyDependOn([helper.BaseClass])).AssertOnlyViolations(helper); - should.Be(Types().That().OnlyDependOn([helper.BaseClassSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyDependOn(new List { helper.BaseClass })).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyDependOn(new List { helper.BaseClassSystemType })).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Type outside of architecture"); should = Types().That().Are(helper.ClassWithMultipleDependencies).Should(); @@ -2677,25 +2619,28 @@ public async Task OnlyDependOnTest() should.OnlyDependOn(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().OnlyDependOn(typeof(AttributeNamespace.ClassWithoutAttributes))).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyDependOn(typeof(AttributeNamespace.ClassWithoutAttributes))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().OnlyDependOn(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertOnlyViolations(helper); + should.BeTypesThat().OnlyDependOn(typeof(AttributeNamespace.ClassWithoutAttributes)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithMultipleDependencies).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.OnlyDependOn().AssertOnlyViolations(helper); should.OnlyDependOn(new List()).AssertOnlyViolations(helper); should.OnlyDependOn(new List()).AssertOnlyViolations(helper); should.OnlyDependOn(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().OnlyDependOn()).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(new List())).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(new List())).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(Classes().That().HaveFullName(helper.NonExistentObjectName))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().OnlyDependOn().AssertOnlyViolations(helper); should.BeTypesThat().OnlyDependOn(new List()).AssertOnlyViolations(helper); should.BeTypesThat().OnlyDependOn(new List()).AssertOnlyViolations(helper); should.BeTypesThat().OnlyDependOn(Classes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); @@ -2705,23 +2650,23 @@ public async Task OnlyDependOnTest() helper.AddSnapshotSubHeader("Conditions"); should.OnlyDependOn(helper.BaseClass, helper.OtherBaseClass).AssertOnlyViolations(helper); - should.OnlyDependOn([helper.BaseClass, helper.OtherBaseClass]).AssertOnlyViolations(helper); + should.OnlyDependOn(new List { helper.BaseClass, helper.OtherBaseClass }).AssertOnlyViolations(helper); should.OnlyDependOn(helper.BaseClassSystemType, helper.OtherBaseClassSystemType).AssertOnlyViolations(helper); - should.OnlyDependOn([helper.BaseClassSystemType, helper.OtherBaseClassSystemType]).AssertOnlyViolations(helper); + should.OnlyDependOn(new List { helper.BaseClassSystemType, helper.OtherBaseClassSystemType }).AssertOnlyViolations(helper); should.OnlyDependOn(Classes().That().Are(helper.BaseClass, helper.OtherBaseClass)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().OnlyDependOn(helper.BaseClass, helper.OtherBaseClass)).AssertOnlyViolations(helper); - should.Be(Types().That().OnlyDependOn([helper.BaseClass, helper.OtherBaseClass])).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyDependOn(new List { helper.BaseClass, helper.OtherBaseClass })).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(helper.BaseClassSystemType, helper.OtherBaseClassSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().OnlyDependOn([helper.BaseClassSystemType, helper.OtherBaseClassSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyDependOn(new List { helper.BaseClassSystemType, helper.OtherBaseClassSystemType })).AssertOnlyViolations(helper); should.Be(Types().That().OnlyDependOn(Classes().That().Are(helper.BaseClass, helper.OtherBaseClass))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().OnlyDependOn(helper.BaseClass, helper.OtherBaseClass).AssertOnlyViolations(helper); - should.BeTypesThat().OnlyDependOn([helper.BaseClass, helper.OtherBaseClass]).AssertOnlyViolations(helper); + should.BeTypesThat().OnlyDependOn(new List { helper.BaseClass, helper.OtherBaseClass }).AssertOnlyViolations(helper); should.BeTypesThat().OnlyDependOn(helper.BaseClassSystemType, helper.OtherBaseClassSystemType).AssertOnlyViolations(helper); - should.BeTypesThat().OnlyDependOn([helper.BaseClassSystemType, helper.OtherBaseClassSystemType]).AssertOnlyViolations(helper); + should.BeTypesThat().OnlyDependOn(new List { helper.BaseClassSystemType, helper.OtherBaseClassSystemType }).AssertOnlyViolations(helper); should.BeTypesThat().OnlyDependOn(Classes().That().Are(helper.BaseClass, helper.OtherBaseClass)).AssertOnlyViolations(helper); await helper.AssertSnapshotMatches(); @@ -2751,23 +2696,23 @@ public async Task OnlyHaveAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.OnlyHaveAttributes(helper.Attribute1).AssertNoViolations(helper); - should.OnlyHaveAttributes([helper.Attribute1]).AssertNoViolations(helper); + should.OnlyHaveAttributes(new List { helper.Attribute1 }).AssertNoViolations(helper); should.OnlyHaveAttributes(helper.Attribute1SystemType).AssertNoViolations(helper); - should.OnlyHaveAttributes([helper.Attribute1SystemType]).AssertNoViolations(helper); + should.OnlyHaveAttributes(new List { helper.Attribute1SystemType }).AssertNoViolations(helper); should.OnlyHaveAttributes(Attributes().That().Are(helper.Attribute1)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().OnlyHaveAttributes(helper.Attribute1)).AssertNoViolations(helper); - should.Be(Types().That().OnlyHaveAttributes([helper.Attribute1])).AssertNoViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(new List { helper.Attribute1 })).AssertNoViolations(helper); should.Be(Types().That().OnlyHaveAttributes(helper.Attribute1SystemType)).AssertNoViolations(helper); - should.Be(Types().That().OnlyHaveAttributes([helper.Attribute1SystemType])).AssertNoViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(new List { helper.Attribute1SystemType })).AssertNoViolations(helper); should.Be(Types().That().OnlyHaveAttributes(Attributes().That().Are(helper.Attribute1))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().OnlyHaveAttributes(helper.Attribute1).AssertNoViolations(helper); - should.BeTypesThat().OnlyHaveAttributes([helper.Attribute1]).AssertNoViolations(helper); + should.BeTypesThat().OnlyHaveAttributes(new List { helper.Attribute1 }).AssertNoViolations(helper); should.BeTypesThat().OnlyHaveAttributes(helper.Attribute1SystemType).AssertNoViolations(helper); - should.BeTypesThat().OnlyHaveAttributes([helper.Attribute1SystemType]).AssertNoViolations(helper); + should.BeTypesThat().OnlyHaveAttributes(new List { helper.Attribute1SystemType }).AssertNoViolations(helper); should.BeTypesThat().OnlyHaveAttributes(Attributes().That().Are(helper.Attribute1)).AssertNoViolations(helper); helper.AddSnapshotHeader("Violations"); @@ -2775,16 +2720,16 @@ public async Task OnlyHaveAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.OnlyHaveAttributes(helper.UnusedAttribute).AssertOnlyViolations(helper); - should.OnlyHaveAttributes([helper.UnusedAttribute]).AssertOnlyViolations(helper); + should.OnlyHaveAttributes(new List { helper.UnusedAttribute }).AssertOnlyViolations(helper); should.OnlyHaveAttributes(helper.UnusedAttributeSystemType).AssertOnlyViolations(helper); - should.OnlyHaveAttributes([helper.UnusedAttributeSystemType]).AssertOnlyViolations(helper); + should.OnlyHaveAttributes(new List { helper.UnusedAttributeSystemType }).AssertOnlyViolations(helper); should.OnlyHaveAttributes(Attributes().That().Are(helper.UnusedAttribute)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().OnlyHaveAttributes(helper.UnusedAttribute)).AssertOnlyViolations(helper); - should.Be(Types().That().OnlyHaveAttributes([helper.UnusedAttribute])).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(new List { helper.UnusedAttribute })).AssertOnlyViolations(helper); should.Be(Types().That().OnlyHaveAttributes(helper.UnusedAttributeSystemType)).AssertOnlyViolations(helper); - should.Be(Types().That().OnlyHaveAttributes([helper.UnusedAttributeSystemType])).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(new List { helper.UnusedAttributeSystemType })).AssertOnlyViolations(helper); should.Be(Types().That().OnlyHaveAttributes(Attributes().That().Are(helper.UnusedAttribute))).AssertOnlyViolations(helper); helper.AddSnapshotHeader("Attribute outside of architecture"); @@ -2794,25 +2739,28 @@ public async Task OnlyHaveAttributesTest() should.OnlyHaveAttributes(typeof(TypeDependencyNamespace.BaseClass)).AssertException(helper); helper.AddSnapshotSubHeader("Predicates"); - should.Be(Types().That().OnlyHaveAttributes(typeof(TypeDependencyNamespace.BaseClass))).AssertOnlyViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(typeof(TypeDependencyNamespace.BaseClass))).AssertException(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); - should.BeTypesThat().OnlyHaveAttributes(typeof(TypeDependencyNamespace.BaseClass)).AssertOnlyViolations(helper); + should.BeTypesThat().OnlyHaveAttributes(typeof(TypeDependencyNamespace.BaseClass)).AssertException(helper); helper.AddSnapshotHeader("Empty arguments"); should = Types().That().Are(helper.ClassWithSingleAttribute).Should(); helper.AddSnapshotSubHeader("Conditions"); + should.OnlyHaveAttributes().AssertOnlyViolations(helper); should.OnlyHaveAttributes(new List()).AssertOnlyViolations(helper); should.OnlyHaveAttributes(new List()).AssertOnlyViolations(helper); should.OnlyHaveAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates"); + should.Be(Types().That().OnlyHaveAttributes()).AssertOnlyViolations(helper); should.Be(Types().That().OnlyHaveAttributes(new List())).AssertOnlyViolations(helper); should.Be(Types().That().OnlyHaveAttributes(new List())).AssertOnlyViolations(helper); should.Be(Types().That().OnlyHaveAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName))).AssertOnlyViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); + should.BeTypesThat().OnlyHaveAttributes().AssertOnlyViolations(helper); should.BeTypesThat().OnlyHaveAttributes(new List()).AssertOnlyViolations(helper); should.BeTypesThat().OnlyHaveAttributes(new List()).AssertOnlyViolations(helper); should.BeTypesThat().OnlyHaveAttributes(Attributes().That().HaveFullName(helper.NonExistentObjectName)).AssertOnlyViolations(helper); @@ -2822,23 +2770,23 @@ public async Task OnlyHaveAttributesTest() helper.AddSnapshotSubHeader("Conditions"); should.OnlyHaveAttributes(helper.Attribute1, helper.Attribute2).AssertNoViolations(helper); - should.OnlyHaveAttributes([helper.Attribute1, helper.Attribute2]).AssertNoViolations(helper); + should.OnlyHaveAttributes(new List { helper.Attribute1, helper.Attribute2 }).AssertNoViolations(helper); should.OnlyHaveAttributes(helper.Attribute1SystemType, helper.Attribute2SystemType).AssertNoViolations(helper); - should.OnlyHaveAttributes([helper.Attribute1SystemType, helper.Attribute2SystemType]).AssertNoViolations(helper); + should.OnlyHaveAttributes(new List { helper.Attribute1SystemType, helper.Attribute2SystemType }).AssertNoViolations(helper); should.OnlyHaveAttributes(Attributes().That().Are(helper.Attribute1, helper.Attribute2)).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates"); should.Be(Types().That().OnlyHaveAttributes(helper.Attribute1, helper.Attribute2)).AssertNoViolations(helper); - should.Be(Types().That().OnlyHaveAttributes([helper.Attribute1, helper.Attribute2])).AssertNoViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(new List { helper.Attribute1, helper.Attribute2 })).AssertNoViolations(helper); should.Be(Types().That().OnlyHaveAttributes(helper.Attribute1SystemType, helper.Attribute2SystemType)).AssertNoViolations(helper); - should.Be(Types().That().OnlyHaveAttributes([helper.Attribute1SystemType, helper.Attribute2SystemType])).AssertNoViolations(helper); + should.Be(Types().That().OnlyHaveAttributes(new List { helper.Attribute1SystemType, helper.Attribute2SystemType })).AssertNoViolations(helper); should.Be(Types().That().OnlyHaveAttributes(Attributes().That().Are(helper.Attribute1, helper.Attribute2))).AssertNoViolations(helper); helper.AddSnapshotSubHeader("Predicates as conditions"); should.BeTypesThat().OnlyHaveAttributes(helper.Attribute1, helper.Attribute2).AssertNoViolations(helper); - should.BeTypesThat().OnlyHaveAttributes([helper.Attribute1, helper.Attribute2]).AssertNoViolations(helper); + should.BeTypesThat().OnlyHaveAttributes(new List { helper.Attribute1, helper.Attribute2 }).AssertNoViolations(helper); should.BeTypesThat().OnlyHaveAttributes(helper.Attribute1SystemType, helper.Attribute2SystemType).AssertNoViolations(helper); - should.BeTypesThat().OnlyHaveAttributes([helper.Attribute1SystemType, helper.Attribute2SystemType]).AssertNoViolations(helper); + should.BeTypesThat().OnlyHaveAttributes(new List { helper.Attribute1SystemType, helper.Attribute2SystemType }).AssertNoViolations(helper); should.BeTypesThat().OnlyHaveAttributes(Attributes().That().Are(helper.Attribute1, helper.Attribute2)).AssertNoViolations(helper); helper.AddSnapshotHeader("Multiple inputs"); diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.BeTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.BeTest.verified.txt index be5d74f70..0393ea11e 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.BeTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.BeTest.verified.txt @@ -88,6 +88,15 @@ Message: +Query: Types that are "TypeDependencyNamespace.BaseClass" should not exist +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not exist" failed: + TypeDependencyNamespace.BaseClass does exist + + + Query: Types that are "TypeDependencyNamespace.BaseClass" should not exist Result: False Description: TypeDependencyNamespace.BaseClass is TypeDependencyNamespace.BaseClass diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.CallAnyTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.CallAnyTest.verified.txt index 97fe9bf7b..e9709c523 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.CallAnyTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.CallAnyTest.verified.txt @@ -2,13 +2,13 @@ ----- Conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: @@ -64,30 +64,30 @@ All Evaluations passed ----- Conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does call +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does not call any methods Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does call +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does not call any methods -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does call +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does not call any methods Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does call +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does not call any methods Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does call +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does not call any methods Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" should call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does call + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies() does not call any methods @@ -155,30 +155,48 @@ Message: Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any of no methods (impossible) Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any of no methods (impossible)" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" + + + +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any of no methods (impossible) +Result: False +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Message: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any of no methods (impossible)" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any Method members that have full name "NotTheNameOfAnyObject" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should call any Method members that have full name "NotTheNameOfAnyObject"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" ----- Predicates ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that call one of no methods (impossible) +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any method Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that call one of no methods (impossible) +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any method Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that call one of no methods (impossible)" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that call one of no methods (impossible) +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any method" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any method + + + +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any method +Result: False +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any method +Message: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any method" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any method @@ -193,11 +211,20 @@ Message: ----- Predicates as conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that call one of no methods (impossible) +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any method +Result: False +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does exist +Message: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any method" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does exist + + + +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any method Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does exist Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that call one of no methods (impossible)" failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any method" failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does exist @@ -217,48 +244,48 @@ Message: Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodD... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodD..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" ----- Predicates ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDep... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho... Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDep... +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe..." failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho... -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDep... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho... Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDep... +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe..." failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Metho... @@ -273,20 +300,20 @@ Message: ----- Predicates as conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe... Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does exist Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend..." failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe..." failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does exist -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe... Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does exist Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDepend..." failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDe..." failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does exist @@ -310,18 +337,18 @@ Description: System.Void MethodDependencyNamespace.MethodDependencyClass::Method Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3() +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()"" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() only calls "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" ----- Predicates ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespac... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyName... Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() passed Message: @@ -338,7 +365,7 @@ Message: ----- Predicates as conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespac... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyName... Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() passed Message: diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTest.verified.txt index 84a0cd910..3a84ddbf6 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTest.verified.txt @@ -2,13 +2,13 @@ ----- Conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: @@ -20,13 +20,13 @@ Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should depend on "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: @@ -100,48 +100,48 @@ All Evaluations passed ----- Conditions ----- -Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" -Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any Classes that are "TypeDependencyNamespace.ClassWithoutDependencies" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any Classes that are "TypeDependencyNamespace.ClassWithoutDependencies"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" -Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" -Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +"Types that have full name "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "TypeDependencyNamespace.ClassWithoutDependencies"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" @@ -243,30 +243,18 @@ Message: ----- Conditions ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "AttributeNamespace.ClassWithoutAttributes" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on "AttributeNamespace.ClassWithoutAttributes" Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ----- Predicates ----- Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "AttributeNamespace.ClassWithoutAttributes" -Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "AttributeNamespace.ClassWithoutAttributes" -Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "AttributeNamespace.ClassWithoutAttributes"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "AttributeNamespace.ClassWithoutAttributes" - - +Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ----- Predicates as conditions ----- Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "AttributeNamespace.ClassWithoutAttributes" -Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does exist -Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "AttributeNamespace.ClassWithoutAttributes"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does exist - - +Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ===== Empty arguments ===== @@ -274,48 +262,66 @@ Message: Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any of no types (impossible) Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any of no types (impossible)" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any of no types (impossible) Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any of no types (impossible)" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" + + + +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any of no types (impossible) +Result: False +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" +Message: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any of no types (impossible)" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any Classes that have full name "NotTheNameOfAnyObject" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any Classes that have full name "NotTheNameOfAnyObject"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any of no types (impossible) +Result: False +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any of no types (impossible) +Message: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any of no types (impossible)" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any of no types (impossible) + + + +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any of no types (impossible) Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any of no types (impossible) Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any of no types (impossible)" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any of no types (impossible) -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any of no types (impossible) Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any of no types (impossible) Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any of no types (impossible)" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any of no types (impossible) @@ -330,20 +336,29 @@ Message: ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any of no types (impossible) +Result: False +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does exist +Message: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any of no types (impossible)" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies does exist + + + +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any of no types (impossible) Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies does exist Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any of no types (impossible)" failed: TypeDependencyNamespace.ClassWithMultipleDependencies does exist -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any of no types (impossible) Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies does exist Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any of no types (impossible)" failed: TypeDependencyNamespace.ClassWithMultipleDependencies does exist @@ -363,112 +378,112 @@ Message: Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies only depends on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" @@ -479,31 +494,31 @@ Message: Query: Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" Result: False -Description: TypeDependencyNamespace.ClassWithoutDependencies does depend on System.Object +Description: TypeDependencyNamespace.ClassWithoutDependencies does not depend on any type Message: "Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass"" failed: - TypeDependencyNamespace.ClassWithoutDependencies does depend on System.Object + TypeDependencyNamespace.ClassWithoutDependencies does not depend on any type ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be Types that depend on "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" +Query: Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be Types that depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" Result: False -Description: TypeDependencyNamespace.ClassWithoutDependencies is not Types that depend on "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" +Description: TypeDependencyNamespace.ClassWithoutDependencies is not Types that depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be Types that depend on "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass"" failed: - TypeDependencyNamespace.ClassWithoutDependencies is not Types that depend on "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" +"Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be Types that depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass"" failed: + TypeDependencyNamespace.ClassWithoutDependencies is not Types that depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be types that depend on "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" +Query: Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be types that depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" Result: False Description: TypeDependencyNamespace.ClassWithoutDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be types that depend on "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithoutDependencies" should be types that depend on any "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass"" failed: TypeDependencyNamespace.ClassWithoutDependencies is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" @@ -512,7 +527,7 @@ Message: ----- Conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" should depend on any "TypeDependencyNamespace.BaseClassWithMultipleDependencies" +Query: Types that are "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" should depend on "TypeDependencyNamespace.BaseClassWithMultipleDependencies" Result: True Description: TypeDependencyNamespace.ChildClass1 passed Result: True @@ -520,15 +535,15 @@ Description: TypeDependencyNamespace.ChildClass2 passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.BaseClass" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that are "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.BaseClass" should depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: False -Description: TypeDependencyNamespace.BaseClass does depend on System.Object +Description: TypeDependencyNamespace.BaseClass does not depend on any type Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass only depends on "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.BaseClass" should depend on any "TypeDependencyNamespace.ClassWithoutDependencies"" failed: - TypeDependencyNamespace.BaseClass does depend on System.Object - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +"Types that are "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.BaseClass" should depend on "TypeDependencyNamespace.ClassWithoutDependencies"" failed: + TypeDependencyNamespace.BaseClass does not depend on any type + TypeDependencyNamespace.ChildClass only depends on "TypeDependencyNamespace.BaseClass" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTypesThatTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTypesThatTest.verified.txt index 6ca2df934..4744b0226 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTypesThatTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTypesThatTest.verified.txt @@ -10,10 +10,10 @@ All Evaluations passed Query: Types that are "TypeDependencyNamespace.BaseClass" should depend on any types that are "TypeDependencyNamespace.ChildClass" Result: False -Description: TypeDependencyNamespace.BaseClass does depend on System.Object +Description: TypeDependencyNamespace.BaseClass does not depend on any type Message: "Types that are "TypeDependencyNamespace.BaseClass" should depend on any types that are "TypeDependencyNamespace.ChildClass"" failed: - TypeDependencyNamespace.BaseClass does depend on System.Object + TypeDependencyNamespace.BaseClass does not depend on any type diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesTest.verified.txt index 5c044adfc..38f5e0e2c 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesTest.verified.txt @@ -2,25 +2,25 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -34,25 +34,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -66,25 +66,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -100,86 +100,86 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any Attributes that are "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any Attributes that are "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: "Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any Attributes that are "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any Attributes that are "AttributeNamespace.UnusedAttribute" + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have "AttributeNamespace.UnusedAttribute" @@ -194,38 +194,38 @@ Message: ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributes does exist Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithTwoAttributes does exist -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributes does exist Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithTwoAttributes does exist -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributes does exist Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithTwoAttributes does exist -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributes does exist Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithTwoAttributes does exist @@ -243,50 +243,68 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have one of no attributes (impossible) +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any of no attributes (impossible) Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any of no attributes (always true) +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have one of no attributes (impossible)" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any of no attributes (always true) +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any of no attributes (impossible)" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have one of no attributes (impossible) +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any of no attributes (impossible) Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any of no attributes (always true) +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have one of no attributes (impossible)" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any of no attributes (always true) +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any of no attributes (impossible)" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" + + + +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any of no attributes (impossible) +Result: False +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" +Message: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any of no attributes (impossible)" failed: + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any Attributes that have full name "NotTheNameOfAnyObject" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any Attributes that have full name "NotTheNameOfAnyObject" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: "Types that are "AttributeNamespace.ClassWithTwoAttributes" should have any Attributes that have full name "NotTheNameOfAnyObject"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any Attributes that have full name "NotTheNameOfAnyObject" + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have one of no attributes (impossible) +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any of no attributes (always empty) Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have one of no attributes (impossible) +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have any of no attributes (always empty) Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have one of no attributes (impossible)" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that have one of no attributes (impossible) +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any of no attributes (always empty)" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have any of no attributes (always empty) -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have one of no attributes (impossible) +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any of no attributes (always empty) Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have one of no attributes (impossible) +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have any of no attributes (always empty) Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have one of no attributes (impossible)" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that have one of no attributes (impossible) +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any of no attributes (always empty)" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have any of no attributes (always empty) + + + +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any of no attributes (always empty) +Result: False +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that have any of no attributes (always empty) +Message: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any of no attributes (always empty)" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that have any of no attributes (always empty) @@ -301,20 +319,29 @@ Message: ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have one of no attributes (impossible) +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any of no attributes (always empty) +Result: False +Description: AttributeNamespace.ClassWithTwoAttributes does exist +Message: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any of no attributes (always empty)" failed: + AttributeNamespace.ClassWithTwoAttributes does exist + + + +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any of no attributes (always empty) Result: False Description: AttributeNamespace.ClassWithTwoAttributes does exist Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have one of no attributes (impossible)" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any of no attributes (always empty)" failed: AttributeNamespace.ClassWithTwoAttributes does exist -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have one of no attributes (impossible) +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any of no attributes (always empty) Result: False Description: AttributeNamespace.ClassWithTwoAttributes does exist Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have one of no attributes (impossible)" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any of no attributes (always empty)" failed: AttributeNamespace.ClassWithTwoAttributes does exist @@ -364,25 +391,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -396,25 +423,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that have any "AttributeNamespace.Attribute1" or "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -430,7 +457,7 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" should have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" should have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Result: True @@ -438,20 +465,20 @@ Description: AttributeNamespace.ClassWithThreeAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should have "AttributeNamespace.Attribute1" Result: False -Description: AttributeNamespace.ClassWithoutAttributes does not have any "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithoutAttributes does not have any attributes Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should have any "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithoutAttributes does not have any "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithoutAttributes does not have any attributes ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" should be Types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Result: True @@ -459,20 +486,20 @@ Description: AttributeNamespace.ClassWithThreeAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be Types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be Types that have "AttributeNamespace.Attribute1" Result: False -Description: AttributeNamespace.ClassWithoutAttributes is not Types that have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithoutAttributes is not Types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be Types that have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithoutAttributes is not Types that have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be Types that have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithoutAttributes is not Types that have "AttributeNamespace.Attribute1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" should be types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" should be types that have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Result: True @@ -480,13 +507,13 @@ Description: AttributeNamespace.ClassWithThreeAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be types that have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be types that have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be types that have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithoutAttributes" should be types that have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesThatTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesThatTest.verified.txt index 142f971c0..fbe9ca82e 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesThatTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesThatTest.verified.txt @@ -10,10 +10,10 @@ All Evaluations passed Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should have attributes that are "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" Message: "Types that are "AttributeNamespace.ClassWithTwoAttributes" should have attributes that are "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithTwoAttributes does not have any "AttributeNamespace.UnusedAttribute" + AttributeNamespace.ClassWithTwoAttributes only has attributes "AttributeNamespace.Attribute1" and "AttributeNamespace.Attribute2" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithArgumentsTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithArgumentsTest.verified.txt index 8c54b53c5..a2325a13e 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithArgumentsTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithArgumentsTest.verified.txt @@ -2,13 +2,7 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -16,13 +10,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -30,13 +18,7 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -46,13 +28,7 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with argument "1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -60,13 +36,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with argument "1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -74,13 +44,7 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with argument "1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -90,60 +54,33 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute AttributeNamespace.Attribute1 with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with argument "AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute AttributeNamespace.Attribute1 with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with argument "AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with argument "AttributeNamespace.UnusedTypeArgument" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with argument "AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist @@ -152,142 +89,71 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithoutAttributes does have no attribute with an argument -Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithoutAttributes does have no attribute with an argument - - - -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes with argument "1" Result: False -Description: AttributeNamespace.ClassWithoutAttributes does have no attribute with an argument +Description: AttributeNamespace.ClassWithoutAttributes does not have any attributes Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithoutAttributes does have no attribute with an argument +"Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes with argument "1"" failed: + AttributeNamespace.ClassWithoutAttributes does not have any attributes ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes with arguments "1" -Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes with arguments "1" - - - -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes with argument "1" Result: False -Description: AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes with arguments "1" +Description: AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes with arguments "1" +"Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes with argument "1"" failed: + AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes with argument "1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" - - - -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes with argument "1" Result: False Description: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes with arguments "1"" failed: +"Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes with argument "1"" failed: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -===== Null argument ===== +===== Empty arguments ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithoutAttributes does not have any attributes Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes" failed: + AttributeNamespace.ClassWithoutAttributes does not have any attributes ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "" +Description: AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "" +"Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes" failed: + AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" - - - -===== Empty arguments ===== - ------ Conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have no or any attributes with arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have no or any attributes with arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed +Description: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" Message: -All Evaluations passed - ------ Predicates ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have no or any attributes with arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed +"Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes" failed: + AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have no or any attributes with arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed -Message: -All Evaluations passed - ------ Predicates as conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have no or any attributes with arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have no or any attributes with arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed -Message: -All Evaluations passed ===== Multiple arguments ===== @@ -295,19 +161,10 @@ All Evaluations passed Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "42" and "NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute AttributeNamespace.Attribute1 with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have any attributes with arguments "42" and "NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute AttributeNamespace.Attribute1 with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" @@ -322,15 +179,6 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" - - - ----- Predicates as conditions ----- Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" @@ -342,20 +190,11 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have any attributes with arguments "42" and "NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - ===== Multiple inputs ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have any attributes with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Result: True @@ -363,20 +202,20 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have any attributes with arguments "2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have any attributes with argument "2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute AttributeNamespace.Attribute1 with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have any attributes with arguments "2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have any attributes with argument "2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute AttributeNamespace.Attribute1 with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have any attributes with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Result: True @@ -384,20 +223,20 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have any attributes with arguments "2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have any attributes with argument "2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with argument "2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have any attributes with arguments "2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with arguments "2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have any attributes with argument "2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have any attributes with argument "2" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have any attributes with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Result: True @@ -405,13 +244,13 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have any attributes with arguments "2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have any attributes with argument "2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have any attributes with arguments "2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have any attributes with argument "2"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithNamedArguments.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithNamedArguments.verified.txt index f8356e86d..6984eab85 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithNamedArguments.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAnyAttributesWithNamedArguments.verified.txt @@ -2,13 +2,13 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -16,13 +16,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -30,13 +30,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -46,13 +46,13 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -60,13 +60,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -74,13 +74,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -90,114 +90,114 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does have no attribute with a named argument +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute AttributeNamespace.Attribute1 without named arguments ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have any attributes with named argument "NamedParameter2=Argument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have any attributes with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" @@ -206,114 +206,114 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist @@ -322,114 +322,114 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "InvalidName=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "InvalidName=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "InvalidName=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "InvalidName=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist @@ -438,27 +438,36 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have no or any attributes with named arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes +Result: False +Description: AttributeNamespace.ClassWithoutAttributes does not have any attribute Message: -All Evaluations passed +"Types that are "AttributeNamespace.ClassWithoutAttributes" should have any attributes" failed: + AttributeNamespace.ClassWithoutAttributes does not have any attribute + + ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have no or any attributes with named arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes +Result: False +Description: AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes Message: -All Evaluations passed +"Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that have any attributes" failed: + AttributeNamespace.ClassWithoutAttributes is not Types that have any attributes + + ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have no or any attributes with named arguments (always true) -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes +Result: False +Description: AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" Message: -All Evaluations passed +"Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that have any attributes" failed: + AttributeNamespace.ClassWithoutAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" + + ===== Multiple arguments ===== @@ -478,19 +487,19 @@ All Evaluations passed Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" @@ -562,7 +571,7 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Result: True @@ -570,20 +579,20 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Result: True @@ -591,20 +600,20 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Result: True @@ -612,13 +621,13 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have any attributes with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have any attributes with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithArgumentsTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithArgumentsTest.verified.txt index 31da0c7a0..d82d4157e 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithArgumentsTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithArgumentsTest.verified.txt @@ -2,25 +2,13 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -28,25 +16,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -54,25 +30,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -82,25 +46,13 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -108,25 +60,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -134,25 +74,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -162,114 +90,60 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.UnusedAttribute" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with arguments "AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with argument "AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist @@ -278,114 +152,60 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist @@ -394,114 +214,60 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does only have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" and "AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist @@ -510,98 +276,18 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" - - - ------ Predicates ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" - - - ------ Predicates as conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "TypeDependencyNamespace.BaseClass" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does exist - - - -===== Null argument ===== - ------ Conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute1" with arguments "" - - +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "TypeDependencyNamespace.BaseClass" with argument "Argument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute1" with arguments "" - - +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "TypeDependencyNamespace.BaseClass" with argument "Argument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments """ failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" - - +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "TypeDependencyNamespace.BaseClass" with argument "Argument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ===== Empty arguments ===== @@ -663,18 +349,6 @@ Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ----- Predicates ----- Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" @@ -689,18 +363,6 @@ Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ----- Predicates as conditions ----- Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" @@ -715,23 +377,11 @@ Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" and "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ===== Multiple inputs ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Result: True @@ -739,20 +389,20 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have attribute "AttributeNamespace.Attribute2" with arguments "2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have attribute "AttributeNamespace.Attribute2" with argument "2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute2" with arguments "2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have attribute "AttributeNamespace.Attribute2" with arguments "2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute2" with arguments "2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should have attribute "AttributeNamespace.Attribute2" with argument "2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does not have attribute "AttributeNamespace.Attribute2" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Result: True @@ -760,20 +410,20 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with arguments "2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with argument "2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute2" with arguments "2" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute2" with argument "2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with arguments "2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute2" with arguments "2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with argument "2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that have attribute "AttributeNamespace.Attribute2" with argument "2" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Result: True @@ -781,13 +431,13 @@ Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have attribute "AttributeNamespace.Attribute2" with arguments "2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have attribute "AttributeNamespace.Attribute2" with argument "2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have attribute "AttributeNamespace.Attribute2" with arguments "2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that have attribute "AttributeNamespace.Attribute2" with argument "2"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithNamedArguments.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithNamedArguments.verified.txt index 52b404ccf..a1f7961f1 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithNamedArguments.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveAttributeWithNamedArguments.verified.txt @@ -2,25 +2,25 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -28,25 +28,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -54,25 +54,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -82,25 +82,25 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -108,25 +108,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -134,25 +134,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -162,114 +162,114 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute does only have attribute "AttributeNamespace.Attribute1" without named arguments ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" @@ -278,168 +278,168 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist @@ -448,114 +448,114 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "InvalidName=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "InvalidName=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=NotTheValueOfAnyAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=NotTheValueOfAnyAttribute"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist @@ -564,114 +564,114 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.UnusedAttribute" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist @@ -680,36 +680,18 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - - +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "TypeDependencyNamespace.BaseClass" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - - +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "TypeDependencyNamespace.BaseClass" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does exist - - +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that have attribute "TypeDependencyNamespace.BaseClass" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ===== Empty arguments ===== @@ -759,39 +741,39 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does only have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" and "NamedParameter3=1" @@ -799,37 +781,37 @@ Message: Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara... Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara..." failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara... Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara..." failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara... Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara..." failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara... Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedPara..." failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument2" @@ -875,138 +857,138 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does not have attribute "AttributeNamespace.Attribute2" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" Result: True Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named arguments "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that have attribute "AttributeNamespace.Attribute2" with named argument "NamedParameter3=AttributeNamespace.TypeArgument2"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" or "AttributeNamespace.ClassWithThreeAttributesWithNamedArguments" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveNameTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveNameTest.verified.txt index d31f14a59..263ac551f 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveNameTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.HaveNameTest.verified.txt @@ -14,6 +14,24 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should have name starting with "Base" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have name ending with "Class" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have name containing "Base" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + Query: Types that are "TypeDependencyNamespace.BaseClass" should have full name "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed @@ -26,7 +44,13 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should have name containing "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should have full name starting with "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have full name ending with "BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -38,13 +62,31 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should have name starting with "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should have name ending with "Class" +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name matching "^TypeDependencyNamespace.BaseClass, .*DependencyAssembly.*$" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name starting with "TypeDependencyNamespace.BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name containing "DependencyAssembly" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -64,6 +106,24 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name starting with "Base" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name ending with "Class" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name containing "Base" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed @@ -76,7 +136,13 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name containing "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name starting with "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name ending with "BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -88,13 +154,31 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name starting with "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken... Result: True Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name ending with "Class" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name matching "^TypeDependencyNamespace.BaseClass, .*DependencyAssembly.*$" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name starting with "TypeDependencyNamespace.BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name containing "DependencyAssembly" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -114,6 +198,24 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name starting with "Base" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name ending with "Class" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name containing "Base" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name "TypeDependencyNamespace.BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed @@ -126,7 +228,13 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name containing "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name starting with "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name ending with "BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -138,13 +246,31 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name starting with "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken... Result: True Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name ending with "Class" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name matching "^TypeDependencyNamespace.BaseClass, .*DependencyAssembly.*$" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name starting with "TypeDependencyNamespace.BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name containing "DependencyAssembly" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -172,6 +298,33 @@ Message: +Query: Types that are "TypeDependencyNamespace.BaseClass" should have name starting with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have name BaseClass + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have name ending with "Base" +Result: False +Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have name ending with "Base"" failed: + TypeDependencyNamespace.BaseClass does have name BaseClass + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have name containing "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have name containing "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have name BaseClass + + + Query: Types that are "TypeDependencyNamespace.BaseClass" should have full name "BaseClass" Result: False Description: TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass @@ -190,12 +343,21 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should have name containing "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should have full name starting with "Base" Result: False -Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Description: TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass Message: -"Types that are "TypeDependencyNamespace.BaseClass" should have name containing "TypeDependencyNamespace"" failed: - TypeDependencyNamespace.BaseClass does have name BaseClass +"Types that are "TypeDependencyNamespace.BaseClass" should have full name starting with "Base"" failed: + TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have full name ending with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have full name ending with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass @@ -208,121 +370,322 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should have name starting with "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Message: -"Types that are "TypeDependencyNamespace.BaseClass" should have name starting with "TypeDependencyNamespace"" failed: - TypeDependencyNamespace.BaseClass does have name BaseClass +"Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -Query: Types that are "TypeDependencyNamespace.BaseClass" should have name ending with "Base" +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$" Result: False -Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Message: -"Types that are "TypeDependencyNamespace.BaseClass" should have name ending with "Base"" failed: - TypeDependencyNamespace.BaseClass does have name BaseClass +"Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name starting with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name starting with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name ending with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name ending with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name containing "NotTheNameOfAnyObject" +Result: False +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should have assembly qualified name containing "NotTheNameOfAnyObject"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name "BaseClass" -Result: True -Description: TypeDependencyNamespace.BaseClass passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name "TypeDependencyNamespace.BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have name "TypeDependencyNamespace.BaseClass" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that have name "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name matching "^Base.*$" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name "^.*\.Base.*$" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have name "^.*\.Base.*$" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name "^.*\.Base.*$"" failed: + TypeDependencyNamespace.BaseClass is not Types that have name "^.*\.Base.*$" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name "TypeDependencyNamespace.BaseClass" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name starting with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have name starting with "TypeDependencyNamespace" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that have name starting with "TypeDependencyNamespace" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name matching "^.*\.Base.*$" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name ending with "Base" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have name ending with "Base" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name ending with "Base"" failed: + TypeDependencyNamespace.BaseClass is not Types that have name ending with "Base" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name containing "Base" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name containing "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have name containing "TypeDependencyNamespace" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name containing "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that have name containing "TypeDependencyNamespace" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name containing "TypeDependencyNamespace" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have full name "BaseClass" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that have full name "BaseClass" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name starting with "Base" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name "^Base.*$" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have full name "^Base.*$" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name "^Base.*$"" failed: + TypeDependencyNamespace.BaseClass is not Types that have full name "^Base.*$" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have name ending with "Class" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name starting with "Base" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have full name starting with "Base" Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name starting with "Base"" failed: + TypeDependencyNamespace.BaseClass is not Types that have full name starting with "Base" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name ending with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have full name ending with "TypeDependencyNamespace" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name ending with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that have full name ending with "TypeDependencyNamespace" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name containing "NotTheNameOfAnyObject" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have full name containing "NotTheNameOfAnyObject" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have full name containing "NotTheNameOfAnyObject"" failed: + TypeDependencyNamespace.BaseClass is not Types that have full name containing "NotTheNameOfAnyObject" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name "TypeDependencyNamespace.BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name "TypeDependencyNamespace.BaseClass" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name "TypeDependencyNamespace.BaseClass" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$"" failed: + TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name starting with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name starting with "BaseClass" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name starting with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name starting with "BaseClass" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name ending with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name ending with "TypeDependencyNamespace" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name ending with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name ending with "TypeDependencyNamespace" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name containing "NotTheNameOfAnyObject" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name containing "NotTheNameOfAnyObject" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that have assembly qualified name containing "NotTheNameOfAnyObject"" failed: + TypeDependencyNamespace.BaseClass is not Types that have assembly qualified name containing "NotTheNameOfAnyObject" + + ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name "BaseClass" -Result: True -Description: TypeDependencyNamespace.BaseClass passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name "TypeDependencyNamespace.BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have name "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name matching "^Base.*$" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name "^.*\.Base.*$" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have name "^.*\.Base.*$"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name "TypeDependencyNamespace.BaseClass" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name starting with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name matching "^.*\.Base.*$" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name ending with "Base" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have name ending with "Base"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name containing "Base" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name containing "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have name containing "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name containing "TypeDependencyNamespace" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name starting with "Base" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name "^Base.*$" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name "^Base.*$"" failed: + TypeDependencyNamespace.BaseClass does exist -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have name ending with "Class" -Result: True -Description: TypeDependencyNamespace.BaseClass passed + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name starting with "Base" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist Message: -All Evaluations passed +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name starting with "Base"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name ending with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name ending with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name containing "NotTheNameOfAnyObject" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have full name containing "NotTheNameOfAnyObject"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name "TypeDependencyNamespace.BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name "^TypeDependencyNamespace.BaseClass, .*NotTheNameOfAnyObject.*$"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name starting with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name starting with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name ending with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name ending with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does exist + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name containing "NotTheNameOfAnyObject" +Result: False +Description: TypeDependencyNamespace.BaseClass does exist +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that have assembly qualified name containing "NotTheNameOfAnyObject"" failed: + TypeDependencyNamespace.BaseClass does exist + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotBeTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotBeTest.verified.txt index 3799c65a5..a117e7f41 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotBeTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotBeTest.verified.txt @@ -60,7 +60,7 @@ Description: TypeDependencyNamespace.OtherChildClass passed Message: All Evaluations passed -Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be Types that are not "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be Types that are not Classes that are "TypeDependencyNamespace.ClassWithoutDependencies" Result: True Description: TypeDependencyNamespace.ChildClass passed Result: True @@ -303,7 +303,15 @@ Message: ----- Conditions ----- -Query: Types that depend on "TypeDependencyNamespace.BaseClass" should exist +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should not be any of no objects (always true) +Result: True +Description: TypeDependencyNamespace.ChildClass passed +Result: True +Description: TypeDependencyNamespace.OtherChildClass passed +Message: +All Evaluations passed + +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should not be any of no objects (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Result: True @@ -329,7 +337,15 @@ All Evaluations passed ----- Predicates ----- -Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be Types that are not no object (always true) +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be Types that are not any of no objects (always true) +Result: True +Description: TypeDependencyNamespace.ChildClass passed +Result: True +Description: TypeDependencyNamespace.OtherChildClass passed +Message: +All Evaluations passed + +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be Types that are not any of no objects (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Result: True @@ -355,7 +371,15 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be types that are not no object (always true) +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be types that are not any of no objects (always true) +Result: True +Description: TypeDependencyNamespace.ChildClass passed +Result: True +Description: TypeDependencyNamespace.OtherChildClass passed +Message: +All Evaluations passed + +Query: Types that depend on "TypeDependencyNamespace.BaseClass" should be types that are not any of no objects (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Result: True diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotCallAnyTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotCallAnyTest.verified.txt index 9dc359cf6..92e45d7f7 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotCallAnyTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotCallAnyTest.verified.txt @@ -2,13 +2,13 @@ ----- Conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: @@ -34,7 +34,7 @@ Description: System.Void MethodDependencyNamespace.MethodDependencyClass::Method Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependenc... Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: @@ -54,7 +54,7 @@ Description: System.Void MethodDependencyNamespace.MethodDependencyClass::Method Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependenc... Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: @@ -64,30 +64,30 @@ All Evaluations passed ----- Conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" @@ -111,12 +111,12 @@ Message: -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" @@ -140,11 +140,11 @@ Message: -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()"" failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" @@ -159,9 +159,21 @@ Description: System.Void MethodDependencyNamespace.MethodDependencyClass::Method Message: All Evaluations passed +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should not call any of no methods (always true) +Result: True +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed +Message: +All Evaluations passed + ----- Predicates ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call one of no methods (always true) +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any of no methods (always true) +Result: True +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed +Message: +All Evaluations passed + +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be Method members that do not call any of no methods (always true) Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: @@ -169,7 +181,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call one of no methods (always true) +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any of no methods (always true) +Result: True +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed +Message: +All Evaluations passed + +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" should be method members that do not call any of no methods (always true) Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Message: @@ -181,85 +199,85 @@ All Evaluations passed Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.M... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.M..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.M... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.M..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Met... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Met..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" ----- Predicates ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Me... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespac... Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Me... +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M..." failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespac... -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Me... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespac... Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.Me... +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M..." failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespac... -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies(... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependenc... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Meth... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void ... Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies(..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Meth... +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependenc..." failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void ... ----- Predicates as conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M... Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho..." failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M..." failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M... Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void Metho..." failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void M..." failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies(... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependenc... Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies(..." failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies()" should be method members that do not call any Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependenc..." failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" @@ -268,7 +286,7 @@ Message: ----- Conditions ----- -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should not call "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" Result: True Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() passed Result: True @@ -278,13 +296,13 @@ All Evaluations passed Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependen... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" Message: "Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependen..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod() - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1() and System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2() + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() does call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" and "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" @@ -298,15 +316,15 @@ Description: System.Void MethodDependencyNamespace.MethodDependencyClass::Method Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNa... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependen... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependenc... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDepen... Result: False -Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependenc... +Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDepen... Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNa..." failed: - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependenc... - System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependenc... +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependen..." failed: + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDepen... + System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not Method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDepen... @@ -320,13 +338,13 @@ Description: System.Void MethodDependencyNamespace.MethodDependencyClass::Method Message: All Evaluations passed -Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNa... +Query: Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependen... Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" Result: False Description: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" Message: -"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be method members that do not call "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNa..." failed: +"Method members that are "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency()" or "System.Void MethodDependencyNamespace.MethodDep... should be method members that do not call any "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependen..." failed: System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithSingleDependency() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithMultipleDependencies() is not "System.Void TypeDependencyNamespace.BaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass::.ctor()" or "System.Void TypeDependencyNamespace.OtherChildClass::.ctor()" or "System.String TypeDependencyNamespace.BaseClassWithMember::get_BaseClassMember()" or "System.Void TypeDependencyNamespace.BaseClassWithMember::set_BaseClassMember(System.String)" or "System.Void TypeDependencyNamespace.BaseClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.ChildClassWithMember::get_ChildClassMember()" or "System.Void TypeDependencyNamespace.ChildClassWithMember::set_ChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.ChildClassWithMember::.ctor()" or "System.String TypeDependencyNamespace.OtherChildClassWithMember::get_OtherChildClassMember()" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::set_OtherChildClassMember(System.String)" or "System.Void TypeDependencyNamespace.OtherChildClassWithMember::.ctor()" or "System.Void TypeDependencyNamespace.BaseClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClass2::.ctor()" or "System.Void TypeDependencyNamespace.OtherBaseClass::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithMultipleDependencies::.ctor()" or "System.Void TypeDependencyNamespace.GenericBaseClass`1::.ctor()" or "System.Void TypeDependencyNamespace.ChildClassOfGeneric::.ctor()" or "System.Void TypeDependencyNamespace.ClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.OtherClassWithoutDependencies::.ctor()" or "System.Void TypeDependencyNamespace.Issue351::OuterFunc()" or "System.Void TypeDependencyNamespace.Issue351::.ctor()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod1()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod2()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::CalledMethod3()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::MethodWithoutDependencies()" or "System.Void MethodDependencyNamespace.MethodDependencyClass::.ctor()" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTest.verified.txt index c875c55b7..433b1462a 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTest.verified.txt @@ -2,13 +2,13 @@ ----- Conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: @@ -20,13 +20,13 @@ Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.ClassWithoutDependencies" Result: True Description: TypeDependencyNamespace.ChildClass passed Message: @@ -100,48 +100,48 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +"Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +"Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any Classes that are "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: "Types that are "TypeDependencyNamespace.ChildClass" should not depend on any Classes that are "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +"Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +"Types that are "TypeDependencyNamespace.ChildClass" should not depend on "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" @@ -225,24 +225,18 @@ Message: ----- Conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "AttributeNamespace.ClassWithoutAttributes" +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on "AttributeNamespace.ClassWithoutAttributes" Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ----- Predicates ----- Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "AttributeNamespace.ClassWithoutAttributes" -Result: True -Description: TypeDependencyNamespace.ChildClass passed -Message: -All Evaluations passed +Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ----- Predicates as conditions ----- Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "AttributeNamespace.ClassWithoutAttributes" -Result: True -Description: TypeDependencyNamespace.ChildClass passed -Message: -All Evaluations passed +Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ===== Empty arguments ===== @@ -260,15 +254,27 @@ Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any of no types (always true) +Result: True +Description: TypeDependencyNamespace.ChildClass passed +Message: +All Evaluations passed + ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on no types (always true) +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any of no types (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on no types (always true) +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any of no types (always true) +Result: True +Description: TypeDependencyNamespace.ChildClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any of no types (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Message: @@ -276,13 +282,19 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on no types (always true) +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any of no types (always true) +Result: True +Description: TypeDependencyNamespace.ChildClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any of no types (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on no types (always true) +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any of no types (always true) Result: True Description: TypeDependencyNamespace.ChildClass passed Message: @@ -294,112 +306,112 @@ All Evaluations passed Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: "Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: "Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: "Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: "Types that are "TypeDependencyNamespace.ChildClass" should not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" -Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Description: TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass is not Types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +"Types that are "TypeDependencyNamespace.ChildClass" should be Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: + TypeDependencyNamespace.ChildClass is not Types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" +Query: Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: +"Types that are "TypeDependencyNamespace.ChildClass" should be types that do not depend on any "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.BaseClass"" failed: TypeDependencyNamespace.ChildClass is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" @@ -410,130 +422,130 @@ Message: Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any Classes that are "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" Message: "Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should not depend on any Classes that are "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies does depend on TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + TypeDependencyNamespace.ClassWithMultipleDependencies does depend on "TypeDependencyNamespace.BaseClassWithMember" and "TypeDependencyNamespace.OtherBaseClass" ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Classes that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Classes that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Classes that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Classes that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Classes that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Classes that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Classes that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Classes that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that do not depend on any "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.OtherBaseClass"" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTypesThatTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTypesThatTest.verified.txt index 6a1651663..257223823 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTypesThatTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotDependOnAnyTypesThatTest.verified.txt @@ -10,10 +10,10 @@ All Evaluations passed Query: Types that are "TypeDependencyNamespace.ChildClass" should not depend on any types that are "TypeDependencyNamespace.BaseClass" Result: False -Description: TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass +Description: TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" Message: "Types that are "TypeDependencyNamespace.ChildClass" should not depend on any types that are "TypeDependencyNamespace.BaseClass"" failed: - TypeDependencyNamespace.ChildClass does depend on TypeDependencyNamespace.BaseClass + TypeDependencyNamespace.ChildClass does depend on "TypeDependencyNamespace.BaseClass" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesTest.verified.txt index ed5aca96e..ff91c1716 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesTest.verified.txt @@ -2,25 +2,25 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: @@ -34,25 +34,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: @@ -66,25 +66,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.UnusedAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: @@ -100,38 +100,38 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 @@ -147,39 +147,39 @@ Message: ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" @@ -194,38 +194,38 @@ Message: ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -243,24 +243,18 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should not have any "TypeDependencyNamespace.BaseClass" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should not have "TypeDependencyNamespace.BaseClass" Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no class. ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "TypeDependencyNamespace.BaseClass" -Result: True -Description: AttributeNamespace.ClassWithTwoAttributes passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have "TypeDependencyNamespace.BaseClass" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no class. ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "TypeDependencyNamespace.BaseClass" -Result: True -Description: AttributeNamespace.ClassWithTwoAttributes passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have "TypeDependencyNamespace.BaseClass" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no class. ===== Empty arguments ===== @@ -278,6 +272,12 @@ Description: AttributeNamespace.ClassWithoutAttributes passed Message: All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should not have any of no attributes (always true) +Result: True +Description: AttributeNamespace.ClassWithoutAttributes passed +Message: +All Evaluations passed + Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should not have any Attributes that have full name "NotTheNameOfAnyObject" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed @@ -286,13 +286,19 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have one of no attributes (always true) +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have any of no attributes (always true) +Result: True +Description: AttributeNamespace.ClassWithoutAttributes passed +Message: +All Evaluations passed + +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have any of no attributes (always true) Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have one of no attributes (always true) +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have any of no attributes (always true) Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: @@ -306,13 +312,19 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have one of no attributes (always true) +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have any of no attributes (always true) +Result: True +Description: AttributeNamespace.ClassWithoutAttributes passed +Message: +All Evaluations passed + +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have any of no attributes (always true) Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have one of no attributes (always true) +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have any of no attributes (always true) Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: @@ -375,39 +387,39 @@ Message: ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" @@ -422,38 +434,38 @@ Message: ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False Description: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False Description: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False Description: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: False Description: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: +"Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that do not have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2"" failed: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -471,7 +483,7 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Result: True @@ -479,20 +491,20 @@ Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should not have any "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Result: True @@ -500,20 +512,20 @@ Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that do not have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be Types that do not have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that do not have "AttributeNamespace.Attribute1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Result: True @@ -521,13 +533,13 @@ Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" should be types that do not have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithArgumentsTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithArgumentsTest.verified.txt index 97c61cdfd..7d7577e8c 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithArgumentsTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithArgumentsTest.verified.txt @@ -2,13 +2,7 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -16,13 +10,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -30,13 +18,7 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with argument "AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -46,13 +28,7 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "NotTheValueOfAnyAttribute" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with argument "NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -60,13 +36,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "NotTheValueOfAnyAttribute" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with argument "NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -74,13 +44,7 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "NotTheValueOfAnyAttribute" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with argument "NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -90,60 +54,33 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with argument "AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with argument "AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with argument "AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -152,60 +89,33 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with argument "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with argument "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with argument "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with argument "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with argument "1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with argument "1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with argument "1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -214,7 +124,7 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should not have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should not have any attributes with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: @@ -222,7 +132,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be Types that do not have any attributes with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: @@ -230,43 +140,17 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithoutAttributes" should be types that do not have any attributes with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithoutAttributes passed Message: All Evaluations passed -===== Null argument ===== - ------ Conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ------ Predicates ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ------ Predicates as conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ===== Empty arguments ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have no or any attributes with arguments (impossible) +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with any of no arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -274,7 +158,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have no or any attributes with arguments (impossible) +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with any of no arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -282,7 +166,7 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have no or any attributes with arguments (impossible) +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with any of no arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -294,19 +178,10 @@ All Evaluations passed Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "Argument1" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "Argument1" @@ -321,15 +196,6 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" - - - ----- Predicates as conditions ----- Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" @@ -341,90 +207,45 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have any attributes with arguments "AttributeNamespace.UnusedTypeArgument" and "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - ===== Multiple inputs ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should not have any attributes with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "Argument2" and "2" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should not have any attributes with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - AttributeNamespace.ClassWithTwoAttributesWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "Argument2" and "2" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should not have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should not have any attributes with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "Argument2" and "2" +Description: AttributeNamespace.ClassWithTwoAttributesWithArguments does have attribute AttributeNamespace.Attribute1 with argument "Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should not have any attributes with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" - AttributeNamespace.ClassWithTwoAttributesWithArguments does have attributes with argument values "Argument1" and "Argument1" and "1" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "Argument2" and "2" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should not have any attributes with argument "Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute AttributeNamespace.Attribute1 with argument "Argument1" + AttributeNamespace.ClassWithTwoAttributesWithArguments does have attribute AttributeNamespace.Attribute1 with argument "Argument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that do not have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that do not have any attributes with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments is not Types that do not have any attributes with arguments "Argument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithArguments is not Types that do not have any attributes with argument "Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that do not have any attributes with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithArguments is not Types that do not have any attributes with arguments "Argument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that do not have any attributes with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments is not Types that do not have any attributes with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that do not have any attributes with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithArguments is not Types that do not have any attributes with arguments "Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be Types that do not have any attributes with argument "Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have any attributes with argument "Argument1" + AttributeNamespace.ClassWithTwoAttributesWithArguments is not Types that do not have any attributes with argument "Argument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that do not have any attributes with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that do not have any attributes with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - AttributeNamespace.ClassWithTwoAttributesWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that do not have any attributes with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that do not have any attributes with argument "Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that do not have any attributes with arguments "Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" should be types that do not have any attributes with argument "Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithNamedArgumentsTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithNamedArgumentsTest.verified.txt index f04fddd6c..050bdcad1 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithNamedArgumentsTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAnyAttributesWithNamedArgumentsTest.verified.txt @@ -2,25 +2,25 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -28,25 +28,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -54,25 +54,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "InvalidName=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "InvalidName=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.UnusedTypeArgument" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.UnusedTypeArgument" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -82,25 +82,25 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "InvalidName=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "InvalidName=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -108,25 +108,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "InvalidName=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "InvalidName=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -134,25 +134,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "InvalidName=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "InvalidName=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "InvalidName=Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter2=NotTheValueOfAnyAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter2=NotTheValueOfAnyAttribute" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -162,60 +162,60 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -224,60 +224,60 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter2=Argument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter2=Argument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -286,7 +286,7 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have no or any attributes with named arguments (impossible) +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with any of no named arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -294,7 +294,7 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have no or any attributes with named arguments (impossible) +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have any attributes with any of no named arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -302,7 +302,7 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have no or any attributes with named arguments (impossible) +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have any attributes with any of no named arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -314,19 +314,19 @@ All Evaluations passed Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" Message: "Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" and "NamedParameter2=Argument1" @@ -354,77 +354,77 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" and "NamedParameter1=Argument2" and "NamedParameter2=2" and "NamedParameter3=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" and "NamedParameter1=Argument2" and "NamedParameter2=2" and "NamedParameter3=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" and "NamedParameter1=Argument2" and "NamedParameter2=2" and "NamedParameter3=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attributes with named arguments "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter1=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" and "NamedParameter2=Argument1" and "NamedParameter3=1" and "NamedParameter1=Argument2" and "NamedParameter2=2" and "NamedParameter3=ArchUnitNET.Domain.TypeInstance`1[ArchUnitNET.Domain.Class]" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute AttributeNamespace.Attribute1 with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have any attributes with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithArgumentsTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithArgumentsTest.verified.txt index 71c4a528a..72ba1ae0c 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithArgumentsTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithArgumentsTest.verified.txt @@ -2,25 +2,13 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -28,25 +16,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -54,25 +30,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -82,25 +46,13 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -108,25 +60,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -134,25 +74,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -162,114 +90,60 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -278,114 +152,60 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -394,25 +214,13 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -420,25 +228,13 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -446,25 +242,13 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with argument "Argument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: @@ -474,129 +258,54 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "TypeDependencyNamespace.BaseClass" with arguments "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "TypeDependencyNamespace.BaseClass" with argument "1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "TypeDependencyNamespace.BaseClass" with arguments "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "TypeDependencyNamespace.BaseClass" with argument "1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "TypeDependencyNamespace.BaseClass" with arguments "1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "TypeDependencyNamespace.BaseClass" with argument "1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. -===== Null argument ===== +===== Empty arguments ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.UnusedAttribute" with arguments "" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.UnusedAttribute" with arguments "" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ------ Predicates ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed -Message: -All Evaluations passed - ------ Predicates as conditions ----- - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with any of no arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with any of no arguments (always true) Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithArguments passed Message: All Evaluations passed -===== Empty arguments ===== - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" - - - ===== Multiple arguments ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with arguments "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with arguments "1" and "AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with arguments "1" and "AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with arguments "1" and "AttributeNamespace.TypeArgument1" @@ -620,24 +329,6 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" - - - ----- Predicates as conditions ----- Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" @@ -658,171 +349,81 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "AttributeNamespace.TypeArgument1" and "1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - ===== Multiple inputs ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should does have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with argument "Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with argument "Argument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - - -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with arguments "Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with argument "Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithNamedArgumentsTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithNamedArgumentsTest.verified.txt index 00ea8db8f..6c9b8face 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithNamedArgumentsTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveAttributeWithNamedArgumentsTest.verified.txt @@ -2,25 +2,25 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -28,25 +28,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -54,25 +54,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -82,25 +82,25 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -108,25 +108,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -134,25 +134,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument2" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -162,114 +162,114 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -278,114 +278,114 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter2=Argument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter2=Argument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -394,25 +394,25 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -420,25 +420,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -446,25 +446,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.UnusedAttribute" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: True Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: @@ -474,89 +474,62 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "TypeDependencyNamespace.BaseClass" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "TypeDependencyNamespace.BaseClass" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "TypeDependencyNamespace.BaseClass" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" -Result: True -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed -Message: -All Evaluations passed +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "TypeDependencyNamespace.BaseClass" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no attribute. ===== Empty arguments ===== ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with any of no named arguments (always true) +Result: True +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" - - +All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with any of no named arguments (always true) +Result: True +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" - - +All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with any of no named arguments (always true) +Result: True +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" - - +All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with any of no named arguments (always true) +Result: True +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" - - +All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with any of no named arguments (always true) +Result: True +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - +All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" -Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with any of no named arguments (always true) +Result: True +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments passed Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - +All Evaluations passed ===== Multiple arguments ===== @@ -678,149 +651,149 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments does have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False -Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: - AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" - AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: + AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" + AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not Types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1" Result: False Description: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named arguments "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "AttributeNamespace.ClassWithTwoAttributesWithNamedArguments" should be types that do not have attribute "AttributeNamespace.Attribute1" with named argument "NamedParameter1=AttributeNamespace.TypeArgument1"" failed: AttributeNamespace.ClassWithSingleAttributeWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributesWithNamedArguments is not "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" or "AttributeNamespace.Attribute3" or "AttributeNamespace.UnusedAttribute" or "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" or "AttributeNamespace.ClassWithThreeAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithTwoAttributesWithArguments" or "AttributeNamespace.ClassWithThreeAttributesWithArguments" or "AttributeNamespace.OnceUsedAttribute" or "AttributeNamespace.ClassWithSingleUniquelyUsedAttribute" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveNameTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveNameTest.verified.txt index 03ef3e480..0a1ca2c8d 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveNameTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotHaveNameTest.verified.txt @@ -14,6 +14,24 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name starting with "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name ending with "Test" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name containing "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + Query: Types that are "TypeDependencyNamespace.BaseClass" should not have full name "BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed @@ -26,7 +44,13 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name containing "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have full name starting with "BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have full name ending with "Test" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -38,13 +62,31 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name starting with "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name "TypeDependencyNamespace.ChildClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name ending with "Test" +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name matching "^.*\.Child.*$" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name starting with "BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name ending with "Test" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name containing "NotTheNameOfAnyObject" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -64,6 +106,24 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name starting with "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name ending with "Test" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name containing "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name "BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed @@ -76,7 +136,13 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name containing "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name starting with "BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name ending with "Test" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -88,13 +154,31 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name starting with "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name "TypeDependencyNamespace.ChildClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, Public... Result: True Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name ending with "Test" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name matching "^.*\.Child.*$" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name starting with "BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name ending with "Test" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name containing "NotTheNameOfAnyObject" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -114,6 +198,24 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name starting with "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name ending with "Test" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name containing "TypeDependencyNamespace" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name "BaseClass" Result: True Description: TypeDependencyNamespace.BaseClass passed @@ -126,7 +228,13 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name containing "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name starting with "BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name ending with "Test" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -138,13 +246,31 @@ Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name starting with "TypeDependencyNamespace" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name "TypeDependencyNamespace.ChildClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, Public... Result: True Description: TypeDependencyNamespace.BaseClass passed Message: All Evaluations passed -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name ending with "Test" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name matching "^.*\.Child.*$" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name starting with "BaseClass" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name ending with "Test" +Result: True +Description: TypeDependencyNamespace.BaseClass passed +Message: +All Evaluations passed + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name containing "NotTheNameOfAnyObject" Result: True Description: TypeDependencyNamespace.BaseClass passed Message: @@ -172,6 +298,33 @@ Message: +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name starting with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have name starting with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does have name BaseClass + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name ending with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have name ending with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does have name BaseClass + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name containing "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have name containing "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does have name BaseClass + + + Query: Types that are "TypeDependencyNamespace.BaseClass" should not have full name "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass @@ -190,12 +343,21 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name containing "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have full name starting with "TypeDependencyNamespace" Result: False -Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Description: TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass Message: -"Types that are "TypeDependencyNamespace.BaseClass" should not have name containing "BaseClass"" failed: - TypeDependencyNamespace.BaseClass does have name BaseClass +"Types that are "TypeDependencyNamespace.BaseClass" should not have full name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have full name ending with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have full name ending with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass does have full name TypeDependencyNamespace.BaseClass @@ -208,21 +370,48 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name starting with "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Result: False -Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Message: -"Types that are "TypeDependencyNamespace.BaseClass" should not have name starting with "BaseClass"" failed: - TypeDependencyNamespace.BaseClass does have name BaseClass +"Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null -Query: Types that are "TypeDependencyNamespace.BaseClass" should not have name ending with "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name matching "^.*\.Base.*$" Result: False -Description: TypeDependencyNamespace.BaseClass does have name BaseClass +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Message: -"Types that are "TypeDependencyNamespace.BaseClass" should not have name ending with "BaseClass"" failed: - TypeDependencyNamespace.BaseClass does have name BaseClass +"Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name matching "^.*\.Base.*$"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name starting with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Result: False +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name containing "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should not have assembly qualified name containing "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass does have assembly qualified name TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null @@ -246,6 +435,33 @@ Message: +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name starting with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have name starting with "BaseClass" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name starting with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have name starting with "BaseClass" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name ending with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have name ending with "BaseClass" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name ending with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have name ending with "BaseClass" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name containing "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have name containing "BaseClass" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name containing "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have name containing "BaseClass" + + + Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.BaseClass is not Types that do not have full name "TypeDependencyNamespace.BaseClass" @@ -264,12 +480,21 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name containing "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name starting with "TypeDependencyNamespace" Result: False -Description: TypeDependencyNamespace.BaseClass is not Types that do not have name containing "BaseClass" +Description: TypeDependencyNamespace.BaseClass is not Types that do not have full name starting with "TypeDependencyNamespace" Message: -"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name containing "BaseClass"" failed: - TypeDependencyNamespace.BaseClass is not Types that do not have name containing "BaseClass" +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have full name starting with "TypeDependencyNamespace" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name ending with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have full name ending with "BaseClass" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have full name ending with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have full name ending with "BaseClass" @@ -282,21 +507,48 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name starting with "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicK... Result: False -Description: TypeDependencyNamespace.BaseClass is not Types that do not have name starting with "BaseClass" +Description: TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Message: -"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name starting with "BaseClass"" failed: - TypeDependencyNamespace.BaseClass is not Types that do not have name starting with "BaseClass" +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicK..." failed: + TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name ending with "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name matching "^.*\.Base.*$" Result: False -Description: TypeDependencyNamespace.BaseClass is not Types that do not have name ending with "BaseClass" +Description: TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name matching "^.*\.Base.*$" Message: -"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have name ending with "BaseClass"" failed: - TypeDependencyNamespace.BaseClass is not Types that do not have name ending with "BaseClass" +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name matching "^.*\.Base.*$"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name matching "^.*\.Base.*$" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name starting with "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name starting with "TypeDependencyNamespace" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name starting with "TypeDependencyNamespace" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name containing "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name containing "TypeDependencyNamespace" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be Types that do not have assembly qualified name containing "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not Types that do not have assembly qualified name containing "TypeDependencyNamespace" @@ -320,6 +572,33 @@ Message: +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name starting with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name starting with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name ending with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name ending with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name containing "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name containing "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name "TypeDependencyNamespace.BaseClass" Result: False Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" @@ -338,12 +617,21 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name containing "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name starting with "TypeDependencyNamespace" Result: False -Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Description: TypeDependencyNamespace.BaseClass is not "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name containing "BaseClass"" failed: - TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name ending with "BaseClass" +Result: False +Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have full name ending with "BaseClass"" failed: + TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" @@ -356,21 +644,48 @@ Message: -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name starting with "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicK... +Result: False +Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name "TypeDependencyNamespace.BaseClass, DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicK..." failed: + TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name matching "^.*\.Base.*$" Result: False Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name starting with "BaseClass"" failed: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name matching "^.*\.Base.*$"" failed: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name ending with "BaseClass" +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name starting with "TypeDependencyNamespace" Result: False -Description: TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Description: TypeDependencyNamespace.BaseClass is not "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have name ending with "BaseClass"" failed: - TypeDependencyNamespace.BaseClass is not "TypeDependencyNamespace.ChildClass" or "TypeDependencyNamespace.OtherChildClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.ChildClassWithMember" or "TypeDependencyNamespace.OtherChildClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.ChildClass1" or "TypeDependencyNamespace.ChildClass2" or "TypeDependencyNamespace.ClassWithMultipleDependencies" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ChildClassOfGeneric" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name starting with "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" +Result: False +Description: TypeDependencyNamespace.BaseClass is not "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name ending with "DependencyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"" failed: + TypeDependencyNamespace.BaseClass is not "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name containing "TypeDependencyNamespace" +Result: False +Description: TypeDependencyNamespace.BaseClass is not "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.BaseClass" should be types that do not have assembly qualified name containing "TypeDependencyNamespace"" failed: + TypeDependencyNamespace.BaseClass is not "MethodDependencyNamespace.MethodDependencyClass" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyDependOnTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyDependOnTest.verified.txt index 46255f177..3d4b3c181 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyDependOnTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyDependOnTest.verified.txt @@ -202,24 +202,12 @@ Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in prov ----- Predicates ----- Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that only depend on "AttributeNamespace.ClassWithoutAttributes" -Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that only depend on "AttributeNamespace.ClassWithoutAttributes" -Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that only depend on "AttributeNamespace.ClassWithoutAttributes"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that only depend on "AttributeNamespace.ClassWithoutAttributes" - - +Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ----- Predicates as conditions ----- Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that only depend on "AttributeNamespace.ClassWithoutAttributes" -Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that only depend on "AttributeNamespace.ClassWithoutAttributes"" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" - - +Exception: Type AttributeNamespace.ClassWithoutAttributes does not exist in provided architecture or is no class. ===== Empty arguments ===== @@ -243,6 +231,15 @@ Message: +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should have no dependencies +Result: False +Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass +Message: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should have no dependencies" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass + + + Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should only depend on Classes that have full name "NotTheNameOfAnyObject" Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies does depend on System.Object and TypeDependencyNamespace.BaseClassWithMember and TypeDependencyNamespace.OtherBaseClass @@ -254,21 +251,30 @@ Message: ----- Predicates ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on no types +Result: False +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on no types +Message: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on no types" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on no types + + + +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on no types Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on no types Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on no types" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on no types -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on no types Result: False -Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on no types Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that have no dependencies" failed: - TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that have no dependencies +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be Types that depend on no types" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not Types that depend on no types @@ -283,20 +289,29 @@ Message: ----- Predicates as conditions ----- -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on no types +Result: False +Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" +Message: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on no types" failed: + TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" + + + +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on no types Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on no types" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" -Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies +Query: Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on no types Result: False Description: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" Message: -"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that have no dependencies" failed: +"Types that are "TypeDependencyNamespace.ClassWithMultipleDependencies" should be types that depend on no types" failed: TypeDependencyNamespace.ClassWithMultipleDependencies is not "TypeDependencyNamespace.BaseClass" or "TypeDependencyNamespace.BaseClassWithMember" or "TypeDependencyNamespace.BaseClassWithMultipleDependencies" or "TypeDependencyNamespace.OtherBaseClass" or "TypeDependencyNamespace.GenericBaseClass`1" or "TypeDependencyNamespace.ClassWithoutDependencies" or "TypeDependencyNamespace.OtherClassWithoutDependencies" or "TypeDependencyNamespace.Issue351" or "System.Object" or "System.Void" or "System.String" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Int32" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" or "System.Collections.Generic.List`1" or "System.Func`2" or "System.IntPtr" or "System.Linq.Enumerable" or "System.Collections.Generic.IEnumerable`1" or "System.Linq.IGrouping`2" or "System.Collections.Generic.IReadOnlyCollection`1" or "System.Collections.Generic.Dictionary`2" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyHaveAttributesTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyHaveAttributesTest.verified.txt index d49adceac..19970a804 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyHaveAttributesTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.OnlyHaveAttributesTest.verified.txt @@ -2,31 +2,31 @@ ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have Attributes that are "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have any Attributes that are "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: @@ -34,25 +34,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: @@ -66,25 +66,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Message: @@ -100,86 +100,86 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have Attributes that are "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have any Attributes that are "AttributeNamespace.UnusedAttribute" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have Attributes that are "AttributeNamespace.UnusedAttribute"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have any Attributes that are "AttributeNamespace.UnusedAttribute"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "AttributeNamespace.UnusedAttribute"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.UnusedAttribute" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "AttributeNamespace.UnusedAttribute"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.UnusedAttribute" @@ -196,34 +196,31 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have "TypeDependencyNamespace.BaseClass" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have "TypeDependencyNamespace.BaseClass" Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no class. ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "TypeDependencyNamespace.BaseClass" -Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "TypeDependencyNamespace.BaseClass" -Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have attribute "TypeDependencyNamespace.BaseClass"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "TypeDependencyNamespace.BaseClass" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have "TypeDependencyNamespace.BaseClass" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no class. + +----- Predicates as conditions ----- +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have "TypeDependencyNamespace.BaseClass" +Exception: Type TypeDependencyNamespace.BaseClass does not exist in provided architecture or is no class. +===== Empty arguments ===== ------ Predicates as conditions ----- +----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have attribute "TypeDependencyNamespace.BaseClass" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have no attributes Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" +Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have attribute "TypeDependencyNamespace.BaseClass"" failed: - AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" - - +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should have no attributes" failed: + AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 -===== Empty arguments ===== ------ Conditions ----- Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should have no attributes Result: False @@ -243,11 +240,11 @@ Message: -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have Attributes that have full name "NotTheNameOfAnyObject" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have any Attributes that have full name "NotTheNameOfAnyObject" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" should does only have Attributes that have full name "NotTheNameOfAnyObject"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should only have any Attributes that have full name "NotTheNameOfAnyObject"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 @@ -272,6 +269,15 @@ Message: +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have no attributes +Result: False +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that have no attributes +Message: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that have no attributes" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that have no attributes + + + Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be Types that only have Attributes that have full name "NotTheNameOfAnyObject" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have Attributes that have full name "NotTheNameOfAnyObject" @@ -301,6 +307,15 @@ Message: +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have no attributes +Result: False +Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" +Message: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that have no attributes" failed: + AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" + + + Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" should be types that only have Attributes that have full name "NotTheNameOfAnyObject" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" @@ -314,31 +329,31 @@ Message: ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should only have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should only have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should only have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should only have any "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should does only have Attributes that are "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should only have any Attributes that are "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -346,25 +361,25 @@ All Evaluations passed ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -378,25 +393,25 @@ All Evaluations passed ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: All Evaluations passed -Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute1" or "AttributeNamespace.Attribute2" Result: True Description: AttributeNamespace.ClassWithTwoAttributes passed Message: @@ -412,24 +427,24 @@ All Evaluations passed ----- Conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Result: False Description: AttributeNamespace.ClassWithTwoAttributes does have attribute AttributeNamespace.Attribute2 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should only have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithTwoAttributes does have attribute AttributeNamespace.Attribute2 -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should only have "AttributeNamespace.Attribute2" Result: False Description: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 Result: False Description: AttributeNamespace.ClassWithTwoAttributes does have attribute AttributeNamespace.Attribute1 Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should does only have "AttributeNamespace.Attribute2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should only have "AttributeNamespace.Attribute2"" failed: AttributeNamespace.ClassWithSingleAttribute does have attribute AttributeNamespace.Attribute1 AttributeNamespace.ClassWithTwoAttributes does have attribute AttributeNamespace.Attribute1 @@ -437,49 +452,49 @@ Message: ----- Predicates ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that only have attribute "AttributeNamespace.Attribute1" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that only have "AttributeNamespace.Attribute1" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute1"" failed: - AttributeNamespace.ClassWithTwoAttributes is not Types that only have attribute "AttributeNamespace.Attribute1" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute1"" failed: + AttributeNamespace.ClassWithTwoAttributes is not Types that only have "AttributeNamespace.Attribute1" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute2" Result: False -Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.Attribute2" +Description: AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.Attribute2" Result: False -Description: AttributeNamespace.ClassWithTwoAttributes is not Types that only have attribute "AttributeNamespace.Attribute2" +Description: AttributeNamespace.ClassWithTwoAttributes is not Types that only have "AttributeNamespace.Attribute2" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have attribute "AttributeNamespace.Attribute2"" failed: - AttributeNamespace.ClassWithSingleAttribute is not Types that only have attribute "AttributeNamespace.Attribute2" - AttributeNamespace.ClassWithTwoAttributes is not Types that only have attribute "AttributeNamespace.Attribute2" +"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be Types that only have "AttributeNamespace.Attribute2"" failed: + AttributeNamespace.ClassWithSingleAttribute is not Types that only have "AttributeNamespace.Attribute2" + AttributeNamespace.ClassWithTwoAttributes is not Types that only have "AttributeNamespace.Attribute2" ----- Predicates as conditions ----- -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute1" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute1" Result: True Description: AttributeNamespace.ClassWithSingleAttribute passed Result: False Description: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute1"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute1"" failed: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "AttributeNamespace.ClassWithSingleAttributeWithArguments" or "AttributeNamespace.ClassWithSingleAttributeWithNamedArguments" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" -Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute2" +Query: Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute2" Result: False Description: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Result: False Description: AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" Message: -"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have attribute "AttributeNamespace.Attribute2"" failed: +"Types that are "AttributeNamespace.ClassWithSingleAttribute" or "AttributeNamespace.ClassWithTwoAttributes" should be types that only have "AttributeNamespace.Attribute2"" failed: AttributeNamespace.ClassWithSingleAttribute is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" AttributeNamespace.ClassWithTwoAttributes is not "AttributeNamespace.ClassWithoutAttributes" or "AttributeNamespace.TypeArgument1" or "AttributeNamespace.TypeArgument2" or "AttributeNamespace.TypeArgument3" or "AttributeNamespace.UnusedTypeArgument" or "System.Attribute" or "System.Object" or "System.Type" or "System.String" or "System.Int32" or "System.Void" or "System.AttributeUsageAttribute" or "System.AttributeTargets" or "System.Runtime.CompilerServices.CompilerGeneratedAttribute" or "System.Runtime.CompilerServices.CompilationRelaxationsAttribute" or "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute" or "System.Boolean" or "System.Diagnostics.DebuggableAttribute" or "System.Diagnostics.DebuggableAttribute+DebuggingModes" or "System.Runtime.Versioning.TargetFrameworkAttribute" or "System.Reflection.AssemblyCompanyAttribute" or "System.Reflection.AssemblyConfigurationAttribute" or "System.Reflection.AssemblyFileVersionAttribute" or "System.Reflection.AssemblyInformationalVersionAttribute" or "System.Reflection.AssemblyProductAttribute" or "System.Reflection.AssemblyTitleAttribute" diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.ImplementAnyInterfacesTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.ImplementAnyInterfacesTest.verified.txt index 3e3c808ef..e10ffdf37 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.ImplementAnyInterfacesTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.ImplementAnyInterfacesTest.verified.txt @@ -334,7 +334,7 @@ All Evaluations passed ----- Complex conditions ----- -Query: Interfaces that are "InterfaceAssembly.IChildInterface" should implement any interfaces that do not exist (always empty) +Query: Interfaces that are "InterfaceAssembly.IChildInterface" should implement any interfaces that are any of no objects (always empty) Result: True Description: InterfaceAssembly.IChildInterface passed Message: @@ -449,11 +449,11 @@ Message: ----- Complex conditions ----- -Query: Interfaces that are "InterfaceAssembly.IBaseInterface" should implement any interfaces that do not exist (always empty) +Query: Interfaces that are "InterfaceAssembly.IBaseInterface" should implement any interfaces that are any of no objects (always empty) Result: False Description: InterfaceAssembly.IBaseInterface does not implement any interface Message: -"Interfaces that are "InterfaceAssembly.IBaseInterface" should implement any interfaces that do not exist (always empty)" failed: +"Interfaces that are "InterfaceAssembly.IBaseInterface" should implement any interfaces that are any of no objects (always empty)" failed: InterfaceAssembly.IBaseInterface does not implement any interface diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.NotImplementAnyInterfacesTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.NotImplementAnyInterfacesTest.verified.txt index fef065ab1..cd468f61a 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.NotImplementAnyInterfacesTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/TypeSyntaxElementsTests.NotImplementAnyInterfacesTest.verified.txt @@ -340,7 +340,7 @@ All Evaluations passed ----- Complex conditions ----- -Query: Interfaces that are "InterfaceAssembly.IBaseInterface" should not implement any interfaces that do not exist (always empty) +Query: Interfaces that are "InterfaceAssembly.IBaseInterface" should not implement any interfaces that are any of no objects (always empty) Result: True Description: InterfaceAssembly.IBaseInterface passed Message: @@ -464,11 +464,11 @@ Message: ----- Complex conditions ----- -Query: Interfaces that are "InterfaceAssembly.IChildInterface" should not implement any interfaces that do not exist (always empty) +Query: Interfaces that are "InterfaceAssembly.IChildInterface" should not implement any interfaces that are any of no objects (always empty) Result: False Description: InterfaceAssembly.IChildInterface does implement InterfaceAssembly.IBaseInterface Message: -"Interfaces that are "InterfaceAssembly.IChildInterface" should not implement any interfaces that do not exist (always empty)" failed: +"Interfaces that are "InterfaceAssembly.IChildInterface" should not implement any interfaces that are any of no objects (always empty)" failed: InterfaceAssembly.IChildInterface does implement InterfaceAssembly.IBaseInterface diff --git a/ArchUnitNETTests/Loader/InstructionExtensionTests.cs b/ArchUnitNETTests/Loader/InstructionExtensionTests.cs index 3fca9c835..f1365f893 100644 --- a/ArchUnitNETTests/Loader/InstructionExtensionTests.cs +++ b/ArchUnitNETTests/Loader/InstructionExtensionTests.cs @@ -76,7 +76,8 @@ public void GetAssigneeFieldDefinitionProperlyHandlesNextOpNull() [Fact] public void GetAssigneeFieldDefinitionProperlyHandlesNullArgument() { - Assert.Throws(() => _nullInstruction.GetAssigneeFieldDefinition() + Assert.Throws(() => + _nullInstruction.GetAssigneeFieldDefinition() ); } } diff --git a/ExampleTest/ExampleTest.csproj b/ExampleTest/ExampleTest.csproj index dd266ee6f..a7201379b 100644 --- a/ExampleTest/ExampleTest.csproj +++ b/ExampleTest/ExampleTest.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 TNG Technology Consulting GmbH true @@ -8,9 +8,9 @@ - + - + diff --git a/TestAssemblies/AttributeAssembly/AttributeAssembly.csproj b/TestAssemblies/AttributeAssembly/AttributeAssembly.csproj index 907f15b74..91b7d3685 100644 --- a/TestAssemblies/AttributeAssembly/AttributeAssembly.csproj +++ b/TestAssemblies/AttributeAssembly/AttributeAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable true diff --git a/TestAssemblies/DependencyAssembly/DependencyAssembly.csproj b/TestAssemblies/DependencyAssembly/DependencyAssembly.csproj index 907f15b74..91b7d3685 100644 --- a/TestAssemblies/DependencyAssembly/DependencyAssembly.csproj +++ b/TestAssemblies/DependencyAssembly/DependencyAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable true diff --git a/TestAssemblies/FilteredDirectoryLoaderTestAssembly/FilteredDirectoryLoaderTestAssembly.csproj b/TestAssemblies/FilteredDirectoryLoaderTestAssembly/FilteredDirectoryLoaderTestAssembly.csproj index f34d6d4ff..b0e7c9e8c 100644 --- a/TestAssemblies/FilteredDirectoryLoaderTestAssembly/FilteredDirectoryLoaderTestAssembly.csproj +++ b/TestAssemblies/FilteredDirectoryLoaderTestAssembly/FilteredDirectoryLoaderTestAssembly.csproj @@ -1,13 +1,13 @@ - net9.0 + net10.0 enable enable true false - + diff --git a/TestAssemblies/FilteredDirectoryUnavailableTypesAssembly/FilteredDirectoryUnavailableTypesAssembly.csproj b/TestAssemblies/FilteredDirectoryUnavailableTypesAssembly/FilteredDirectoryUnavailableTypesAssembly.csproj index 066f63af1..c0e98467e 100644 --- a/TestAssemblies/FilteredDirectoryUnavailableTypesAssembly/FilteredDirectoryUnavailableTypesAssembly.csproj +++ b/TestAssemblies/FilteredDirectoryUnavailableTypesAssembly/FilteredDirectoryUnavailableTypesAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable false diff --git a/TestAssemblies/InterfaceAssembly/InterfaceAssembly.csproj b/TestAssemblies/InterfaceAssembly/InterfaceAssembly.csproj index 6b7f9e756..e19851407 100644 --- a/TestAssemblies/InterfaceAssembly/InterfaceAssembly.csproj +++ b/TestAssemblies/InterfaceAssembly/InterfaceAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable true diff --git a/TestAssemblies/LoaderTestAssembly/LoaderTestAssembly.csproj b/TestAssemblies/LoaderTestAssembly/LoaderTestAssembly.csproj index 907f15b74..91b7d3685 100644 --- a/TestAssemblies/LoaderTestAssembly/LoaderTestAssembly.csproj +++ b/TestAssemblies/LoaderTestAssembly/LoaderTestAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable true diff --git a/TestAssemblies/OtherLoaderTestAssembly/OtherLoaderTestAssembly.csproj b/TestAssemblies/OtherLoaderTestAssembly/OtherLoaderTestAssembly.csproj index 907f15b74..91b7d3685 100644 --- a/TestAssemblies/OtherLoaderTestAssembly/OtherLoaderTestAssembly.csproj +++ b/TestAssemblies/OtherLoaderTestAssembly/OtherLoaderTestAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable true diff --git a/TestAssemblies/VisibilityAssembly/VisibilityAssembly.csproj b/TestAssemblies/VisibilityAssembly/VisibilityAssembly.csproj index 907f15b74..91b7d3685 100644 --- a/TestAssemblies/VisibilityAssembly/VisibilityAssembly.csproj +++ b/TestAssemblies/VisibilityAssembly/VisibilityAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 enable enable true diff --git a/TestAssembly/TestAssembly.csproj b/TestAssembly/TestAssembly.csproj index de837f238..49307c1f4 100644 --- a/TestAssembly/TestAssembly.csproj +++ b/TestAssembly/TestAssembly.csproj @@ -1,6 +1,6 @@  - net9.0 + net10.0 Latest false TestAssembly diff --git a/global.json b/global.json index 33c17f6f9..e69d70fba 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "9.0.304", + "version": "10.0.100", "rollForward": "latestMajor", "allowPrerelease": true } diff --git a/renovate.json b/renovate.json index 1bf1f314f..5fdfb72db 100644 --- a/renovate.json +++ b/renovate.json @@ -1,21 +1,27 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ - "config:base", + "config:recommended", "group:allNonMajor" ], "customManagers": [ { "customType": "regex", - "fileMatch": ["^\\.github/workflows/.+?\\.yaml$"], - "matchStrings": ["dotnet-version: (?.+?)\\s"], + "managerFilePatterns": [ + "/^\\.github/workflows/.+?\\.yaml$/" + ], + "matchStrings": [ + "dotnet-version: (?.+?)\\s" + ], "datasourceTemplate": "dotnet-version", "depNameTemplate": "dotnet-sdk", "depTypeTemplate": "action" }, { "customType": "regex", - "fileMatch": ["(^|/|\\.).*(csproj|pubxml)$"], + "managerFilePatterns": [ + "/(^|/|\\.).*(csproj|pubxml)$/" + ], "matchStrings": [ "net(?[^<]*)" ], @@ -26,18 +32,31 @@ ], "packageRules": [ { - "matchManagers": ["nuget"], + "matchManagers": [ + "nuget" + ], "matchFileNames": [ "ArchUnitNET.MSTestV2/ArchUnitNET.MSTestV2.csproj", "ArchUnitNET.NUnit/ArchUnitNET.NUnit.csproj", - "ArchUnitNET.XUnit/ArchUnitNET.XUnit.csproj" + "ArchUnitNET.xUnit/ArchUnitNET.xUnit.csproj", + "ArchUnitNET.xUnitV3/ArchUnitNET.xUnitV3.csproj", + "ArchUnitNET.TUnit/ArchUnitNET.TUnit.csproj" + ], + "matchPackageNames": [ + "Microsoft.NET.Test.Sdk", + "JetBrains.Annotations", + "xunit{/,}**", + "nunit{/,}**", + "NUnit{/,}**", + "MSTest{/,}**", + "TUnit{/,}**" ], - "matchPackagePrefixes": ["xunit", "nunit", "NUnit", "MSTest"], - "matchPackageNames": ["Microsoft.NET.Test.Sdk", "JetBrains.Annotations"], "enabled": false }, { - "matchDepNames": ["dotnet-sdk"], + "matchDepNames": [ + "dotnet-sdk" + ], "groupName": "dotnet version" } ]