Skip to content

Commit d0e74fc

Browse files
committed
make use of IClassFixture<T>
1 parent f49ed7a commit d0e74fc

16 files changed

+190
-100
lines changed

sources/NetArchTest/Assemblies/TypeSource.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ internal sealed class TypeSource
1515

1616

1717

18-
public static IEnumerable<TypeSpec> FromAssemblies(IEnumerable<Assembly> assemblies, IEnumerable<string> searchDirectories = null)
18+
public static IEnumerable<TypeDefinition> FromAssemblies(IEnumerable<Assembly> assemblies, IEnumerable<string> searchDirectories = null)
1919
{
2020
foreach (var assembly in assemblies)
2121
{
@@ -30,7 +30,7 @@ public static IEnumerable<TypeSpec> FromAssemblies(IEnumerable<Assembly> assembl
3030
}
3131
}
3232
}
33-
public static IEnumerable<TypeSpec> FromFiles(IEnumerable<string> fileNames, IEnumerable<string> searchDirectories = null)
33+
public static IEnumerable<TypeDefinition> FromFiles(IEnumerable<string> fileNames, IEnumerable<string> searchDirectories = null)
3434
{
3535
foreach (var fileName in fileNames)
3636
{
@@ -41,7 +41,7 @@ public static IEnumerable<TypeSpec> FromFiles(IEnumerable<string> fileNames, IEn
4141
}
4242
}
4343

44-
private static IEnumerable<TypeSpec> ReadTypes(string assemblyLocation, bool readSymbols = true, IEnumerable<string> searchDirectories = null)
44+
private static IEnumerable<TypeDefinition> ReadTypes(string assemblyLocation, bool readSymbols = true, IEnumerable<string> searchDirectories = null)
4545
{
4646
ReaderParameters readerParameters = new ReaderParameters { ReadSymbols = readSymbols, SymbolReaderProvider = new DefaultSymbolReaderProvider(false) };
4747

@@ -87,7 +87,7 @@ private static AssemblyDefinition ReadAssemblyDefinition(string path, ReaderPara
8787
return null;
8888
}
8989
}
90-
private static IEnumerable<TypeSpec> GetAllTypes(IEnumerable<TypeDefinition> types)
90+
private static IEnumerable<TypeDefinition> GetAllTypes(IEnumerable<TypeDefinition> types)
9191
{
9292
foreach (var type in types)
9393
{
@@ -96,7 +96,7 @@ private static IEnumerable<TypeSpec> GetAllTypes(IEnumerable<TypeDefinition> typ
9696
continue;
9797
}
9898

99-
yield return new TypeSpec(type);
99+
yield return type;
100100

101101
if (type.NestedTypes?.Any() == true)
102102
{

sources/NetArchTest/RuleEngine/RuleContext.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ internal class RuleContext
1414
public ConditionContext ConditionContext { get; } = new ConditionContext();
1515

1616

17-
public RuleContext(IEnumerable<TypeSpec> inpuTypes)
17+
public RuleContext(IEnumerable<TypeDefinition> inpuTypes)
1818
{
19-
lodedTypes = inpuTypes.ToArray();
19+
lodedTypes = inpuTypes.Select(x => new TypeSpec(x)).ToArray();
2020
}
2121

2222

sources/NetArchTest/Types.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System.IO;
44
using System.Reflection;
55
using System.Runtime.CompilerServices;
6+
using Mono.Cecil;
67
using NetArchTest.Assemblies;
78
using NetArchTest.RuleEngine;
89
using NetArchTest.Slices;
@@ -16,10 +17,10 @@ namespace NetArchTest.Rules
1617
/// </summary>
1718
public sealed class Types
1819
{
19-
private readonly IEnumerable<TypeSpec> types;
20+
private readonly IEnumerable<TypeDefinition> types;
2021

2122

22-
private Types(IEnumerable<TypeSpec> types)
23+
private Types(IEnumerable<TypeDefinition> types)
2324
{
2425
this.types = types;
2526
}

tests/NetArchTest.Rules.UnitTests/ConditionTests_AccessModifiers.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1-
using System.Reflection;
2-
using NetArchTest.Rules;
3-
using NetArchTest.TestStructure.AccessModifiers;
1+
using NetArchTest.Rules;
42
using Xunit;
53

64
namespace NetArchTest.UnitTests
75
{
8-
public class ConditionTests_AccessModifiers
6+
public class ConditionTests_AccessModifiers : IClassFixture<AccessModifiersFixture>
97
{
8+
AccessModifiersFixture fixture;
9+
10+
public ConditionTests_AccessModifiers(AccessModifiersFixture fixture)
11+
{
12+
this.fixture = fixture;
13+
}
14+
15+
1016
private Predicate GetTypesThat()
1117
{
12-
return Types
13-
.InAssembly(Assembly.GetAssembly(typeof(PublicClass)))
18+
return fixture.Types
1419
.That()
1520
.ResideInNamespace("NetArchTest.TestStructure.AccessModifiers")
1621
.And();

tests/NetArchTest.Rules.UnitTests/ConditionTests_Dependencies.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
1-
using System.Reflection;
2-
using NetArchTest.Rules;
1+
using NetArchTest.Rules;
32
using NetArchTest.TestStructure.Dependencies.Examples;
43
using NetArchTest.TestStructure.Dependencies.Implementation;
54
using Xunit;
65

76
namespace NetArchTest.UnitTests
87
{
9-
public class ConditionTests_Dependencies
8+
public class ConditionTests_Dependencies : IClassFixture<DependenciesFixture>
109
{
10+
DependenciesFixture fixture;
11+
12+
public ConditionTests_Dependencies(DependenciesFixture fixture)
13+
{
14+
this.fixture = fixture;
15+
}
16+
17+
18+
1119
private Predicate GetTypesThat()
1220
{
13-
return Types
14-
.InAssembly(Assembly.GetAssembly(typeof(HasDependency)))
21+
return fixture.Types
1522
.That()
1623
.ResideInNamespace(typeof(HasDependency).Namespace)
1724
.And();

tests/NetArchTest.Rules.UnitTests/ConditionTests_Names.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
using System;
22
using System.Linq;
3-
using System.Reflection;
43
using NetArchTest.Rules;
54
using NetArchTest.TestStructure.Names.Namespace1;
65
using NetArchTest.TestStructure.Names.Namespace2;
76
using Xunit;
87

98
namespace NetArchTest.UnitTests
109
{
11-
public class ConditionTests_Names
10+
public class ConditionTests_Names : IClassFixture<NamesFixture>
1211
{
12+
NamesFixture fixture;
13+
14+
public ConditionTests_Names(NamesFixture fixture)
15+
{
16+
this.fixture = fixture;
17+
}
18+
1319
private Predicate GetTypesThat()
1420
{
15-
return Types
16-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
21+
return fixture.Types
1722
.That()
1823
.ResideInNamespace("NetArchTest.TestStructure.Names")
1924
.And();

tests/NetArchTest.Rules.UnitTests/ConditionTests_Special.cs

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
using System.Linq;
2-
using System.Reflection;
1+
using System.Reflection;
32
using NetArchTest.Rules;
43
using NetArchTest.TestStructure.File;
5-
using NetArchTest.TestStructure.File.Correct;
64
using NetArchTest.TestStructure.File.Incorrect.Yabadabado;
75
using NetArchTest.TestStructure.NameMatching.Namespace1;
86
using NetArchTest.TestStructure.Stateless;
@@ -11,13 +9,19 @@
119

1210
namespace NetArchTest.UnitTests
1311
{
14-
public class ConditionTests_Special
12+
public class ConditionTests_Special : IClassFixture<SpecialFixture>
1513
{
14+
SpecialFixture fixture;
15+
16+
public ConditionTests_Special(SpecialFixture fixture)
17+
{
18+
this.fixture = fixture;
19+
}
20+
1621
[Fact(DisplayName = "BeImmutable")]
1722
public void BeImmutable()
1823
{
19-
var result = Types
20-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
24+
var result = fixture.Types
2125
.That()
2226
.ResideInNamespace("NetArchTest.TestStructure.Mutability")
2327
.And()
@@ -31,8 +35,7 @@ public void BeImmutable()
3135
[Fact(DisplayName = "BeMutable")]
3236
public void BeMutable()
3337
{
34-
var result = Types
35-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
38+
var result = fixture.Types
3639
.That()
3740
.ResideInNamespace("NetArchTest.TestStructure.Mutability")
3841
.And()
@@ -46,8 +49,7 @@ public void BeMutable()
4649
[Fact(DisplayName = "BeImmutableExternally")]
4750
public void BeImmutableExternally()
4851
{
49-
var result = Types
50-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
52+
var result = fixture.Types
5153
.That()
5254
.ResideInNamespace("NetArchTest.TestStructure.Mutability")
5355
.And()
@@ -64,8 +66,7 @@ public void BeImmutableExternally()
6466
[Fact(DisplayName = "BeStateless")]
6567
public void BeStateless()
6668
{
67-
var result = Types
68-
.InAssembly(Assembly.GetAssembly(typeof(StatelessClass_StaticField)))
69+
var result = fixture.Types
6970
.That()
7071
.ResideInNamespace(namespaceof<StatelessClass_StaticField>())
7172
.And()
@@ -79,8 +80,7 @@ public void BeStateless()
7980
[Fact(DisplayName = "OnlyHaveNullableMembers")]
8081
public void OnlyHaveNullableMembers()
8182
{
82-
var result = Types
83-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
83+
var result = fixture.Types
8484
.That()
8585
.ResideInNamespace("NetArchTest.TestStructure.Nullable")
8686
.And()
@@ -96,8 +96,7 @@ public void OnlyHaveNullableMembers()
9696
[Fact(DisplayName = "HaveSomeNonNullableMembers")]
9797
public void HaveSomeNonNullableMembers()
9898
{
99-
var result = Types
100-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
99+
var result = fixture.Types
101100
.That()
102101
.ResideInNamespace("NetArchTest.TestStructure.Nullable")
103102
.And()
@@ -113,8 +112,7 @@ public void HaveSomeNonNullableMembers()
113112
[Fact(DisplayName = "OnlyHaveNonNullableMembers")]
114113
public void OnlyHaveNonNullableMembers()
115114
{
116-
var result = Types
117-
.InAssembly(Assembly.GetAssembly(typeof(ClassA1)))
115+
var result = fixture.Types
118116
.That()
119117
.ResideInNamespace("NetArchTest.TestStructure.Nullable")
120118
.And()
@@ -131,8 +129,7 @@ public void OnlyHaveNonNullableMembers()
131129
[Fact(DisplayName = "HaveFileNameMatchingTypeName_Should")]
132130
public void HaveFileNameMatchingTypeName_Should()
133131
{
134-
var result = Types
135-
.InAssembly(Assembly.GetAssembly(typeof(SourceFileNameType)))
132+
var result = fixture.Types
136133
.That()
137134
.ResideInNamespace(namespaceof<SourceFileNameType>())
138135
.And()
@@ -146,8 +143,7 @@ public void HaveFileNameMatchingTypeName_Should()
146143
[Fact(DisplayName = "HaveFileNameMatchingTypeName_ShouldNot")]
147144
public void HaveFileNameMatchingTypeName_ShouldNot()
148145
{
149-
var result = Types
150-
.InAssembly(Assembly.GetAssembly(typeof(SourceFileNameType)))
146+
var result = fixture.Types
151147
.That()
152148
.ResideInNamespace(namespaceof<SourceFileNameType>())
153149
.And()
@@ -162,8 +158,7 @@ public void HaveFileNameMatchingTypeName_ShouldNot()
162158
[Fact(DisplayName = "HaveSourceFilePathMatchingTypeNamespace_Should")]
163159
public void HaveSourceFilePathMatchingTypeNamespace_Should()
164160
{
165-
var result = Types
166-
.InAssembly(Assembly.GetAssembly(typeof(SourceFileNameType)))
161+
var result = fixture.Types
167162
.That()
168163
.ResideInNamespace(namespaceof<SourceFileNameType>())
169164
.And()
@@ -177,8 +172,7 @@ public void HaveSourceFilePathMatchingTypeNamespace_Should()
177172
[Fact(DisplayName = "HaveSourceFilePathMatchingTypeNamespace_ShouldNot")]
178173
public void HaveSourceFilePathMatchingTypeNamespace_ShouldNot()
179174
{
180-
var result = Types
181-
.InAssembly(Assembly.GetAssembly(typeof(SourceFileNameType)))
175+
var result = fixture.Types
182176
.That()
183177
.ResideInNamespace(namespaceof<SourceFileNameType>())
184178
.And()
@@ -192,8 +186,7 @@ public void HaveSourceFilePathMatchingTypeNamespace_ShouldNot()
192186
[Fact(DisplayName = "HaveMatchingTypeWithName_Should")]
193187
public void HaveMatchingTypeWithName_Should()
194188
{
195-
var result = Types
196-
.InAssembly(Assembly.GetAssembly(typeof(SourceFileNameType)))
189+
var result = fixture.Types
197190
.That()
198191
.AreOfType(typeof(CorrectSourceFileNameType))
199192
.Should()
@@ -205,8 +198,7 @@ public void HaveMatchingTypeWithName_Should()
205198
[Fact(DisplayName = "HaveMatchingTypeWithName_ShouldNot")]
206199
public void HaveMatchingTypeWithName_ShouldNot()
207200
{
208-
var result = Types
209-
.InAssembly(Assembly.GetAssembly(typeof(SourceFileNameType)))
201+
var result = fixture.Types
210202
.That()
211203
.AreNotOfType(typeof(CorrectSourceFileNameType))
212204
.ShouldNot()

tests/NetArchTest.Rules.UnitTests/ConditionTests_Traits.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
1-
using System.Reflection;
2-
using NetArchTest.Rules;
3-
using NetArchTest.TestStructure.Traits;
1+
using NetArchTest.Rules;
42
using Xunit;
53

64
namespace NetArchTest.UnitTests
75
{
8-
public class ConditionTests_Traits
6+
public class ConditionTests_Traits : IClassFixture<TraitsFixture>
97
{
8+
TraitsFixture fixture;
9+
10+
public ConditionTests_Traits(TraitsFixture fixture)
11+
{
12+
this.fixture = fixture;
13+
}
14+
1015
private Predicate GetTypesThat()
1116
{
12-
return Types
13-
.InAssembly(Assembly.GetAssembly(typeof(StaticClass)))
17+
return fixture.Types
1418
.That()
1519
.ResideInNamespace("NetArchTest.TestStructure.Traits")
1620
.And();

tests/NetArchTest.Rules.UnitTests/ConditionTests_Types.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
1-
using System.Reflection;
2-
using NetArchTest.Rules;
3-
using NetArchTest.TestStructure.Types;
1+
using NetArchTest.Rules;
42
using Xunit;
53

64
namespace NetArchTest.UnitTests
75
{
8-
public class ConditionTests_Types
6+
public class ConditionTests_Types : IClassFixture<TypesFixture>
97
{
8+
TypesFixture fixture;
9+
10+
public ConditionTests_Types(TypesFixture fixture)
11+
{
12+
this.fixture = fixture;
13+
}
14+
15+
1016
private Predicate GetTypesThat()
1117
{
12-
return Types
13-
.InAssembly(Assembly.GetAssembly(typeof(ExampleClass)))
18+
return fixture.Types
1419
.That()
1520
.ResideInNamespace("NetArchTest.TestStructure.Types")
1621
.And();

tests/NetArchTest.Rules.UnitTests/DependencySearch/Utils/DependencySearchUtils.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
namespace NetArchTest.UnitTests.DependencySearch
22
{
33
using System;
4-
using System.Collections;
54
using System.Collections.Generic;
65
using System.Linq;
76
using System.Reflection;
8-
using Mono.Cecil;
97
using NetArchTest.Assemblies;
108
using NetArchTest.Rules;
119
using NetArchTest.TestStructure.Dependencies.Examples;
12-
using NetArchTest.TestStructure.Dependencies.Search;
13-
using NetArchTest.TestStructure.Dependencies.Search.DependencyLocation;
1410
using Xunit;
1511

1612
internal static class Utils

0 commit comments

Comments
 (0)