From 085342df9369841c0f2a512f05d556ca009bf867 Mon Sep 17 00:00:00 2001 From: Alexander Linne Date: Fri, 24 Jul 2026 11:44:52 +0200 Subject: [PATCH 1/2] test: rewrite property member syntax elements tests Signed-off-by: Alexander Linne --- ArchUnit.sln | 15 + ArchUnitNETTests/ArchUnitNETTests.csproj | 1 + .../PropertyMemberAssemblyTestHelper.cs | 204 ++ .../PropertyMemberSyntaxElementsTests.cs | 2341 +++++++---------- ...axElementsTests.BeVirtualTest.verified.txt | 63 + ...xElementsTests.HaveGetterTest.verified.txt | 63 + ...sTests.HaveInitOnlySetterTest.verified.txt | 61 + ...sTests.HaveInternalGetterTest.verified.txt | 61 + ...sTests.HaveInternalSetterTest.verified.txt | 61 + ...tsTests.HavePrivateGetterTest.verified.txt | 61 + ...avePrivateProtectedGetterTest.verified.txt | 61 + ...avePrivateProtectedSetterTest.verified.txt | 61 + ...tsTests.HavePrivateSetterTest.verified.txt | 61 + ...Tests.HaveProtectedGetterTest.verified.txt | 61 + ...veProtectedInternalGetterTest.verified.txt | 61 + ...veProtectedInternalSetterTest.verified.txt | 61 + ...Tests.HaveProtectedSetterTest.verified.txt | 61 + ...ntsTests.HavePublicGetterTest.verified.txt | 63 + ...ntsTests.HavePublicSetterTest.verified.txt | 63 + ...xElementsTests.HaveSetterTest.verified.txt | 63 + ...lementsTests.NotBeVirtualTest.verified.txt | 63 + ...ementsTests.NotHaveGetterTest.verified.txt | 61 + ...sts.NotHaveInitOnlySetterTest.verified.txt | 63 + ...sts.NotHaveInternalGetterTest.verified.txt | 63 + ...sts.NotHaveInternalSetterTest.verified.txt | 63 + ...ests.NotHavePrivateGetterTest.verified.txt | 63 + ...avePrivateProtectedGetterTest.verified.txt | 63 + ...avePrivateProtectedSetterTest.verified.txt | 63 + ...ests.NotHavePrivateSetterTest.verified.txt | 63 + ...ts.NotHaveProtectedGetterTest.verified.txt | 63 + ...veProtectedInternalGetterTest.verified.txt | 63 + ...veProtectedInternalSetterTest.verified.txt | 63 + ...ts.NotHaveProtectedSetterTest.verified.txt | 63 + ...Tests.NotHavePublicGetterTest.verified.txt | 63 + ...Tests.NotHavePublicSetterTest.verified.txt | 63 + ...ementsTests.NotHaveSetterTest.verified.txt | 61 + ArchUnitNETTests/StaticTestArchitectures.cs | 6 + .../PropertyMemberAssembly.csproj | 12 + .../PropertyMemberAssemblyClasses.cs | 96 + 39 files changed, 3219 insertions(+), 1446 deletions(-) create mode 100644 ArchUnitNETTests/AssemblyTestHelper/PropertyMemberAssemblyTestHelper.cs create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.BeVirtualTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInitOnlySetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotBeVirtualTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInitOnlySetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicGetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicSetterTest.verified.txt create mode 100644 ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveSetterTest.verified.txt create mode 100644 TestAssemblies/PropertyMemberAssembly/PropertyMemberAssembly.csproj create mode 100644 TestAssemblies/PropertyMemberAssembly/PropertyMemberAssemblyClasses.cs diff --git a/ArchUnit.sln b/ArchUnit.sln index a9a94a8db..04f1a4ae1 100644 --- a/ArchUnit.sln +++ b/ArchUnit.sln @@ -59,6 +59,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TypeAssembly", "TestAssembl EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MethodMemberAssembly", "TestAssemblies\MethodMemberAssembly\MethodMemberAssembly.csproj", "{05F40E4D-94EC-4DF7-B0FA-1BCBFDF56088}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PropertyMemberAssembly", "TestAssemblies\PropertyMemberAssembly\PropertyMemberAssembly.csproj", "{1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -393,6 +395,18 @@ Global {05F40E4D-94EC-4DF7-B0FA-1BCBFDF56088}.Release|x64.Build.0 = Release|Any CPU {05F40E4D-94EC-4DF7-B0FA-1BCBFDF56088}.Release|x86.ActiveCfg = Release|Any CPU {05F40E4D-94EC-4DF7-B0FA-1BCBFDF56088}.Release|x86.Build.0 = Release|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Debug|x64.ActiveCfg = Debug|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Debug|x64.Build.0 = Debug|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Debug|x86.Build.0 = Debug|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Release|Any CPU.Build.0 = Release|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Release|x64.ActiveCfg = Release|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Release|x64.Build.0 = Release|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Release|x86.ActiveCfg = Release|Any CPU + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -408,5 +422,6 @@ Global {AA695589-8CCC-4474-9A7F-01A6376C375A} = {B1191F18-91CB-4387-B775-A5EB64D3AC30} {ABCA0EC3-E47E-453E-B4CC-3446ED4F7643} = {B1191F18-91CB-4387-B775-A5EB64D3AC30} {05F40E4D-94EC-4DF7-B0FA-1BCBFDF56088} = {B1191F18-91CB-4387-B775-A5EB64D3AC30} + {1D0187EB-9D04-4CF3-AE63-0C0E97FCB49C} = {B1191F18-91CB-4387-B775-A5EB64D3AC30} EndGlobalSection EndGlobal diff --git a/ArchUnitNETTests/ArchUnitNETTests.csproj b/ArchUnitNETTests/ArchUnitNETTests.csproj index 0ced15201..f5635d9c4 100644 --- a/ArchUnitNETTests/ArchUnitNETTests.csproj +++ b/ArchUnitNETTests/ArchUnitNETTests.csproj @@ -33,6 +33,7 @@ + diff --git a/ArchUnitNETTests/AssemblyTestHelper/PropertyMemberAssemblyTestHelper.cs b/ArchUnitNETTests/AssemblyTestHelper/PropertyMemberAssemblyTestHelper.cs new file mode 100644 index 000000000..13ae7dc6e --- /dev/null +++ b/ArchUnitNETTests/AssemblyTestHelper/PropertyMemberAssemblyTestHelper.cs @@ -0,0 +1,204 @@ +using System; +using System.Linq; +using ArchUnitNET.Domain; +using ArchUnitNET.Domain.Extensions; +using PropertyMemberNamespace; + +namespace ArchUnitNETTests.AssemblyTestHelper; + +public class PropertyMemberAssemblyTestHelper : AssemblyTestHelper +{ + public sealed override Architecture Architecture => + StaticTestArchitectures.PropertyMemberArchitecture; + + public Class ClassWithWritableProperty; + public Type ClassWithWritablePropertySystemType = typeof(ClassWithWritableProperty); + + public Class OtherClassWithWritableProperty; + public Type OtherClassWithWritablePropertySystemType = typeof(OtherClassWithWritableProperty); + + public Class ClassWithInitOnlyProperty; + public Type ClassWithInitOnlyPropertySystemType = typeof(ClassWithInitOnlyProperty); + + public Class ClassWithGetOnlyProperty; + public Type ClassWithGetOnlyPropertySystemType = typeof(ClassWithGetOnlyProperty); + + public Class ClassWithVirtualProperty; + public Type ClassWithVirtualPropertySystemType = typeof(ClassWithVirtualProperty); + + public Class OtherClassWithVirtualProperty; + public Type OtherClassWithVirtualPropertySystemType = typeof(OtherClassWithVirtualProperty); + + public Class ClassWithNonVirtualProperty; + public Type ClassWithNonVirtualPropertySystemType = typeof(ClassWithNonVirtualProperty); + + public Class ClassWithWriteOnlyProperty; + public Type ClassWithWriteOnlyPropertySystemType = typeof(ClassWithWriteOnlyProperty); + + public Class ClassWithPrivateGetterProperty; + public Type ClassWithPrivateGetterPropertySystemType = typeof(ClassWithPrivateGetterProperty); + + public Class ClassWithProtectedGetterProperty; + public Type ClassWithProtectedGetterPropertySystemType = + typeof(ClassWithProtectedGetterProperty); + + public Class ClassWithInternalGetterProperty; + public Type ClassWithInternalGetterPropertySystemType = typeof(ClassWithInternalGetterProperty); + + public Class ClassWithProtectedInternalGetterProperty; + public Type ClassWithProtectedInternalGetterPropertySystemType = + typeof(ClassWithProtectedInternalGetterProperty); + + public Class ClassWithPrivateProtectedGetterProperty; + public Type ClassWithPrivateProtectedGetterPropertySystemType = + typeof(ClassWithPrivateProtectedGetterProperty); + + public Class ClassWithPrivateSetterProperty; + public Type ClassWithPrivateSetterPropertySystemType = typeof(ClassWithPrivateSetterProperty); + + public Class ClassWithProtectedSetterProperty; + public Type ClassWithProtectedSetterPropertySystemType = + typeof(ClassWithProtectedSetterProperty); + + public Class ClassWithInternalSetterProperty; + public Type ClassWithInternalSetterPropertySystemType = typeof(ClassWithInternalSetterProperty); + + public Class ClassWithProtectedInternalSetterProperty; + public Type ClassWithProtectedInternalSetterPropertySystemType = + typeof(ClassWithProtectedInternalSetterProperty); + + public Class ClassWithPrivateProtectedSetterProperty; + public Type ClassWithPrivateProtectedSetterPropertySystemType = + typeof(ClassWithPrivateProtectedSetterProperty); + + // Individual members + public IMember WritableProperty; + public IMember OtherWritableProperty; + public IMember InitOnlyProperty; + public IMember GetOnlyProperty; + + // Property members (PropertyMember type) + public PropertyMember VirtualProperty; + public PropertyMember OtherVirtualProperty; + public PropertyMember NonVirtualProperty; + public PropertyMember WriteOnlyProperty; + public PropertyMember PropertyWithPrivateGetter; + public PropertyMember PropertyWithProtectedGetter; + public PropertyMember PropertyWithInternalGetter; + public PropertyMember PropertyWithProtectedInternalGetter; + public PropertyMember PropertyWithPrivateProtectedGetter; + public PropertyMember PropertyWithPrivateSetter; + public PropertyMember PropertyWithProtectedSetter; + public PropertyMember PropertyWithInternalSetter; + public PropertyMember PropertyWithProtectedInternalSetter; + public PropertyMember PropertyWithPrivateProtectedSetter; + + public PropertyMemberAssemblyTestHelper() + { + ClassWithWritableProperty = Architecture.GetClassOfType(typeof(ClassWithWritableProperty)); + OtherClassWithWritableProperty = Architecture.GetClassOfType( + typeof(OtherClassWithWritableProperty) + ); + ClassWithInitOnlyProperty = Architecture.GetClassOfType(typeof(ClassWithInitOnlyProperty)); + ClassWithGetOnlyProperty = Architecture.GetClassOfType(typeof(ClassWithGetOnlyProperty)); + + ClassWithVirtualProperty = Architecture.GetClassOfType(typeof(ClassWithVirtualProperty)); + OtherClassWithVirtualProperty = Architecture.GetClassOfType( + typeof(OtherClassWithVirtualProperty) + ); + ClassWithNonVirtualProperty = Architecture.GetClassOfType( + typeof(ClassWithNonVirtualProperty) + ); + ClassWithWriteOnlyProperty = Architecture.GetClassOfType( + typeof(ClassWithWriteOnlyProperty) + ); + ClassWithPrivateGetterProperty = Architecture.GetClassOfType( + typeof(ClassWithPrivateGetterProperty) + ); + ClassWithProtectedGetterProperty = Architecture.GetClassOfType( + typeof(ClassWithProtectedGetterProperty) + ); + ClassWithInternalGetterProperty = Architecture.GetClassOfType( + typeof(ClassWithInternalGetterProperty) + ); + ClassWithProtectedInternalGetterProperty = Architecture.GetClassOfType( + typeof(ClassWithProtectedInternalGetterProperty) + ); + ClassWithPrivateProtectedGetterProperty = Architecture.GetClassOfType( + typeof(ClassWithPrivateProtectedGetterProperty) + ); + ClassWithPrivateSetterProperty = Architecture.GetClassOfType( + typeof(ClassWithPrivateSetterProperty) + ); + ClassWithProtectedSetterProperty = Architecture.GetClassOfType( + typeof(ClassWithProtectedSetterProperty) + ); + ClassWithInternalSetterProperty = Architecture.GetClassOfType( + typeof(ClassWithInternalSetterProperty) + ); + ClassWithProtectedInternalSetterProperty = Architecture.GetClassOfType( + typeof(ClassWithProtectedInternalSetterProperty) + ); + ClassWithPrivateProtectedSetterProperty = Architecture.GetClassOfType( + typeof(ClassWithPrivateProtectedSetterProperty) + ); + + // Individual members + WritableProperty = ClassWithWritableProperty + .GetPropertyMembersWithName("WritableProperty") + .First(); + OtherWritableProperty = OtherClassWithWritableProperty + .GetPropertyMembersWithName("OtherWritableProperty") + .First(); + InitOnlyProperty = ClassWithInitOnlyProperty + .GetPropertyMembersWithName("InitOnlyProperty") + .First(); + GetOnlyProperty = ClassWithGetOnlyProperty + .GetPropertyMembersWithName("GetOnlyProperty") + .First(); + + // Property members (PropertyMember type) + VirtualProperty = ClassWithVirtualProperty + .GetPropertyMembersWithName("VirtualProperty") + .First(); + OtherVirtualProperty = OtherClassWithVirtualProperty + .GetPropertyMembersWithName("OtherVirtualProperty") + .First(); + NonVirtualProperty = ClassWithNonVirtualProperty + .GetPropertyMembersWithName("NonVirtualProperty") + .First(); + WriteOnlyProperty = ClassWithWriteOnlyProperty + .GetPropertyMembersWithName("WriteOnlyProperty") + .First(); + PropertyWithPrivateGetter = ClassWithPrivateGetterProperty + .GetPropertyMembersWithName("PropertyWithPrivateGetter") + .First(); + PropertyWithProtectedGetter = ClassWithProtectedGetterProperty + .GetPropertyMembersWithName("PropertyWithProtectedGetter") + .First(); + PropertyWithInternalGetter = ClassWithInternalGetterProperty + .GetPropertyMembersWithName("PropertyWithInternalGetter") + .First(); + PropertyWithProtectedInternalGetter = ClassWithProtectedInternalGetterProperty + .GetPropertyMembersWithName("PropertyWithProtectedInternalGetter") + .First(); + PropertyWithPrivateProtectedGetter = ClassWithPrivateProtectedGetterProperty + .GetPropertyMembersWithName("PropertyWithPrivateProtectedGetter") + .First(); + PropertyWithPrivateSetter = ClassWithPrivateSetterProperty + .GetPropertyMembersWithName("PropertyWithPrivateSetter") + .First(); + PropertyWithProtectedSetter = ClassWithProtectedSetterProperty + .GetPropertyMembersWithName("PropertyWithProtectedSetter") + .First(); + PropertyWithInternalSetter = ClassWithInternalSetterProperty + .GetPropertyMembersWithName("PropertyWithInternalSetter") + .First(); + PropertyWithProtectedInternalSetter = ClassWithProtectedInternalSetterProperty + .GetPropertyMembersWithName("PropertyWithProtectedInternalSetter") + .First(); + PropertyWithPrivateProtectedSetter = ClassWithPrivateProtectedSetterProperty + .GetPropertyMembersWithName("PropertyWithPrivateProtectedSetter") + .First(); + } +} diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/PropertyMemberSyntaxElementsTests.cs b/ArchUnitNETTests/Fluent/Syntax/Elements/PropertyMemberSyntaxElementsTests.cs index c1ed31c41..947a78268 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/PropertyMemberSyntaxElementsTests.cs +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/PropertyMemberSyntaxElementsTests.cs @@ -1,1522 +1,971 @@ -using System.Collections.Generic; -using ArchUnitNET.Domain; +using System.Threading.Tasks; +using ArchUnitNETTests.AssemblyTestHelper; using Xunit; -using static ArchUnitNET.Domain.Visibility; using static ArchUnitNET.Fluent.ArchRuleDefinition; namespace ArchUnitNETTests.Fluent.Syntax.Elements { + // csharpier-ignore public class PropertyMemberSyntaxElementsTests { - public PropertyMemberSyntaxElementsTests() + [Fact] + public async Task BeVirtualTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.VirtualProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.BeVirtual().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().AreVirtual()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.NonVirtualProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.BeVirtual().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().AreVirtual()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.VirtualProperty, helper.OtherVirtualProperty).Should().BeVirtual().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.VirtualProperty, helper.NonVirtualProperty).Should().BeVirtual().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotBeVirtualTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.NonVirtualProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotBeVirtual().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().AreNotVirtual()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.VirtualProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotBeVirtual().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().AreNotVirtual()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.NonVirtualProperty, helper.WritableProperty).Should().NotBeVirtual().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.NonVirtualProperty, helper.VirtualProperty).Should().NotBeVirtual().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HaveGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WriteOnlyProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().HaveGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.WriteOnlyProperty).Should().HaveGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotHaveGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WriteOnlyProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveNoGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveNoGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WriteOnlyProperty).Should().NotHaveGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WriteOnlyProperty, helper.WritableProperty).Should().NotHaveGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HaveSetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.GetOnlyProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.InitOnlyProperty).Should().HaveSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().HaveSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotHaveSetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.GetOnlyProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveNoSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveNoSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.GetOnlyProperty).Should().NotHaveSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.GetOnlyProperty, helper.WritableProperty).Should().NotHaveSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HaveInitOnlySetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.InitOnlyProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveInitOnlySetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveInitOnlySetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveInitOnlySetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveInitOnlySetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.InitOnlyProperty).Should().HaveInitOnlySetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.InitOnlyProperty, helper.WritableProperty).Should().HaveInitOnlySetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotHaveInitOnlySetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveInitOnlySetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveInitOnlySetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.InitOnlyProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveInitOnlySetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveInitOnlySetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().NotHaveInitOnlySetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.InitOnlyProperty).Should().NotHaveInitOnlySetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HavePublicGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePublicGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePublicGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithPrivateGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePublicGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePublicGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().HavePublicGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithPrivateGetter).Should().HavePublicGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotHavePublicGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithPrivateGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePublicGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePublicGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePublicGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePublicGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithPrivateGetter, helper.PropertyWithProtectedGetter).Should().NotHavePublicGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithPrivateGetter, helper.WritableProperty).Should().NotHavePublicGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HavePrivateGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithPrivateGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithPrivateGetter).Should().HavePrivateGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithPrivateGetter, helper.WritableProperty).Should().HavePrivateGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotHavePrivateGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithPrivateGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().NotHavePrivateGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithPrivateGetter).Should().NotHavePrivateGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HaveProtectedGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithProtectedGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithProtectedGetter).Should().HaveProtectedGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithProtectedGetter, helper.WritableProperty).Should().HaveProtectedGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task NotHaveProtectedGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithProtectedGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().NotHaveProtectedGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithProtectedGetter).Should().NotHaveProtectedGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } + + [Fact] + public async Task HaveInternalGetterTest() { - _propertyMembers = Architecture.PropertyMembers; + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithInternalGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveInternalGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveInternalGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveInternalGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveInternalGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithInternalGetter).Should().HaveInternalGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithInternalGetter, helper.WritableProperty).Should().HaveInternalGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } - private static readonly Architecture Architecture = - StaticTestArchitectures.ArchUnitNETTestArchitecture; - private readonly IEnumerable _propertyMembers; + [Fact] + public async Task NotHaveInternalGetterTest() + { + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveInternalGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveInternalGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithInternalGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveInternalGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveInternalGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().NotHaveInternalGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithInternalGetter).Should().NotHaveInternalGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); + } [Fact] - public void AreVirtualTest() + public async Task HaveProtectedInternalGetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberIsVirtual = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .BeVirtual(); - var propertyMemberIsNotVirtual = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotBeVirtual(); - var virtualPropertyMembersDoNotIncludeMember = PropertyMembers() - .That() - .AreVirtual() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var notVirtualPropertyMembersDoNotIncludeMember = PropertyMembers() - .That() - .AreNotVirtual() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.IsVirtual, - propertyMemberIsVirtual.HasNoViolations(Architecture) - ); - Assert.Equal( - !propertyMember.IsVirtual, - propertyMemberIsNotVirtual.HasNoViolations(Architecture) - ); - Assert.Equal( - !propertyMember.IsVirtual, - virtualPropertyMembersDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.IsVirtual, - notVirtualPropertyMembersDoNotIncludeMember.HasNoViolations(Architecture) - ); - } - - var virtualPropertyMembersShouldBeVirtual = PropertyMembers() - .That() - .AreVirtual() - .Should() - .BeVirtual() - .WithoutRequiringPositiveResults(); - var virtualPropertyMembersAreNotVirtual = PropertyMembers() - .That() - .AreVirtual() - .Should() - .NotBeVirtual() - .AndShould() - .Exist(); - var notVirtualPropertyMembersShouldBeVirtual = PropertyMembers() - .That() - .AreNotVirtual() - .Should() - .BeVirtual() - .AndShould() - .Exist(); - var notVirtualPropertyMembersAreNotVirtual = PropertyMembers() - .That() - .AreNotVirtual() - .Should() - .NotBeVirtual(); - - Assert.True(virtualPropertyMembersShouldBeVirtual.HasNoViolations(Architecture)); - Assert.False(virtualPropertyMembersAreNotVirtual.HasNoViolations(Architecture)); - Assert.False(notVirtualPropertyMembersShouldBeVirtual.HasNoViolations(Architecture)); - Assert.True(notVirtualPropertyMembersAreNotVirtual.HasNoViolations(Architecture)); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithProtectedInternalGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedInternalGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedInternalGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedInternalGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedInternalGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithProtectedInternalGetter).Should().HaveProtectedInternalGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithProtectedInternalGetter, helper.WritableProperty).Should().HaveProtectedInternalGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveGetterTest() + public async Task NotHaveProtectedInternalGetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveGetter(); - var propertyMemberHasNoGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveGetter(); - var propertyMembersWithGetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutGetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveNoGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility != NotAccessible, - propertyMemberHasGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility == NotAccessible, - propertyMemberHasNoGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility == NotAccessible, - propertyMembersWithGetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != NotAccessible, - propertyMembersWithoutGetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - } - - var propertyMembersWithGetterHaveGetter = PropertyMembers() - .That() - .HaveGetter() - .Should() - .HaveGetter(); - var propertyMembersWithGetterHaveNoGetter = PropertyMembers() - .That() - .HaveGetter() - .Should() - .NotHaveGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutGetterHaveGetter = PropertyMembers() - .That() - .HaveNoGetter() - .Should() - .HaveGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutGetterHaveNoGetter = PropertyMembers() - .That() - .HaveNoGetter() - .Should() - .NotHaveGetter(); - - Assert.True(propertyMembersWithGetterHaveGetter.HasNoViolations(Architecture)); - Assert.False(propertyMembersWithGetterHaveNoGetter.HasNoViolations(Architecture)); - Assert.False(propertyMembersWithoutGetterHaveGetter.HasNoViolations(Architecture)); - Assert.True(propertyMembersWithoutGetterHaveNoGetter.HasNoViolations(Architecture)); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedInternalGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedInternalGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithProtectedInternalGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedInternalGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedInternalGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().NotHaveProtectedInternalGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithProtectedInternalGetter).Should().NotHaveProtectedInternalGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveInternalGetterTest() + public async Task HavePrivateProtectedGetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasInternalGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveInternalGetter(); - var propertyMemberDoesNotHaveInternalGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveInternalGetter(); - var propertyMembersWithInternalGetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveInternalGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutInternalGetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHaveInternalGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility == Internal, - propertyMemberHasInternalGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Internal, - propertyMemberDoesNotHaveInternalGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Internal, - propertyMembersWithInternalGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.GetterVisibility == Internal, - propertyMembersWithoutInternalGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithInternalGetterHaveInternalGetter = PropertyMembers() - .That() - .HaveInternalGetter() - .Should() - .HaveInternalGetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithInternalGetterDoNotHaveInternalGetter = PropertyMembers() - .That() - .HaveInternalGetter() - .Should() - .NotHaveInternalGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutInternalGetterHaveInternalGetter = PropertyMembers() - .That() - .DoNotHaveInternalGetter() - .Should() - .HaveInternalGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutInternalGetterDoNotHaveInternalGetter = PropertyMembers() - .That() - .DoNotHaveInternalGetter() - .Should() - .NotHaveInternalGetter(); - - Assert.True( - propertyMembersWithInternalGetterHaveInternalGetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithInternalGetterDoNotHaveInternalGetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutInternalGetterHaveInternalGetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutInternalGetterDoNotHaveInternalGetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateProtectedGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateProtectedGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateProtectedGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateProtectedGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedGetter).Should().HavePrivateProtectedGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedGetter, helper.WritableProperty).Should().HavePrivateProtectedGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveInternalSetterTest() + public async Task NotHavePrivateProtectedGetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasInternalSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveInternalSetter(); - var propertyMemberDoesNotHaveInternalSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveInternalSetter(); - var propertyMembersWithInternalSetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveInternalSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutInternalSetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHaveInternalSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility == Internal, - propertyMemberHasInternalSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Internal, - propertyMemberDoesNotHaveInternalSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Internal, - propertyMembersWithInternalSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.SetterVisibility == Internal, - propertyMembersWithoutInternalSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithInternalSetterHaveInternalSetter = PropertyMembers() - .That() - .HaveInternalSetter() - .Should() - .HaveInternalSetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithInternalSetterDoNotHaveInternalSetter = PropertyMembers() - .That() - .HaveInternalSetter() - .Should() - .NotHaveInternalSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutInternalSetterHaveInternalSetter = PropertyMembers() - .That() - .DoNotHaveInternalSetter() - .Should() - .HaveInternalSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutInternalSetterDoNotHaveInternalSetter = PropertyMembers() - .That() - .DoNotHaveInternalSetter() - .Should() - .NotHaveInternalSetter(); - - Assert.True( - propertyMembersWithInternalSetterHaveInternalSetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithInternalSetterDoNotHaveInternalSetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutInternalSetterHaveInternalSetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutInternalSetterDoNotHaveInternalSetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateProtectedGetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateProtectedGetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedGetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateProtectedGetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateProtectedGetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.GetOnlyProperty).Should().NotHavePrivateProtectedGetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithPrivateProtectedGetter).Should().NotHavePrivateProtectedGetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HavePrivateGetterTest() + public async Task HavePublicSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasPrivateGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HavePrivateGetter(); - var propertyMemberDoesNotHavePrivateGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHavePrivateGetter(); - var propertyMembersWithPrivateGetterDoNotIncludeMember = PropertyMembers() - .That() - .HavePrivateGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutPrivateGetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHavePrivateGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility == Private, - propertyMemberHasPrivateGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Private, - propertyMemberDoesNotHavePrivateGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Private, - propertyMembersWithPrivateGetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility == Private, - propertyMembersWithoutPrivateGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithPrivateGetterHavePrivateGetter = PropertyMembers() - .That() - .HavePrivateGetter() - .Should() - .HavePrivateGetter(); - var propertyMembersWithPrivateGetterDoNotHavePrivateGetter = PropertyMembers() - .That() - .HavePrivateGetter() - .Should() - .NotHavePrivateGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateGetterHavePrivateGetter = PropertyMembers() - .That() - .DoNotHavePrivateGetter() - .Should() - .HavePrivateGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateGetterDoNotHavePrivateGetter = PropertyMembers() - .That() - .DoNotHavePrivateGetter() - .Should() - .NotHavePrivateGetter(); - - Assert.True( - propertyMembersWithPrivateGetterHavePrivateGetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithPrivateGetterDoNotHavePrivateGetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithoutPrivateGetterHavePrivateGetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutPrivateGetterDoNotHavePrivateGetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePublicSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePublicSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithPrivateSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePublicSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePublicSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.OtherWritableProperty).Should().HavePublicSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithPrivateSetter).Should().HavePublicSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HavePrivateProtectedGetterTest() + public async Task NotHavePublicSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasPrivateProtectedGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HavePrivateProtectedGetter(); - var propertyMemberDoesNotHavePrivateProtectedGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHavePrivateProtectedGetter(); - var propertyMembersWithPrivateProtectedGetterDoNotIncludeMember = PropertyMembers() - .That() - .HavePrivateProtectedGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutPrivateProtectedGetterDoNotIncludeMember = - PropertyMembers() - .That() - .DoNotHavePrivateProtectedGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility == PrivateProtected, - propertyMemberHasPrivateProtectedGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != PrivateProtected, - propertyMemberDoesNotHavePrivateProtectedGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != PrivateProtected, - propertyMembersWithPrivateProtectedGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.GetterVisibility == PrivateProtected, - propertyMembersWithoutPrivateProtectedGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithPrivateProtectedGetterHavePrivateProtectedGetter = - PropertyMembers() - .That() - .HavePrivateProtectedGetter() - .Should() - .HavePrivateProtectedGetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithPrivateProtectedGetterDoNotHavePrivateProtectedGetter = - PropertyMembers() - .That() - .HavePrivateProtectedGetter() - .Should() - .NotHavePrivateProtectedGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateProtectedGetterHavePrivateProtectedGetter = - PropertyMembers() - .That() - .DoNotHavePrivateProtectedGetter() - .Should() - .HavePrivateProtectedGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateProtectedGetterDoNotHavePrivateProtectedGetter = - PropertyMembers() - .That() - .DoNotHavePrivateProtectedGetter() - .Should() - .NotHavePrivateProtectedGetter(); - - Assert.True( - propertyMembersWithPrivateProtectedGetterHavePrivateProtectedGetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithPrivateProtectedGetterDoNotHavePrivateProtectedGetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutPrivateProtectedGetterHavePrivateProtectedGetter.HasNoViolations( - Architecture - ) - ); - Assert.True( - propertyMembersWithoutPrivateProtectedGetterDoNotHavePrivateProtectedGetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithPrivateSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePublicSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePublicSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePublicSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePublicSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithPrivateSetter, helper.GetOnlyProperty).Should().NotHavePublicSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithPrivateSetter, helper.WritableProperty).Should().NotHavePublicSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HavePrivateProtectedSetterTest() + public async Task HavePrivateSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasPrivateProtectedSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HavePrivateProtectedSetter(); - var propertyMemberDoesNotHavePrivateProtectedSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHavePrivateProtectedSetter(); - var propertyMembersWithPrivateProtectedSetterDoNotIncludeMember = PropertyMembers() - .That() - .HavePrivateProtectedSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutPrivateProtectedSetterDoNotIncludeMember = - PropertyMembers() - .That() - .DoNotHavePrivateProtectedSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility == PrivateProtected, - propertyMemberHasPrivateProtectedSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != PrivateProtected, - propertyMemberDoesNotHavePrivateProtectedSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != PrivateProtected, - propertyMembersWithPrivateProtectedSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.SetterVisibility == PrivateProtected, - propertyMembersWithoutPrivateProtectedSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithPrivateProtectedSetterHavePrivateProtectedSetter = - PropertyMembers() - .That() - .HavePrivateProtectedSetter() - .Should() - .HavePrivateProtectedSetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithPrivateProtectedSetterDoNotHavePrivateProtectedSetter = - PropertyMembers() - .That() - .HavePrivateProtectedSetter() - .Should() - .NotHavePrivateProtectedSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateProtectedSetterHavePrivateProtectedSetter = - PropertyMembers() - .That() - .DoNotHavePrivateProtectedSetter() - .Should() - .HavePrivateProtectedSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateProtectedSetterDoNotHavePrivateProtectedSetter = - PropertyMembers() - .That() - .DoNotHavePrivateProtectedSetter() - .Should() - .NotHavePrivateProtectedSetter(); - - Assert.True( - propertyMembersWithPrivateProtectedSetterHavePrivateProtectedSetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithPrivateProtectedSetterDoNotHavePrivateProtectedSetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutPrivateProtectedSetterHavePrivateProtectedSetter.HasNoViolations( - Architecture - ) - ); - Assert.True( - propertyMembersWithoutPrivateProtectedSetterDoNotHavePrivateProtectedSetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithPrivateSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithPrivateSetter).Should().HavePrivateSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithPrivateSetter, helper.WritableProperty).Should().HavePrivateSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HavePrivateSetterTest() + public async Task NotHavePrivateSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasPrivateSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HavePrivateSetter(); - var propertyMemberDoesNotHavePrivateSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHavePrivateSetter(); - var propertyMembersWithPrivateSetterDoNotIncludeMember = PropertyMembers() - .That() - .HavePrivateSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutPrivateSetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHavePrivateSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility == Private, - propertyMemberHasPrivateSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Private, - propertyMemberDoesNotHavePrivateSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Private, - propertyMembersWithPrivateSetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility == Private, - propertyMembersWithoutPrivateSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithPrivateSetterHavePrivateSetter = PropertyMembers() - .That() - .HavePrivateSetter() - .Should() - .HavePrivateSetter(); - var propertyMembersWithPrivateSetterDoNotHavePrivateSetter = PropertyMembers() - .That() - .HavePrivateSetter() - .Should() - .NotHavePrivateSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateSetterHavePrivateSetter = PropertyMembers() - .That() - .DoNotHavePrivateSetter() - .Should() - .HavePrivateSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPrivateSetterDoNotHavePrivateSetter = PropertyMembers() - .That() - .DoNotHavePrivateSetter() - .Should() - .NotHavePrivateSetter(); - - Assert.True( - propertyMembersWithPrivateSetterHavePrivateSetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithPrivateSetterDoNotHavePrivateSetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithoutPrivateSetterHavePrivateSetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutPrivateSetterDoNotHavePrivateSetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithPrivateSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.OtherWritableProperty).Should().NotHavePrivateSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithPrivateSetter).Should().NotHavePrivateSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveProtectedGetterTest() + public async Task HaveProtectedSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasProtectedGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveProtectedGetter(); - var propertyMemberDoesNotHaveProtectedGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveProtectedGetter(); - var propertyMembersWithProtectedGetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveProtectedGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutProtectedGetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHaveProtectedGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility == Protected, - propertyMemberHasProtectedGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Protected, - propertyMemberDoesNotHaveProtectedGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Protected, - propertyMembersWithProtectedGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.GetterVisibility == Protected, - propertyMembersWithoutProtectedGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithProtectedGetterHaveProtectedGetter = PropertyMembers() - .That() - .HaveProtectedGetter() - .Should() - .HaveProtectedGetter(); - var propertyMembersWithProtectedGetterDoNotHaveProtectedGetter = PropertyMembers() - .That() - .HaveProtectedGetter() - .Should() - .NotHaveProtectedGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedGetterHaveProtectedGetter = PropertyMembers() - .That() - .DoNotHaveProtectedGetter() - .Should() - .HaveProtectedGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedGetterDoNotHaveProtectedGetter = PropertyMembers() - .That() - .DoNotHaveProtectedGetter() - .Should() - .NotHaveProtectedGetter(); - - Assert.True( - propertyMembersWithProtectedGetterHaveProtectedGetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithProtectedGetterDoNotHaveProtectedGetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutProtectedGetterHaveProtectedGetter.HasNoViolations( - Architecture - ) - ); - Assert.True( - propertyMembersWithoutProtectedGetterDoNotHaveProtectedGetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithProtectedSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithProtectedSetter).Should().HaveProtectedSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithProtectedSetter, helper.WritableProperty).Should().HaveProtectedSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveProtectedInternalGetterTest() + public async Task NotHaveProtectedSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasProtectedInternalGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveProtectedInternalGetter(); - var propertyMemberDoesNotHaveProtectedInternalGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveProtectedInternalGetter(); - var propertyMembersWithProtectedInternalGetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveProtectedInternalGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutProtectedInternalGetterDoNotIncludeMember = - PropertyMembers() - .That() - .DoNotHaveProtectedInternalGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility == ProtectedInternal, - propertyMemberHasProtectedInternalGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != ProtectedInternal, - propertyMemberDoesNotHaveProtectedInternalGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != ProtectedInternal, - propertyMembersWithProtectedInternalGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.GetterVisibility == ProtectedInternal, - propertyMembersWithoutProtectedInternalGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithProtectedInternalGetterHaveProtectedInternalGetter = - PropertyMembers() - .That() - .HaveProtectedInternalGetter() - .Should() - .HaveProtectedInternalGetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithProtectedInternalGetterDoNotHaveProtectedInternalGetter = - PropertyMembers() - .That() - .HaveProtectedInternalGetter() - .Should() - .NotHaveProtectedInternalGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedInternalGetterHaveProtectedInternalGetter = - PropertyMembers() - .That() - .DoNotHaveProtectedInternalGetter() - .Should() - .HaveProtectedInternalGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedInternalGetterDoNotHaveProtectedInternalGetter = - PropertyMembers() - .That() - .DoNotHaveProtectedInternalGetter() - .Should() - .NotHaveProtectedInternalGetter(); - - Assert.True( - propertyMembersWithProtectedInternalGetterHaveProtectedInternalGetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithProtectedInternalGetterDoNotHaveProtectedInternalGetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutProtectedInternalGetterHaveProtectedInternalGetter.HasNoViolations( - Architecture - ) - ); - Assert.True( - propertyMembersWithoutProtectedInternalGetterDoNotHaveProtectedInternalGetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithProtectedSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.OtherWritableProperty).Should().NotHaveProtectedSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithProtectedSetter).Should().NotHaveProtectedSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveProtectedInternalSetterTest() + public async Task HaveInternalSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasProtectedInternalSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveProtectedInternalSetter(); - var propertyMemberDoesNotHaveProtectedInternalSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveProtectedInternalSetter(); - var propertyMembersWithProtectedInternalSetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveProtectedInternalSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutProtectedInternalSetterDoNotIncludeMember = - PropertyMembers() - .That() - .DoNotHaveProtectedInternalSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility == ProtectedInternal, - propertyMemberHasProtectedInternalSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != ProtectedInternal, - propertyMemberDoesNotHaveProtectedInternalSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != ProtectedInternal, - propertyMembersWithProtectedInternalSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.SetterVisibility == ProtectedInternal, - propertyMembersWithoutProtectedInternalSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithProtectedInternalSetterHaveProtectedInternalSetter = - PropertyMembers() - .That() - .HaveProtectedInternalSetter() - .Should() - .HaveProtectedInternalSetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithProtectedInternalSetterDoNotHaveProtectedInternalSetter = - PropertyMembers() - .That() - .HaveProtectedInternalSetter() - .Should() - .NotHaveProtectedInternalSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedInternalSetterHaveProtectedInternalSetter = - PropertyMembers() - .That() - .DoNotHaveProtectedInternalSetter() - .Should() - .HaveProtectedInternalSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedInternalSetterDoNotHaveProtectedInternalSetter = - PropertyMembers() - .That() - .DoNotHaveProtectedInternalSetter() - .Should() - .NotHaveProtectedInternalSetter(); - - Assert.True( - propertyMembersWithProtectedInternalSetterHaveProtectedInternalSetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithProtectedInternalSetterDoNotHaveProtectedInternalSetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutProtectedInternalSetterHaveProtectedInternalSetter.HasNoViolations( - Architecture - ) - ); - Assert.True( - propertyMembersWithoutProtectedInternalSetterDoNotHaveProtectedInternalSetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithInternalSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveInternalSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveInternalSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveInternalSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveInternalSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithInternalSetter).Should().HaveInternalSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithInternalSetter, helper.WritableProperty).Should().HaveInternalSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveProtectedSetterTest() + public async Task NotHaveInternalSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasProtectedSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveProtectedSetter(); - var propertyMemberDoesNotHaveProtectedSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveProtectedSetter(); - var propertyMembersWithProtectedSetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveProtectedSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutProtectedSetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHaveProtectedSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility == Protected, - propertyMemberHasProtectedSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Protected, - propertyMemberDoesNotHaveProtectedSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Protected, - propertyMembersWithProtectedSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.SetterVisibility == Protected, - propertyMembersWithoutProtectedSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithProtectedSetterHaveProtectedSetter = PropertyMembers() - .That() - .HaveProtectedSetter() - .Should() - .HaveProtectedSetter() - .WithoutRequiringPositiveResults(); - var propertyMembersWithProtectedSetterDoNotHaveProtectedSetter = PropertyMembers() - .That() - .HaveProtectedSetter() - .Should() - .NotHaveProtectedSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedSetterHaveProtectedSetter = PropertyMembers() - .That() - .DoNotHaveProtectedSetter() - .Should() - .HaveProtectedSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutProtectedSetterDoNotHaveProtectedSetter = PropertyMembers() - .That() - .DoNotHaveProtectedSetter() - .Should() - .NotHaveProtectedSetter(); - - Assert.True( - propertyMembersWithProtectedSetterHaveProtectedSetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithProtectedSetterDoNotHaveProtectedSetter.HasNoViolations( - Architecture - ) - ); - Assert.False( - propertyMembersWithoutProtectedSetterHaveProtectedSetter.HasNoViolations( - Architecture - ) - ); - Assert.True( - propertyMembersWithoutProtectedSetterDoNotHaveProtectedSetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveInternalSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveInternalSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithInternalSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveInternalSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveInternalSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.OtherWritableProperty).Should().NotHaveInternalSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithInternalSetter).Should().NotHaveInternalSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HavePublicGetterTest() + public async Task HaveProtectedInternalSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasPublicGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HavePublicGetter(); - var propertyMemberDoesNotHavePublicGetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHavePublicGetter(); - var propertyMembersWithPublicGetterDoNotIncludeMember = PropertyMembers() - .That() - .HavePublicGetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutPublicGetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHavePublicGetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.GetterVisibility == Public, - propertyMemberHasPublicGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Public, - propertyMemberDoesNotHavePublicGetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility != Public, - propertyMembersWithPublicGetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.GetterVisibility == Public, - propertyMembersWithoutPublicGetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithPublicGetterHavePublicGetter = PropertyMembers() - .That() - .HavePublicGetter() - .Should() - .HavePublicGetter(); - var propertyMembersWithPublicGetterDoNotHavePublicGetter = PropertyMembers() - .That() - .HavePublicGetter() - .Should() - .NotHavePublicGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPublicGetterHavePublicGetter = PropertyMembers() - .That() - .DoNotHavePublicGetter() - .Should() - .HavePublicGetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPublicGetterDoNotHavePublicGetter = PropertyMembers() - .That() - .DoNotHavePublicGetter() - .Should() - .NotHavePublicGetter(); - - Assert.True( - propertyMembersWithPublicGetterHavePublicGetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithPublicGetterDoNotHavePublicGetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithoutPublicGetterHavePublicGetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutPublicGetterDoNotHavePublicGetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithProtectedInternalSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedInternalSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedInternalSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HaveProtectedInternalSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HaveProtectedInternalSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithProtectedInternalSetter).Should().HaveProtectedInternalSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithProtectedInternalSetter, helper.WritableProperty).Should().HaveProtectedInternalSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HavePublicSetterTest() + public async Task NotHaveProtectedInternalSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasPublicSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HavePublicSetter(); - var propertyMemberDoesNotHavePublicSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHavePublicSetter(); - var propertyMembersWithPublicSetterDoNotIncludeMember = PropertyMembers() - .That() - .HavePublicSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutPublicSetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHavePublicSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility == Public, - propertyMemberHasPublicSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Public, - propertyMemberDoesNotHavePublicSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != Public, - propertyMembersWithPublicSetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility == Public, - propertyMembersWithoutPublicSetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithPublicSetterHavePublicSetter = PropertyMembers() - .That() - .HavePublicSetter() - .Should() - .HavePublicSetter(); - var propertyMembersWithPublicSetterDoNotHavePublicSetter = PropertyMembers() - .That() - .HavePublicSetter() - .Should() - .NotHavePublicSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPublicSetterHavePublicSetter = PropertyMembers() - .That() - .DoNotHavePublicSetter() - .Should() - .HavePublicSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutPublicSetterDoNotHavePublicSetter = PropertyMembers() - .That() - .DoNotHavePublicSetter() - .Should() - .NotHavePublicSetter(); - - Assert.True( - propertyMembersWithPublicSetterHavePublicSetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithPublicSetterDoNotHavePublicSetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithoutPublicSetterHavePublicSetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutPublicSetterDoNotHavePublicSetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedInternalSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedInternalSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithProtectedInternalSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHaveProtectedInternalSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHaveProtectedInternalSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.OtherWritableProperty).Should().NotHaveProtectedInternalSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithProtectedInternalSetter).Should().NotHaveProtectedInternalSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveSetterTest() + public async Task HavePrivateProtectedSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveSetter(); - var propertyMemberHasNoSetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveSetter(); - var propertyMembersWithSetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveSetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutSetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveNoSetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.SetterVisibility != NotAccessible, - propertyMemberHasSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility == NotAccessible, - propertyMemberHasNoSetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility == NotAccessible, - propertyMembersWithSetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.SetterVisibility != NotAccessible, - propertyMembersWithoutSetterDoNotIncludeMember.HasNoViolations(Architecture) - ); - } - - var propertyMembersWithSetterHaveSetter = PropertyMembers() - .That() - .HaveSetter() - .Should() - .HaveSetter(); - var propertyMembersWithSetterHaveNoSetter = PropertyMembers() - .That() - .HaveSetter() - .Should() - .NotHaveSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutSetterHaveSetter = PropertyMembers() - .That() - .HaveNoSetter() - .Should() - .HaveSetter() - .AndShould() - .Exist(); - var propertyMembersWithoutSetterHaveNoSetter = PropertyMembers() - .That() - .HaveNoSetter() - .Should() - .NotHaveSetter(); - - Assert.True(propertyMembersWithSetterHaveSetter.HasNoViolations(Architecture)); - Assert.False(propertyMembersWithSetterHaveNoSetter.HasNoViolations(Architecture)); - Assert.False(propertyMembersWithoutSetterHaveSetter.HasNoViolations(Architecture)); - Assert.True(propertyMembersWithoutSetterHaveNoSetter.HasNoViolations(Architecture)); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateProtectedSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateProtectedSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.HavePrivateProtectedSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().HavePrivateProtectedSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedSetter).Should().HavePrivateProtectedSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedSetter, helper.WritableProperty).Should().HavePrivateProtectedSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } [Fact] - public void HaveInitOnlySetterTest() + public async Task NotHavePrivateProtectedSetterTest() { - foreach (var propertyMember in _propertyMembers) - { - var propertyMemberHasInitOnlySetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .HaveInitOnlySetter(); - var propertyMemberHasNoInitOnlySetter = PropertyMembers() - .That() - .Are(propertyMember) - .Should() - .NotHaveInitOnlySetter(); - var propertyMembersWithInitOnlySetterDoNotIncludeMember = PropertyMembers() - .That() - .HaveInitOnlySetter() - .Should() - .NotBe(propertyMember) - .OrShould() - .NotExist(); - var propertyMembersWithoutInitOnlySetterDoNotIncludeMember = PropertyMembers() - .That() - .DoNotHaveInitOnlySetter() - .Should() - .NotBe(propertyMember) - .AndShould() - .Exist(); - - Assert.Equal( - propertyMember.Writability == Writability.InitOnly, - propertyMemberHasInitOnlySetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.Writability != Writability.InitOnly, - propertyMemberHasNoInitOnlySetter.HasNoViolations(Architecture) - ); - Assert.Equal( - propertyMember.Writability != Writability.InitOnly, - propertyMembersWithInitOnlySetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - Assert.Equal( - propertyMember.Writability == Writability.InitOnly, - propertyMembersWithoutInitOnlySetterDoNotIncludeMember.HasNoViolations( - Architecture - ) - ); - } - - var propertyMembersWithInitOnlySetterHaveInitOnlySetter = PropertyMembers() - .That() - .HaveInitOnlySetter() - .Should() - .HaveInitOnlySetter(); - var propertyMembersWithInitOnlySetterHaveNoInitOnlySetter = PropertyMembers() - .That() - .HaveInitOnlySetter() - .Should() - .NotHaveInitOnlySetter() - .AndShould() - .Exist(); - var propertyMembersWithoutInitOnlySetterHaveInitOnlySetter = PropertyMembers() - .That() - .DoNotHaveInitOnlySetter() - .Should() - .HaveInitOnlySetter() - .AndShould() - .Exist(); - var propertyMembersWithoutInitOnlySetterHaveNoInitOnlySetter = PropertyMembers() - .That() - .DoNotHaveInitOnlySetter() - .Should() - .NotHaveInitOnlySetter(); - - Assert.True( - propertyMembersWithInitOnlySetterHaveInitOnlySetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithInitOnlySetterHaveNoInitOnlySetter.HasNoViolations(Architecture) - ); - Assert.False( - propertyMembersWithoutInitOnlySetterHaveInitOnlySetter.HasNoViolations(Architecture) - ); - Assert.True( - propertyMembersWithoutInitOnlySetterHaveNoInitOnlySetter.HasNoViolations( - Architecture - ) - ); + var helper = new PropertyMemberAssemblyTestHelper(); + + helper.AddSnapshotHeader("No Violations"); + var should = PropertyMembers().That().Are(helper.WritableProperty).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateProtectedSetter().AssertNoViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateProtectedSetter()).AssertNoViolations(helper); + + helper.AddSnapshotHeader("Violations"); + should = PropertyMembers().That().Are(helper.PropertyWithPrivateProtectedSetter).Should(); + + helper.AddSnapshotSubHeader("Conditions"); + should.NotHavePrivateProtectedSetter().AssertOnlyViolations(helper); + + helper.AddSnapshotSubHeader("Predicates"); + should.Be(PropertyMembers().That().DoNotHavePrivateProtectedSetter()).AssertOnlyViolations(helper); + + helper.AddSnapshotHeader("Multiple inputs"); + PropertyMembers().That().Are(helper.WritableProperty, helper.OtherWritableProperty).Should().NotHavePrivateProtectedSetter().AssertNoViolations(helper); + PropertyMembers().That().Are(helper.WritableProperty, helper.PropertyWithPrivateProtectedSetter).Should().NotHavePrivateProtectedSetter().AssertAnyViolations(helper); + + await helper.AssertSnapshotMatches(); } } } diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.BeVirtualTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.BeVirtualTest.verified.txt new file mode 100644 index 000000000..2a4c9326f --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.BeVirtualTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" should be virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" should be Property members that are virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" should be virtual +Result: False +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() is not virtual +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" should be virtual" failed: + System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() is not virtual + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" should be Property members that are virtual +Result: False +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() is not Property members that are virtual +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" should be Property members that are virtual" failed: + System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() is not Property members that are virtual + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" or "System.String PropertyMemberNamespace.OtherClassWithVir... should be virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithVirtualProperty::OtherVirtualProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" or "System.String PropertyMemberNamespace.ClassWithNonVirtu... should be virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() is not virtual +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" or "System.String PropertyMemberNamespace.ClassWithNonVirtu... should be virtual" failed: + System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() is not virtual + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveGetterTest.verified.txt new file mode 100644 index 000000000..e0ffb2536 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should have a getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() has no getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should have a getter" failed: + System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() has no getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should be Property members that have getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() is not Property members that have getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should be Property members that have getter" failed: + System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() is not Property members that have getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should have a getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithWriteO... should have a getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() has no getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithWriteO... should have a getter" failed: + System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() has no getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInitOnlySetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInitOnlySetterTest.verified.txt new file mode 100644 index 000000000..d8186120c --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInitOnlySetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should have an only init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should be Property members that have an init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have an only init only setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does not have an init only setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have an only init only setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does not have an init only setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have an init only setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have an init only setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have an init only setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have an init only setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should have an only init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" or "System.String PropertyMemberNamespace.ClassWithWritab... should have an only init only setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does not have an init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" or "System.String PropertyMemberNamespace.ClassWithWritab... should have an only init only setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does not have an init only setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalGetterTest.verified.txt new file mode 100644 index 000000000..5c2071b01 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalGetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should have an internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should be Property members that have internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have an internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have an internal getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have internal getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have internal getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should have an internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" or "System.String PropertyMemberNamespace... should have an internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" or "System.String PropertyMemberNamespace... should have an internal getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalSetterTest.verified.txt new file mode 100644 index 000000000..fc217020c --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveInternalSetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should have an internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should be Property members that have internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have an internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have an internal setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have internal setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have internal setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should have an internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" or "System.String PropertyMemberNamespace... should have an internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" or "System.String PropertyMemberNamespace... should have an internal setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateGetterTest.verified.txt new file mode 100644 index 000000000..afb26308c --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateGetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should have a private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should be Property members that have private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should have a private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" or "System.String PropertyMemberNamespace.C... should have a private getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" or "System.String PropertyMemberNamespace.C... should have a private getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt new file mode 100644 index 000000000..0f5f746b4 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should have a private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should be Property members that have private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private protected getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private protected getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should have a private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" or "System.String Propert... should have a private protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" or "System.String Propert... should have a private protected getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt new file mode 100644 index 000000000..69a98974b --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should have a private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should be Property members that have private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private protected setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private protected setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should have a private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" or "System.String Propert... should have a private protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" or "System.String Propert... should have a private protected setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateSetterTest.verified.txt new file mode 100644 index 000000000..362b09ad1 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateSetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should have a private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should be Property members that have private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have private setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have private setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should have a private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" or "System.String PropertyMemberNamespace.C... should have a private setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" or "System.String PropertyMemberNamespace.C... should have a private setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedGetterTest.verified.txt new file mode 100644 index 000000000..a1a7b788d --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedGetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should have a protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should be Property members that have protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should have a protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" or "System.String PropertyMemberNamespa... should have a protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" or "System.String PropertyMemberNamespa... should have a protected getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalGetterTest.verified.txt new file mode 100644 index 000000000..5ca542e76 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalGetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should have a protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should be Property members that have protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected internal getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected internal getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected internal getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should have a protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" or "System.String Prope... should have a protected internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" or "System.String Prope... should have a protected internal getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalSetterTest.verified.txt new file mode 100644 index 000000000..efbd7ac0b --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedInternalSetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should have a protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should be Property members that have protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected internal setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected internal setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected internal setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should have a protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" or "System.String Prope... should have a protected internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" or "System.String Prope... should have a protected internal setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedSetterTest.verified.txt new file mode 100644 index 000000000..dd0f42c62 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveProtectedSetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should have a protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should be Property members that have protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a protected setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have protected setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have protected setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should have a protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" or "System.String PropertyMemberNamespa... should have a protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" or "System.String PropertyMemberNamespa... should have a protected setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicGetterTest.verified.txt new file mode 100644 index 000000000..1bf02421e --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should have a public getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should have a public getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should be Property members that have public getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() is not Property members that have public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should be Property members that have public getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() is not Property members that have public getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should have a public getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicSetterTest.verified.txt new file mode 100644 index 000000000..3dea7cadb --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePublicSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should have a public setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should have a public setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should be Property members that have public setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() is not Property members that have public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should be Property members that have public setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() is not Property members that have public setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.OtherClassWithW... should have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithWritableProperty::OtherWritableProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should have a public setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveSetterTest.verified.txt new file mode 100644 index 000000000..fde29aa64 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HaveSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should have a setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() has no setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should have a setter" failed: + System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() has no setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should be Property members that have setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() is not Property members that have setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should be Property members that have setter" failed: + System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() is not Property members that have setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithInitOn... should have a setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should have a setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() has no setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should have a setter" failed: + System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() has no setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotBeVirtualTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotBeVirtualTest.verified.txt new file mode 100644 index 000000000..084761a83 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotBeVirtualTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" should not be virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" should be Property members that are not virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" should not be virtual +Result: False +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() is virtual +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" should not be virtual" failed: + System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() is virtual + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" should be Property members that are not virtual +Result: False +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() is not Property members that are not virtual +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty()" should be Property members that are not virtual" failed: + System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() is not Property members that are not virtual + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" or "System.String PropertyMemberNamespace.ClassWithWr... should not be virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" or "System.String PropertyMemberNamespace.ClassWithVi... should not be virtual +Result: False +Description: System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() is virtual +Result: True +Description: System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithNonVirtualProperty::NonVirtualProperty()" or "System.String PropertyMemberNamespace.ClassWithVi... should not be virtual" failed: + System.String PropertyMemberNamespace.ClassWithVirtualProperty::VirtualProperty() is virtual + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveGetterTest.verified.txt new file mode 100644 index 000000000..ba19352d6 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveGetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should have no getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should be Property members that have no getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have no getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have no getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have no getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have no getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have no getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have no getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" should have no getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" or "System.String PropertyMemberNamespace.ClassWithWrit... should have no getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWriteOnlyProperty::WriteOnlyProperty()" or "System.String PropertyMemberNamespace.ClassWithWrit... should have no getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInitOnlySetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInitOnlySetterTest.verified.txt new file mode 100644 index 000000000..a842018df --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInitOnlySetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have an init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have an init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should not have an init only setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() has an init only setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should not have an init only setter" failed: + System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() has an init only setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should be Property members that do not have an init only setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() is not Property members that do not have an init only setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty()" should be Property members that do not have an init only setter" failed: + System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() is not Property members that do not have an init only setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should not have an init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithInitOn... should not have an init only setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() has an init only setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithInitOn... should not have an init only setter" failed: + System.String PropertyMemberNamespace.ClassWithInitOnlyProperty::InitOnlyProperty() has an init only setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalGetterTest.verified.txt new file mode 100644 index 000000000..26e8ffe8e --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have an internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should not have an internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() does have an internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should not have an internal getter" failed: + System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() does have an internal getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should be Property members that do not have internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() is not Property members that do not have internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter()" should be Property members that do not have internal getter" failed: + System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() is not Property members that do not have internal getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should not have an internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithIntern... should not have an internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() does have an internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithIntern... should not have an internal getter" failed: + System.String PropertyMemberNamespace.ClassWithInternalGetterProperty::PropertyWithInternalGetter() does have an internal getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalSetterTest.verified.txt new file mode 100644 index 000000000..8404d60ab --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveInternalSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have an internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should not have an internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() does have an internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should not have an internal setter" failed: + System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() does have an internal setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should be Property members that do not have internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() is not Property members that do not have internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter()" should be Property members that do not have internal setter" failed: + System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() is not Property members that do not have internal setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.OtherClassWithW... should not have an internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithWritableProperty::OtherWritableProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithIntern... should not have an internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() does have an internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithIntern... should not have an internal setter" failed: + System.String PropertyMemberNamespace.ClassWithInternalSetterProperty::PropertyWithInternalSetter() does have an internal setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateGetterTest.verified.txt new file mode 100644 index 000000000..2796eccec --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should not have a private getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should not have a private getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should be Property members that do not have private getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() is not Property members that do not have private getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should be Property members that do not have private getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() is not Property members that do not have private getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should not have a private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() does have a private getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedGetterTest.verified.txt new file mode 100644 index 000000000..38d1dfc7c --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should not have a private protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() does have a private protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should not have a private protected getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() does have a private protected getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should be Property members that do not have private protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() is not Property members that do not have private protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" should be Property members that do not have private protected getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() is not Property members that do not have private protected getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should not have a private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() does have a private protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private protected getter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() does have a private protected getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedSetterTest.verified.txt new file mode 100644 index 000000000..375a87986 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateProtectedSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should not have a private protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() does have a private protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should not have a private protected setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() does have a private protected setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should be Property members that do not have private protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() is not Property members that do not have private protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" should be Property members that do not have private protected setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() is not Property members that do not have private protected setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.OtherClassWithW... should not have a private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithWritableProperty::OtherWritableProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() does have a private protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private protected setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() does have a private protected setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateSetterTest.verified.txt new file mode 100644 index 000000000..c34145ce4 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePrivateSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should not have a private setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should not have a private setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should be Property members that do not have private setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() is not Property members that do not have private setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should be Property members that do not have private setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() is not Property members that do not have private setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.OtherClassWithW... should not have a private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithWritableProperty::OtherWritableProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithPrivat... should not have a private setter" failed: + System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() does have a private setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedGetterTest.verified.txt new file mode 100644 index 000000000..f4dd02dbc --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should not have a protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() does have a protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should not have a protected getter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() does have a protected getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should be Property members that do not have protected getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() is not Property members that do not have protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter()" should be Property members that do not have protected getter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() is not Property members that do not have protected getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should not have a protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() does have a protected getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected getter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() does have a protected getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalGetterTest.verified.txt new file mode 100644 index 000000000..4eec260a7 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should not have a protected internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() does have a protected internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should not have a protected internal getter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() does have a protected internal getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should be Property members that do not have protected internal getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() is not Property members that do not have protected internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter()" should be Property members that do not have protected internal getter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() is not Property members that do not have protected internal getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithGetOnl... should not have a protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected internal getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() does have a protected internal getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected internal getter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedInternalGetterProperty::PropertyWithProtectedInternalGetter() does have a protected internal getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalSetterTest.verified.txt new file mode 100644 index 000000000..fc5c96fa1 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedInternalSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should not have a protected internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() does have a protected internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should not have a protected internal setter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() does have a protected internal setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should be Property members that do not have protected internal setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() is not Property members that do not have protected internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter()" should be Property members that do not have protected internal setter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() is not Property members that do not have protected internal setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.OtherClassWithW... should not have a protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithWritableProperty::OtherWritableProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected internal setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() does have a protected internal setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected internal setter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedInternalSetterProperty::PropertyWithProtectedInternalSetter() does have a protected internal setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedSetterTest.verified.txt new file mode 100644 index 000000000..1d4e8f8b6 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveProtectedSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should not have a protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() does have a protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should not have a protected setter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() does have a protected setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should be Property members that do not have protected setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() is not Property members that do not have protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter()" should be Property members that do not have protected setter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() is not Property members that do not have protected setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.OtherClassWithW... should not have a protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.OtherClassWithWritableProperty::OtherWritableProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() passed +Result: False +Description: System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() does have a protected setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" or "System.String PropertyMemberNamespace.ClassWithProtec... should not have a protected setter" failed: + System.String PropertyMemberNamespace.ClassWithProtectedSetterProperty::PropertyWithProtectedSetter() does have a protected setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicGetterTest.verified.txt new file mode 100644 index 000000000..beb71b75a --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicGetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should not have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" should be Property members that do not have public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a public getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a public getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have public getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that do not have public getter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have public getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that do not have public getter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" or "System.String PropertyMemberNamespace.C... should not have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithProtectedGetterProperty::PropertyWithProtectedGetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" or "System.String PropertyMemberNamespace.C... should not have a public getter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateGetterProperty::PropertyWithPrivateGetter()" or "System.String PropertyMemberNamespace.C... should not have a public getter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicSetterTest.verified.txt new file mode 100644 index 000000000..49c65a2ca --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHavePublicSetterTest.verified.txt @@ -0,0 +1,63 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should not have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" should be Property members that do not have public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a public setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should not have a public setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have public setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that do not have public setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that do not have public setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that do not have public setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" or "System.String PropertyMemberNamespace.C... should not have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" or "System.String PropertyMemberNamespace.C... should not have a public setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateSetterProperty::PropertyWithPrivateSetter()" or "System.String PropertyMemberNamespace.C... should not have a public setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter + + + diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveSetterTest.verified.txt new file mode 100644 index 000000000..2f9ddf868 --- /dev/null +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.NotHaveSetterTest.verified.txt @@ -0,0 +1,61 @@ +===== No Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should have no setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should be Property members that have no setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +===== Violations ===== + +----- Conditions ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have no setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have no setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a setter + + + +----- Predicates ----- + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have no setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have no setter +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should be Property members that have no setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() is not Property members that have no setter + + + +===== Multiple inputs ===== + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" should have no setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +All Evaluations passed + +Query: Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" or "System.String PropertyMemberNamespace.ClassWithWritable... should have no setter +Result: False +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a setter +Result: True +Description: System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty() passed +Message: +"Property members that are "System.String PropertyMemberNamespace.ClassWithGetOnlyProperty::GetOnlyProperty()" or "System.String PropertyMemberNamespace.ClassWithWritable... should have no setter" failed: + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a setter + + + diff --git a/ArchUnitNETTests/StaticTestArchitectures.cs b/ArchUnitNETTests/StaticTestArchitectures.cs index af8d59c4d..fdfe02d69 100644 --- a/ArchUnitNETTests/StaticTestArchitectures.cs +++ b/ArchUnitNETTests/StaticTestArchitectures.cs @@ -69,6 +69,12 @@ public static class StaticTestArchitectures ) .Build(); + public static readonly Architecture PropertyMemberArchitecture = new ArchLoader() + .WithoutRuleEvaluationCache() + .WithoutArchitectureCache() + .LoadAssemblies(typeof(PropertyMemberNamespace.ClassWithWritableProperty).Assembly) + .Build(); + public static readonly Architecture ArchUnitNETTestAssemblyArchitecture = new ArchLoader() .LoadAssemblies(typeof(Class1).Assembly) .Build(); diff --git a/TestAssemblies/PropertyMemberAssembly/PropertyMemberAssembly.csproj b/TestAssemblies/PropertyMemberAssembly/PropertyMemberAssembly.csproj new file mode 100644 index 000000000..6865534e9 --- /dev/null +++ b/TestAssemblies/PropertyMemberAssembly/PropertyMemberAssembly.csproj @@ -0,0 +1,12 @@ + + + net10.0 + enable + enable + true + false + True + ..\..\strongNameKey.snk + 1.0.0.0 + + diff --git a/TestAssemblies/PropertyMemberAssembly/PropertyMemberAssemblyClasses.cs b/TestAssemblies/PropertyMemberAssembly/PropertyMemberAssemblyClasses.cs new file mode 100644 index 000000000..bda8d6435 --- /dev/null +++ b/TestAssemblies/PropertyMemberAssembly/PropertyMemberAssemblyClasses.cs @@ -0,0 +1,96 @@ +namespace PropertyMemberNamespace; + +public class ClassWithWritableProperty +{ + public string WritableProperty { get; set; } = ""; +} + +public class OtherClassWithWritableProperty +{ + public string OtherWritableProperty { get; set; } = ""; +} + +public class ClassWithInitOnlyProperty +{ + public string InitOnlyProperty { get; init; } = ""; +} + +public class ClassWithGetOnlyProperty +{ + public string GetOnlyProperty { get; } = ""; +} + +public class ClassWithVirtualProperty +{ + public virtual string VirtualProperty { get; set; } = ""; +} + +public class OtherClassWithVirtualProperty +{ + public virtual string OtherVirtualProperty { get; set; } = ""; +} + +public class ClassWithNonVirtualProperty +{ + public string NonVirtualProperty { get; set; } = ""; +} + +public class ClassWithWriteOnlyProperty +{ + private string _writeOnlyField = ""; + + public string WriteOnlyProperty + { + set => _writeOnlyField = value; + } +} + +public class ClassWithPrivateGetterProperty +{ + public string PropertyWithPrivateGetter { private get; set; } = ""; +} + +public class ClassWithProtectedGetterProperty +{ + public string PropertyWithProtectedGetter { protected get; set; } = ""; +} + +public class ClassWithInternalGetterProperty +{ + public string PropertyWithInternalGetter { internal get; set; } = ""; +} + +public class ClassWithProtectedInternalGetterProperty +{ + public string PropertyWithProtectedInternalGetter { protected internal get; set; } = ""; +} + +public class ClassWithPrivateProtectedGetterProperty +{ + public string PropertyWithPrivateProtectedGetter { private protected get; set; } = ""; +} + +public class ClassWithPrivateSetterProperty +{ + public string PropertyWithPrivateSetter { get; private set; } = ""; +} + +public class ClassWithProtectedSetterProperty +{ + public string PropertyWithProtectedSetter { get; protected set; } = ""; +} + +public class ClassWithInternalSetterProperty +{ + public string PropertyWithInternalSetter { get; internal set; } = ""; +} + +public class ClassWithProtectedInternalSetterProperty +{ + public string PropertyWithProtectedInternalSetter { get; protected internal set; } = ""; +} + +public class ClassWithPrivateProtectedSetterProperty +{ + public string PropertyWithPrivateProtectedSetter { get; private protected set; } = ""; +} From 718e8de4068bef64d47c88973b6d4a40ce2fe6d4 Mon Sep 17 00:00:00 2001 From: Alexander Linne Date: Fri, 24 Jul 2026 13:18:35 +0200 Subject: [PATCH 2/2] refactor: deduplicate implementation of property member syntax elements Signed-off-by: Alexander Linne --- .../PropertyMemberConditionsDefinition.cs | 317 ++++++------------ .../PropertyMemberPredicateDefinition.cs | 234 +++++-------- ...avePrivateProtectedGetterTest.verified.txt | 8 +- ...avePrivateProtectedSetterTest.verified.txt | 8 +- 4 files changed, 183 insertions(+), 384 deletions(-) diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberConditionsDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberConditionsDefinition.cs index c56b78386..8183da31a 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberConditionsDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberConditionsDefinition.cs @@ -1,4 +1,5 @@ -using ArchUnitNET.Domain; +using System.Collections.Generic; +using ArchUnitNET.Domain; using ArchUnitNET.Fluent.Conditions; using static ArchUnitNET.Domain.Visibility; @@ -6,6 +7,18 @@ namespace ArchUnitNET.Fluent.Syntax.Elements.Members.PropertyMembers { public static class PropertyMemberConditionsDefinition { + private static readonly Dictionary VisibilityDescriptions = + new Dictionary + { + { Private, "a private" }, + { Public, "a public" }, + { Protected, "a protected" }, + { Internal, "an internal" }, + { ProtectedInternal, "a protected internal" }, + { PrivateProtected, "a private protected" }, + { NotAccessible, "a not accessible" }, + }; + public static IOrderedCondition HaveGetter() { return new SimpleCondition( @@ -15,75 +28,23 @@ public static IOrderedCondition HaveGetter() ); } - public static IOrderedCondition HavePrivateGetter() - { - return new SimpleCondition( - member => member.GetterVisibility == Private, - member => - "does have a " - + VisibilityStrings.ToString(member.GetterVisibility) - + " getter", - "have a private getter" - ); - } + public static IOrderedCondition HavePrivateGetter() => + HaveGetterWithVisibility(Private); - public static IOrderedCondition HavePublicGetter() - { - return new SimpleCondition( - member => member.GetterVisibility == Public, - member => - "does have a " - + VisibilityStrings.ToString(member.GetterVisibility) - + " getter", - "have a public getter" - ); - } + public static IOrderedCondition HavePublicGetter() => + HaveGetterWithVisibility(Public); - public static IOrderedCondition HaveProtectedGetter() - { - return new SimpleCondition( - member => member.GetterVisibility == Protected, - member => - "does have a " - + VisibilityStrings.ToString(member.GetterVisibility) - + " getter", - "have a protected getter" - ); - } + public static IOrderedCondition HaveProtectedGetter() => + HaveGetterWithVisibility(Protected); - public static IOrderedCondition HaveInternalGetter() - { - return new SimpleCondition( - member => member.GetterVisibility == Internal, - member => - "does have a " - + VisibilityStrings.ToString(member.GetterVisibility) - + " getter", - "have an internal getter" - ); - } + public static IOrderedCondition HaveInternalGetter() => + HaveGetterWithVisibility(Internal); - public static IOrderedCondition HaveProtectedInternalGetter() - { - return new SimpleCondition( - member => member.GetterVisibility == ProtectedInternal, - member => - "does have a " - + VisibilityStrings.ToString(member.GetterVisibility) - + " getter", - "have a protected internal getter" - ); - } + public static IOrderedCondition HaveProtectedInternalGetter() => + HaveGetterWithVisibility(ProtectedInternal); - public static IOrderedCondition HavePrivateProtectedGetter() - { - return new SimpleCondition( - member => member.GetterVisibility == PrivateProtected, - member => - "does have " + VisibilityStrings.ToString(member.GetterVisibility) + " getter", - "have a private protected getter" - ); - } + public static IOrderedCondition HavePrivateProtectedGetter() => + HaveGetterWithVisibility(PrivateProtected); public static IOrderedCondition HaveSetter() { @@ -94,75 +55,23 @@ public static IOrderedCondition HaveSetter() ); } - public static IOrderedCondition HavePrivateSetter() - { - return new SimpleCondition( - member => member.SetterVisibility == Private, - member => - "does have a " - + VisibilityStrings.ToString(member.SetterVisibility) - + " setter", - "have a private setter" - ); - } + public static IOrderedCondition HavePrivateSetter() => + HaveSetterWithVisibility(Private); - public static IOrderedCondition HavePublicSetter() - { - return new SimpleCondition( - member => member.SetterVisibility == Public, - member => - "does have a " - + VisibilityStrings.ToString(member.SetterVisibility) - + " setter", - "have a public setter" - ); - } + public static IOrderedCondition HavePublicSetter() => + HaveSetterWithVisibility(Public); - public static IOrderedCondition HaveProtectedSetter() - { - return new SimpleCondition( - member => member.SetterVisibility == Protected, - member => - "does have a " - + VisibilityStrings.ToString(member.SetterVisibility) - + " setter", - "have a protected setter" - ); - } + public static IOrderedCondition HaveProtectedSetter() => + HaveSetterWithVisibility(Protected); - public static IOrderedCondition HaveInternalSetter() - { - return new SimpleCondition( - member => member.SetterVisibility == Internal, - member => - "does have a " - + VisibilityStrings.ToString(member.SetterVisibility) - + " setter", - "have an internal setter" - ); - } + public static IOrderedCondition HaveInternalSetter() => + HaveSetterWithVisibility(Internal); - public static IOrderedCondition HaveProtectedInternalSetter() - { - return new SimpleCondition( - member => member.SetterVisibility == ProtectedInternal, - member => - "does have a " - + VisibilityStrings.ToString(member.SetterVisibility) - + " setter", - "have a protected internal setter" - ); - } + public static IOrderedCondition HaveProtectedInternalSetter() => + HaveSetterWithVisibility(ProtectedInternal); - public static IOrderedCondition HavePrivateProtectedSetter() - { - return new SimpleCondition( - member => member.SetterVisibility == PrivateProtected, - member => - "does have " + VisibilityStrings.ToString(member.SetterVisibility) + " setter", - "have a private protected setter" - ); - } + public static IOrderedCondition HavePrivateProtectedSetter() => + HaveSetterWithVisibility(PrivateProtected); public static IOrderedCondition HaveInitSetter() { @@ -193,59 +102,23 @@ public static IOrderedCondition NotHaveGetter() ); } - public static IOrderedCondition NotHavePrivateGetter() - { - return new SimpleCondition( - member => member.GetterVisibility != Private, - "not have a private getter", - "does have a private getter" - ); - } + public static IOrderedCondition NotHavePrivateGetter() => + NotHaveGetterWithVisibility(Private); - public static IOrderedCondition NotHavePublicGetter() - { - return new SimpleCondition( - member => member.GetterVisibility != Public, - "not have a public getter", - "does have a public getter" - ); - } + public static IOrderedCondition NotHavePublicGetter() => + NotHaveGetterWithVisibility(Public); - public static IOrderedCondition NotHaveProtectedGetter() - { - return new SimpleCondition( - member => member.GetterVisibility != Protected, - "not have a protected getter", - "does have a protected getter" - ); - } + public static IOrderedCondition NotHaveProtectedGetter() => + NotHaveGetterWithVisibility(Protected); - public static IOrderedCondition NotHaveInternalGetter() - { - return new SimpleCondition( - member => member.GetterVisibility != Internal, - "not have an internal getter", - "does have an internal getter" - ); - } + public static IOrderedCondition NotHaveInternalGetter() => + NotHaveGetterWithVisibility(Internal); - public static IOrderedCondition NotHaveProtectedInternalGetter() - { - return new SimpleCondition( - member => member.GetterVisibility != ProtectedInternal, - "not have a protected internal getter", - "does have a protected internal getter" - ); - } + public static IOrderedCondition NotHaveProtectedInternalGetter() => + NotHaveGetterWithVisibility(ProtectedInternal); - public static IOrderedCondition NotHavePrivateProtectedGetter() - { - return new SimpleCondition( - member => member.GetterVisibility != PrivateProtected, - "not have a private protected getter", - "does have a private protected getter" - ); - } + public static IOrderedCondition NotHavePrivateProtectedGetter() => + NotHaveGetterWithVisibility(PrivateProtected); public static IOrderedCondition NotHaveSetter() { @@ -256,75 +129,85 @@ public static IOrderedCondition NotHaveSetter() ); } - public static IOrderedCondition NotHavePrivateSetter() - { - return new SimpleCondition( - member => member.SetterVisibility != Private, - "not have a private setter", - "does have a private setter" - ); - } + public static IOrderedCondition NotHavePrivateSetter() => + NotHaveSetterWithVisibility(Private); - public static IOrderedCondition NotHavePublicSetter() - { - return new SimpleCondition( - member => member.SetterVisibility != Public, - "not have a public setter", - "does have a public setter" - ); - } + public static IOrderedCondition NotHavePublicSetter() => + NotHaveSetterWithVisibility(Public); + + public static IOrderedCondition NotHaveProtectedSetter() => + NotHaveSetterWithVisibility(Protected); - public static IOrderedCondition NotHaveProtectedSetter() + public static IOrderedCondition NotHaveInternalSetter() => + NotHaveSetterWithVisibility(Internal); + + public static IOrderedCondition NotHaveProtectedInternalSetter() => + NotHaveSetterWithVisibility(ProtectedInternal); + + public static IOrderedCondition NotHavePrivateProtectedSetter() => + NotHaveSetterWithVisibility(PrivateProtected); + + public static IOrderedCondition NotHaveInitSetter() { return new SimpleCondition( - member => member.SetterVisibility != Protected, - "not have a protected setter", - "does have a protected setter" + member => member.Writability != Writability.InitOnly, + "not have an init only setter", + "has an init only setter" ); } - public static IOrderedCondition NotHaveInternalSetter() + public static IOrderedCondition NotBeVirtual() { return new SimpleCondition( - member => member.SetterVisibility != Internal, - "not have an internal setter", - "does have an internal setter" + member => !member.IsVirtual, + "not be virtual", + "is virtual" ); } - public static IOrderedCondition NotHaveProtectedInternalSetter() + private static IOrderedCondition HaveGetterWithVisibility( + Visibility visibility + ) { return new SimpleCondition( - member => member.SetterVisibility != ProtectedInternal, - "not have a protected internal setter", - "does have a protected internal setter" + member => member.GetterVisibility == visibility, + member => + "does have " + VisibilityDescriptions[member.GetterVisibility] + " getter", + "have " + VisibilityDescriptions[visibility] + " getter" ); } - public static IOrderedCondition NotHavePrivateProtectedSetter() + private static IOrderedCondition HaveSetterWithVisibility( + Visibility visibility + ) { return new SimpleCondition( - member => member.SetterVisibility != PrivateProtected, - "not have a private protected setter", - "does have a private protected setter" + member => member.SetterVisibility == visibility, + member => + "does have " + VisibilityDescriptions[member.SetterVisibility] + " setter", + "have " + VisibilityDescriptions[visibility] + " setter" ); } - public static IOrderedCondition NotHaveInitSetter() + private static IOrderedCondition NotHaveGetterWithVisibility( + Visibility visibility + ) { return new SimpleCondition( - member => member.Writability != Writability.InitOnly, - "not have an init only setter", - "has an init only setter" + member => member.GetterVisibility != visibility, + "not have " + VisibilityDescriptions[visibility] + " getter", + "does have " + VisibilityDescriptions[visibility] + " getter" ); } - public static IOrderedCondition NotBeVirtual() + private static IOrderedCondition NotHaveSetterWithVisibility( + Visibility visibility + ) { return new SimpleCondition( - member => !member.IsVirtual, - "not be virtual", - "is virtual" + member => member.SetterVisibility != visibility, + "not have " + VisibilityDescriptions[visibility] + " setter", + "does have " + VisibilityDescriptions[visibility] + " setter" ); } } diff --git a/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberPredicateDefinition.cs b/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberPredicateDefinition.cs index aff6f58a8..0b1112391 100644 --- a/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberPredicateDefinition.cs +++ b/ArchUnitNET/Fluent/Syntax/Elements/Members/PropertyMembers/PropertyMemberPredicateDefinition.cs @@ -1,4 +1,4 @@ -using ArchUnitNET.Domain; +using ArchUnitNET.Domain; using ArchUnitNET.Fluent.Predicates; using static ArchUnitNET.Domain.Visibility; @@ -14,53 +14,23 @@ public static IPredicate HaveGetter() ); } - public static IPredicate HavePrivateGetter() - { - return new SimplePredicate( - member => member.GetterVisibility == Private, - "have private getter" - ); - } + public static IPredicate HavePrivateGetter() => + HaveGetterWithVisibility(Private); - public static IPredicate HavePublicGetter() - { - return new SimplePredicate( - member => member.GetterVisibility == Public, - "have public getter" - ); - } + public static IPredicate HavePublicGetter() => + HaveGetterWithVisibility(Public); - public static IPredicate HaveProtectedGetter() - { - return new SimplePredicate( - member => member.GetterVisibility == Protected, - "have protected getter" - ); - } + public static IPredicate HaveProtectedGetter() => + HaveGetterWithVisibility(Protected); - public static IPredicate HaveInternalGetter() - { - return new SimplePredicate( - member => member.GetterVisibility == Internal, - "have internal getter" - ); - } + public static IPredicate HaveInternalGetter() => + HaveGetterWithVisibility(Internal); - public static IPredicate HaveProtectedInternalGetter() - { - return new SimplePredicate( - member => member.GetterVisibility == ProtectedInternal, - "have protected internal getter" - ); - } + public static IPredicate HaveProtectedInternalGetter() => + HaveGetterWithVisibility(ProtectedInternal); - public static IPredicate HavePrivateProtectedGetter() - { - return new SimplePredicate( - member => member.GetterVisibility == PrivateProtected, - "have private protected getter" - ); - } + public static IPredicate HavePrivateProtectedGetter() => + HaveGetterWithVisibility(PrivateProtected); public static IPredicate HaveSetter() { @@ -70,53 +40,23 @@ public static IPredicate HaveSetter() ); } - public static IPredicate HavePrivateSetter() - { - return new SimplePredicate( - member => member.SetterVisibility == Private, - "have private setter" - ); - } + public static IPredicate HavePrivateSetter() => + HaveSetterWithVisibility(Private); - public static IPredicate HavePublicSetter() - { - return new SimplePredicate( - member => member.SetterVisibility == Public, - "have public setter" - ); - } + public static IPredicate HavePublicSetter() => + HaveSetterWithVisibility(Public); - public static IPredicate HaveProtectedSetter() - { - return new SimplePredicate( - member => member.SetterVisibility == Protected, - "have protected setter" - ); - } + public static IPredicate HaveProtectedSetter() => + HaveSetterWithVisibility(Protected); - public static IPredicate HaveInternalSetter() - { - return new SimplePredicate( - member => member.SetterVisibility == Internal, - "have internal setter" - ); - } + public static IPredicate HaveInternalSetter() => + HaveSetterWithVisibility(Internal); - public static IPredicate HaveProtectedInternalSetter() - { - return new SimplePredicate( - member => member.SetterVisibility == ProtectedInternal, - "have protected internal setter" - ); - } + public static IPredicate HaveProtectedInternalSetter() => + HaveSetterWithVisibility(ProtectedInternal); - public static IPredicate HavePrivateProtectedSetter() - { - return new SimplePredicate( - member => member.SetterVisibility == PrivateProtected, - "have private protected setter" - ); - } + public static IPredicate HavePrivateProtectedSetter() => + HaveSetterWithVisibility(PrivateProtected); public static IPredicate HaveInitSetter() { @@ -141,53 +81,23 @@ public static IPredicate HaveNoGetter() ); } - public static IPredicate DoNotHavePrivateGetter() - { - return new SimplePredicate( - member => member.GetterVisibility != Private, - "do not have private getter" - ); - } + public static IPredicate DoNotHavePrivateGetter() => + DoNotHaveGetterWithVisibility(Private); - public static IPredicate DoNotHavePublicGetter() - { - return new SimplePredicate( - member => member.GetterVisibility != Public, - "do not have public getter" - ); - } + public static IPredicate DoNotHavePublicGetter() => + DoNotHaveGetterWithVisibility(Public); - public static IPredicate DoNotHaveProtectedGetter() - { - return new SimplePredicate( - member => member.GetterVisibility != Protected, - "do not have protected getter" - ); - } + public static IPredicate DoNotHaveProtectedGetter() => + DoNotHaveGetterWithVisibility(Protected); - public static IPredicate DoNotHaveInternalGetter() - { - return new SimplePredicate( - member => member.GetterVisibility != Internal, - "do not have internal getter" - ); - } + public static IPredicate DoNotHaveInternalGetter() => + DoNotHaveGetterWithVisibility(Internal); - public static IPredicate DoNotHaveProtectedInternalGetter() - { - return new SimplePredicate( - member => member.GetterVisibility != ProtectedInternal, - "do not have protected internal getter" - ); - } + public static IPredicate DoNotHaveProtectedInternalGetter() => + DoNotHaveGetterWithVisibility(ProtectedInternal); - public static IPredicate DoNotHavePrivateProtectedGetter() - { - return new SimplePredicate( - member => member.GetterVisibility != PrivateProtected, - "do not have private protected getter" - ); - } + public static IPredicate DoNotHavePrivateProtectedGetter() => + DoNotHaveGetterWithVisibility(PrivateProtected); public static IPredicate HaveNoSetter() { @@ -197,67 +107,73 @@ public static IPredicate HaveNoSetter() ); } - public static IPredicate DoNotHavePrivateSetter() - { - return new SimplePredicate( - member => member.SetterVisibility != Private, - "do not have private setter" - ); - } + public static IPredicate DoNotHavePrivateSetter() => + DoNotHaveSetterWithVisibility(Private); - public static IPredicate DoNotHavePublicSetter() - { - return new SimplePredicate( - member => member.SetterVisibility != Public, - "do not have public setter" - ); - } + public static IPredicate DoNotHavePublicSetter() => + DoNotHaveSetterWithVisibility(Public); + + public static IPredicate DoNotHaveProtectedSetter() => + DoNotHaveSetterWithVisibility(Protected); + + public static IPredicate DoNotHaveInternalSetter() => + DoNotHaveSetterWithVisibility(Internal); + + public static IPredicate DoNotHaveProtectedInternalSetter() => + DoNotHaveSetterWithVisibility(ProtectedInternal); + + public static IPredicate DoNotHavePrivateProtectedSetter() => + DoNotHaveSetterWithVisibility(PrivateProtected); - public static IPredicate DoNotHaveProtectedSetter() + public static IPredicate DoNotHaveInitSetter() { return new SimplePredicate( - member => member.SetterVisibility != Protected, - "do not have protected setter" + member => member.Writability != Writability.InitOnly, + "do not have an init only setter" ); } - public static IPredicate DoNotHaveInternalSetter() + public static IPredicate AreNotVirtual() { return new SimplePredicate( - member => member.SetterVisibility != Internal, - "do not have internal setter" + member => !member.IsVirtual, + "are not virtual" ); } - public static IPredicate DoNotHaveProtectedInternalSetter() + private static IPredicate HaveGetterWithVisibility(Visibility visibility) { return new SimplePredicate( - member => member.SetterVisibility != ProtectedInternal, - "do not have protected internal setter" + member => member.GetterVisibility == visibility, + "have " + VisibilityStrings.ToString(visibility) + " getter" ); } - public static IPredicate DoNotHavePrivateProtectedSetter() + private static IPredicate HaveSetterWithVisibility(Visibility visibility) { return new SimplePredicate( - member => member.SetterVisibility != PrivateProtected, - "do not have private protected setter" + member => member.SetterVisibility == visibility, + "have " + VisibilityStrings.ToString(visibility) + " setter" ); } - public static IPredicate DoNotHaveInitSetter() + private static IPredicate DoNotHaveGetterWithVisibility( + Visibility visibility + ) { return new SimplePredicate( - member => member.Writability != Writability.InitOnly, - "do not have an init only setter" + member => member.GetterVisibility != visibility, + "do not have " + VisibilityStrings.ToString(visibility) + " getter" ); } - public static IPredicate AreNotVirtual() + private static IPredicate DoNotHaveSetterWithVisibility( + Visibility visibility + ) { return new SimplePredicate( - member => !member.IsVirtual, - "are not virtual" + member => member.SetterVisibility != visibility, + "do not have " + VisibilityStrings.ToString(visibility) + " setter" ); } } diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt index 0f5f746b4..deff4410d 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedGetterTest.verified.txt @@ -22,10 +22,10 @@ All Evaluations passed Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected getter Result: False -Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter Message: "Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected getter" failed: - System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter @@ -50,12 +50,12 @@ All Evaluations passed Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" or "System.String Propert... should have a private protected getter Result: False -Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter Result: True Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter() passed Message: "Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedGetterProperty::PropertyWithPrivateProtectedGetter()" or "System.String Propert... should have a private protected getter" failed: - System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public getter + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public getter diff --git a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt index 69a98974b..f058ebe4e 100644 --- a/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt +++ b/ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/PropertyMemberSyntaxElementsTests.HavePrivateProtectedSetterTest.verified.txt @@ -22,10 +22,10 @@ All Evaluations passed Query: Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected setter Result: False -Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter Message: "Property members that are "System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty()" should have a private protected setter" failed: - System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter @@ -50,12 +50,12 @@ All Evaluations passed Query: Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" or "System.String Propert... should have a private protected setter Result: False -Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter +Description: System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter Result: True Description: System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter() passed Message: "Property members that are "System.String PropertyMemberNamespace.ClassWithPrivateProtectedSetterProperty::PropertyWithPrivateProtectedSetter()" or "System.String Propert... should have a private protected setter" failed: - System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have public setter + System.String PropertyMemberNamespace.ClassWithWritableProperty::WritableProperty() does have a public setter