Skip to content

Commit de5139a

Browse files
committed
refactoring : extract ConditionTests_Dependencies and PredicateTests_Dependencies to separate files
1 parent 1f94ca6 commit de5139a

File tree

6 files changed

+266
-281
lines changed

6 files changed

+266
-281
lines changed

src/NetArchTest.Rules/Functions/FunctionDelegates.Traits.cs

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -229,32 +229,6 @@ internal static IEnumerable<TypeSpec> BePrivateProtected(IEnumerable<TypeSpec> i
229229
{
230230
return input.Where(c => !c.Definition.IsNestedFamilyAndAssembly);
231231
}
232-
}
233-
234-
//
235-
236-
internal static IEnumerable<TypeSpec> BeImmutable(IEnumerable<TypeSpec> input, bool condition)
237-
{
238-
if (condition)
239-
{
240-
return input.Where(c => c.Definition.IsImmutable());
241-
}
242-
else
243-
{
244-
return input.Where(c => !c.Definition.IsImmutable());
245-
}
246-
}
247-
248-
internal static IEnumerable<TypeSpec> HasNullableMembers(IEnumerable<TypeSpec> input, bool condition)
249-
{
250-
if (condition)
251-
{
252-
return input.Where(c => c.Definition.HasNullableMembers());
253-
}
254-
else
255-
{
256-
return input.Where(c => !c.Definition.HasNullableMembers());
257-
}
258-
}
232+
}
259233
}
260234
}

src/NetArchTest.Rules/Functions/FunctionDelegates.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,5 +177,32 @@ internal static IEnumerable<TypeSpec> MeetCustomRule(IEnumerable<TypeSpec> input
177177
return input.Where(t => !rule.MeetsRule(t.Definition));
178178
}
179179
}
180+
181+
182+
//
183+
184+
internal static IEnumerable<TypeSpec> BeImmutable(IEnumerable<TypeSpec> input, bool condition)
185+
{
186+
if (condition)
187+
{
188+
return input.Where(c => c.Definition.IsImmutable());
189+
}
190+
else
191+
{
192+
return input.Where(c => !c.Definition.IsImmutable());
193+
}
194+
}
195+
196+
internal static IEnumerable<TypeSpec> HasNullableMembers(IEnumerable<TypeSpec> input, bool condition)
197+
{
198+
if (condition)
199+
{
200+
return input.Where(c => c.Definition.HasNullableMembers());
201+
}
202+
else
203+
{
204+
return input.Where(c => !c.Definition.HasNullableMembers());
205+
}
206+
}
180207
}
181208
}

test/NetArchTest.Rules.UnitTests/ConditionTests.cs

Lines changed: 0 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -516,133 +516,6 @@ public void ResideInNamespace_Nested_AllClassReturned()
516516
Assert.True(result.IsSuccessful);
517517
}
518518

