Skip to content

Commit 4cba12b

Browse files
committed
Switch generic argument tests to be isolated from fluent tests
Signed-off-by: Pete Forrest <petemforrest@gmail.com>
1 parent ed98f4e commit 4cba12b

10 files changed

Lines changed: 123 additions & 161 deletions

ArchUnitNETTests/AssemblyTestHelper/DependencyAssemblyTestHelpers.cs

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,6 @@ public class DependencyAssemblyTestHelper : AssemblyTestHelper
5757
public Class OtherClassWithoutDependencies;
5858
public Type OtherClassWithoutDependenciesSystemType = typeof(OtherClassWithoutDependencies);
5959

60-
public Class GenericArgumentClass;
61-
public Type GenericArgumentClassSystemType =
62-
typeof(TypeDependencyNamespace.GenericArgumentClass);
63-
64-
public Class ClassWithGenericMethodCallDependency;
65-
public Type ClassWithGenericMethodCallDependencySystemType = typeof(ClassWithGenericMethodCall);
66-
6760
public MethodMember MethodWithSingleDependency;
6861

6962
public MethodMember CalledMethod;
@@ -100,15 +93,9 @@ public DependencyAssemblyTestHelper()
10093
GenericBaseClass = Architecture.GetClassOfType(typeof(GenericBaseClass<>));
10194
ChildClassOfGeneric = Architecture.GetClassOfType(typeof(ChildClassOfGeneric));
10295
ClassWithoutDependencies = Architecture.GetClassOfType(typeof(ClassWithoutDependencies));
103-
ClassWithGenericMethodCallDependency = Architecture.GetClassOfType(
104-
typeof(ClassWithGenericMethodCall)
105-
);
10696
OtherClassWithoutDependencies = Architecture.GetClassOfType(
10797
typeof(OtherClassWithoutDependencies)
10898
);
109-
GenericArgumentClass = Architecture.GetClassOfType(
110-
typeof(TypeDependencyNamespace.GenericArgumentClass)
111-
);
11299
MethodWithSingleDependency = Architecture
113100
.MethodMembers.WhereNameIs("MethodWithSingleDependency()")
114101
.First();
Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,38 @@
1-
namespace ArchUnitNETTests.Dependencies
1+
using System.Linq;
2+
using ArchUnitNET.Domain;
3+
using ArchUnitNET.Domain.Dependencies;
4+
using ArchUnitNET.Domain.Extensions;
5+
using Xunit;
6+
7+
namespace ArchUnitNETTests.Dependencies
28
{
3-
public class GenericMemberDependenciesTests { }
9+
public class GenericMemberDependenciesTests
10+
{
11+
[Fact]
12+
public void GenericArgumentsFromMethodCallTest()
13+
{
14+
var architecture = StaticTestArchitectures.ArchUnitNETTestArchitecture;
15+
var classWithGenericMethodCall = architecture.GetClassOfType(
16+
typeof(ClassWithGenericMethodCall)
17+
);
18+
var genericArgumentClass = architecture.GetClassOfType(
19+
typeof(GenericArgumentClass)
20+
);
21+
var methodMember = (MethodMember)classWithGenericMethodCall.Members
22+
.WhereNameIs("OuterFunc()")
23+
.First();
24+
Assert.Contains(methodMember.Dependencies, dependency => dependency is MethodSignatureDependency bodyTypeMemberDependency &&
25+
bodyTypeMemberDependency.Target.Equals(genericArgumentClass));
26+
}
27+
}
428

5-
internal class GenericClass<T>
29+
public class ClassWithGenericMethodCall
630
{
7-
public M GenericMethod<M>(T t)
8-
where M : new()
31+
public void OuterFunc()
932
{
10-
return new M();
33+
LocalFunc<GenericArgumentClass>();
34+
35+
void LocalFunc<T>() { }
1136
}
1237
}
1338
}

ArchUnitNETTests/Fluent/Syntax/Elements/ObjectSyntaxElementsTests.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -482,18 +482,6 @@ public async Task DependOnAnyTest()
482482
Types().That().Are(helper.ChildClass1, helper.ChildClass2).Should().BeTypesThat().DependOnAny(helper.BaseClassWithMultipleDependenciesSystemType).AssertNoViolations(helper);
483483
Types().That().Are(helper.ChildClass, helper.BaseClass).Should().BeTypesThat().DependOnAny(helper.ClassWithoutDependencies).AssertOnlyViolations(helper);
484484

485-
helper.AddSnapshotHeader("Type with generic argument");
486-
should = Types().That().Are(helper.ClassWithGenericMethodCallDependency).Should();
487-
488-
helper.AddSnapshotSubHeader("Conditions");
489-
should.DependOnAny(helper.GenericArgumentClass).AssertNoViolations(helper);
490-
491-
helper.AddSnapshotSubHeader("Predicates");
492-
should.Be(Types().That().DependOnAny(helper.GenericArgumentClass)).AssertNoViolations(helper);
493-
494-
helper.AddSnapshotSubHeader("Predicates as conditions");
495-
should.BeTypesThat().DependOnAny(helper.GenericArgumentClass).AssertNoViolations(helper);
496-
497485
await helper.AssertSnapshotMatches();
498486
}
499487

ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.DependOnAnyTest.verified.txt

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -591,29 +591,3 @@ Message:
591591

592592

593593

594-
===== Type with generic argument =====
595-
596-
----- Conditions -----
597-
598-
Query: Types that are "TypeDependencyNamespace.ClassWithGenericMethodCall" should depend on "TypeDependencyNamespace.GenericArgumentClass"
599-
Result: True
600-
Description: TypeDependencyNamespace.ClassWithGenericMethodCall passed
601-
Message:
602-
All Evaluations passed
603-
604-
----- Predicates -----
605-
606-
Query: Types that are "TypeDependencyNamespace.ClassWithGenericMethodCall" should be Types that depend on "TypeDependencyNamespace.GenericArgumentClass"
607-
Result: True
608-
Description: TypeDependencyNamespace.ClassWithGenericMethodCall passed
609-
Message:
610-
All Evaluations passed
611-
612-
----- Predicates as conditions -----
613-
614-
Query: Types that are "TypeDependencyNamespace.ClassWithGenericMethodCall" should be types that depend on "TypeDependencyNamespace.GenericArgumentClass"
615-
Result: True
616-
Description: TypeDependencyNamespace.ClassWithGenericMethodCall passed
617-
Message:
618-
All Evaluations passed
619-

ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotBeTest.verified.txt

Lines changed: 10 additions & 10 deletions
Large diffs are not rendered by default.

ArchUnitNETTests/Fluent/Syntax/Elements/Snapshots/ObjectSyntaxElementsTests.NotCallAnyTest.verified.txt

Lines changed: 16 additions & 16 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)