519-
[Fact(DisplayName = "Types can be selected if they have a dependency on a specific item.")]
520-
public void HaveDependency_MatchesFound_ClassSelected()
521-
{
522-
var result = Types
523-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
524-
.That()
525-
.ResideInNamespace(typeof(HasDependency).Namespace)
526-
.And()
527-
.HaveNameStartingWith("HasDepend")
528-
.Should()
529-
.HaveDependencyOnAny(typeof(ExampleDependency).FullName)
530-
.GetResult();
531-
532-
Assert.True(result.IsSuccessful);
533-
}
534-
535-
[Fact(DisplayName = "Types can be selected if they have a dependency on any item in a list.")]
536-
public void HaveDependencyOnAny_MatchesFound_ClassSelected()
537-
{
538-
var result = Types
539-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
540-
.That()
541-
.ResideInNamespace(typeof(HasDependency).Namespace)
542-
.And()
543-
.HaveNameStartingWith("Has")
544-
.Should()
545-
.HaveDependencyOnAny(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
546-
.GetResult();
547-
548-
Assert.True(result.IsSuccessful);
549-
}
550-
551-
[Fact(DisplayName = "Types can be selected if they have a dependency on all the items in a list.")]
552-
public void HaveDependencyOnAll_MatchesFound_ClassSelected()
553-
{
554-
var result = Types
555-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
556-
.That()
557-
.ResideInNamespace(typeof(HasDependency).Namespace)
558-
.And()
559-
.HaveNameStartingWith("HasDependencies")
560-
.Should()
561-
.HaveDependencyOnAll(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
562-
.GetResult();
563-
564-
Assert.True(result.IsSuccessful);
565-
}
566-
567-
[Fact(DisplayName = "Types can be selected if they only have a dependency on any item in a list.")]
568-
public void OnlyHaveDependenciesOn_MatchesFound_ClassSelected()
569-
{
570-
var result = Types
571-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
572-
.That()
573-
.ResideInNamespace(typeof(HasDependency).Namespace)
574-
.And()
575-
.HaveNameStartingWith("HasDependency")
576-
.Should()
577-
.OnlyHaveDependencyOn(new[] { typeof(ExampleDependency).FullName, "System" })
578-
.GetResult();
579-
580-
Assert.True(result.IsSuccessful);
581-
}
582-
583-
[Fact(DisplayName = "Types can be selected if they do not have a dependency on another type.")]
584-
public void NotHaveDependency_MatchesFound_ClassSelected()
585-
{
586-
var result = Types
587-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
588-
.That()
589-
.ResideInNamespace(typeof(HasDependency).Namespace)
590-
.And()
591-
.HaveNameStartingWith("NoDependency")
592-
.Should()
593-
.NotHaveDependencyOnAny(typeof(ExampleDependency).FullName)
594-
.GetResult();
595-
596-
Assert.True(result.IsSuccessful);
597-
}
598-
599-
[Fact(DisplayName = "Types can be selected if they do not have a dependency on any item in a list.")]
600-
public void NotHaveDependencyOnAny_MatchesFound_ClassSelected()
601-
{
602-
var result = Types
603-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
604-
.That()
605-
.ResideInNamespace(typeof(HasDependency).Namespace)
606-
.And()
607-
.HaveNameStartingWith("NoDependency")
608-
.Should()
609-
.NotHaveDependencyOnAny(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
610-
.GetResult();
611-
612-
Assert.True(result.IsSuccessful);
613-
}
614-
615-
[Fact(DisplayName = "Types can be selected if they do not have a dependency on all the items in a list.")]
616-
public void NotHaveDependencyOnAll_MatchesFound_ClassSelected()
617-
{
618-
var result = Types
619-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
620-
.That()
621-
.ResideInNamespace(typeof(HasDependency).Namespace)
622-
.And()
623-
.HaveNameStartingWith("NoDependency")
624-
.Should()
625-
.NotHaveDependencyOnAll(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
626-
.GetResult();
627-
628-
Assert.True(result.IsSuccessful);
629-
}
630-
631-
[Fact(DisplayName = "Types can be selected if they have a dependency that is not on the a list.")]
632-
public void HaveDependenciesOtherThan_MatchesFound_ClassSelected()
633-
{
634-
var result = Types
635-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
636-
.That()
637-
.ResideInNamespace(typeof(HasDependency).Namespace)
638-
.And()
639-
.HaveNameStartingWith("HasDependencies")
640-
.Should()
641-
.HaveDependencyOtherThan(new[] { typeof(ExampleDependency).FullName, "System" })
642-
.GetResult();
643-
644-
Assert.True(result.IsSuccessful);
645-
}
646519

647520
[Fact(DisplayName = "Types failing condition are reported when test fails.")]
648521
public void MatchNotFound_ClassesReported()
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
using System.Reflection;
2+
using NetArchTest.Rules;
3+
using NetArchTest.TestStructure.Dependencies.Examples;
4+
using NetArchTest.TestStructure.Dependencies.Implementation;
5+
using Xunit;
6+
7+
namespace NetArchTest.UnitTests
8+
{
9+
public class ConditionTests_Dependencies
10+
{
11+
private Predicate GetTypesThat()
12+
{
13+
return Types
14+
.InAssembly(Assembly.GetAssembly(typeof(HasDependency)))
15+
.That()
16+
.ResideInNamespace(typeof(HasDependency).Namespace)
17+
.And();
18+
}
19+
20+
21+
[Fact(DisplayName = "Types can be selected if they have a dependency on a specific item.")]
22+
public void HaveDependencyOnAny()
23+
{
24+
var result = GetTypesThat()
25+
.HaveNameStartingWith("HasDepend")
26+
.Should()
27+
.HaveDependencyOnAny(typeof(ExampleDependency).FullName)
28+
.GetResult();
29+
30+
Assert.True(result.IsSuccessful);
31+
}
32+
33+
[Fact(DisplayName = "Types can be selected if they have a dependency on any item in a list.")]
34+
public void HaveDependencyOnAny_Many()
35+
{
36+
var result = GetTypesThat()
37+
.HaveNameStartingWith("Has")
38+
.Should()
39+
.HaveDependencyOnAny(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
40+
.GetResult();
41+
42+
Assert.True(result.IsSuccessful);
43+
}
44+
45+
[Fact(DisplayName = "Types can be selected if they have a dependency on all the items in a list.")]
46+
public void HaveDependencyOnAll()
47+
{
48+
var result = GetTypesThat()
49+
.HaveNameStartingWith("HasDependencies")
50+
.Should()
51+
.HaveDependencyOnAll(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
52+
.GetResult();
53+
54+
Assert.True(result.IsSuccessful);
55+
}
56+
57+
[Fact(DisplayName = "Types can be selected if they only have a dependency on any item in a list.")]
58+
public void HaveNameStartingWith()
59+
{
60+
var result = GetTypesThat()
61+
.HaveNameStartingWith("HasDependency")
62+
.Should()
63+
.OnlyHaveDependencyOn(new[] { typeof(ExampleDependency).FullName, "System" })
64+
.GetResult();
65+
66+
Assert.True(result.IsSuccessful);
67+
}
68+
69+
[Fact(DisplayName = "Types can be selected if they do not have a dependency on another type.")]
70+
public void NotHaveDependencyOnAny()
71+
{
72+
var result = GetTypesThat()
73+
.HaveNameStartingWith("NoDependency")
74+
.Should()
75+
.NotHaveDependencyOnAny(typeof(ExampleDependency).FullName)
76+
.GetResult();
77+
78+
Assert.True(result.IsSuccessful);
79+
}
80+
81+
[Fact(DisplayName = "Types can be selected if they do not have a dependency on any item in a list.")]
82+
public void NotHaveDependencyOnAny_Many()
83+
{
84+
var result = GetTypesThat()
85+
.HaveNameStartingWith("NoDependency")
86+
.Should()
87+
.NotHaveDependencyOnAny(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
88+
.GetResult();
89+
90+
Assert.True(result.IsSuccessful);
91+
}
92+
93+
[Fact(DisplayName = "Types can be selected if they do not have a dependency on all the items in a list.")]
94+
public void NotHaveDependencyOnAll()
95+
{
96+
var result = GetTypesThat()
97+
.HaveNameStartingWith("NoDependency")
98+
.Should()
99+
.NotHaveDependencyOnAll(new[] { typeof(ExampleDependency).FullName, typeof(AnotherExampleDependency).FullName })
100+
.GetResult();
101+
102+
Assert.True(result.IsSuccessful);
103+
}
104+
105+
[Fact(DisplayName = "Types can be selected if they have a dependency that is not on the a list.")]
106+
public void HaveDependencyOtherThan()
107+
{
108+
var result = GetTypesThat()
109+
.HaveNameStartingWith("HasDependencies")
110+
.Should()
111+
.HaveDependencyOtherThan(new[] { typeof(ExampleDependency).FullName, "System" })
112+
.GetResult();
113+
114+
Assert.True(result.IsSuccessful);
115+
}
116+
117+
}
118+
}

0 commit comments

Comments
 (0)