Skip to content

Commit 0e0caab

Browse files
committed
The Big Bang 3
1 parent 9b07ba4 commit 0e0caab

File tree

26 files changed

+119
-175
lines changed

26 files changed

+119
-175
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,13 @@ There is only one way, at least for now, to divide types into slices `ByNamespac
144144
`namespacePrefix.(sliceName).restOfNamespace`
145145
3) Types with the same `sliceName` part will be placed in the same slice. If `sliceName` is empty for a given type, the type will be also ignored (`BaseFeature` class from folowing image)
146146

147-
![Slices](docs/slices.png)
147+
![Slices](documentation/slices/slices.png)
148148

149149
When we already have our types divided into slices, we can apply condition: `NotHaveDependenciesBetweenSlices()`. As the name suggest it detects if any dependency exists between slices. Dependency from slice to type that is not part of any other slice is allowed.
150150

151151
passing | failing
152152
--|---
153-
![Slices](docs/slices.ok.png)|![Slices](docs/slices.not.png)
153+
![Slices](documentation/slices/slices.ok.png)|![Slices](documentation/slices/slices.not.png)
154154

155155

156156
## Custom rules

src/NetArchTest.Rules/Assemblies/TypeSource.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
using System.Reflection;
55
using Mono.Cecil;
66
using NetArchTest.Dependencies.DataStructures;
7-
using NetArchTest.Rules.Extensions;
87

98
namespace NetArchTest.Assemblies
109
{

src/NetArchTest.Rules/Assemblies/TypeSpec.cs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,5 @@ public TypeWrapper CreateWrapper()
2020
{
2121
return new TypeWrapper(Definition);
2222
}
23-
24-
25-
public static implicit operator TypeDefinition(TypeSpec type)
26-
{
27-
return type.Definition;
28-
}
2923
}
3024
}

src/NetArchTest.Rules/Assemblies/TypeWrapper.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Diagnostics;
33
using Mono.Cecil;
44
using NetArchTest.Rules;
5-
using NetArchTest.Rules.Extensions;
65

76
namespace NetArchTest.Assemblies
87
{

src/NetArchTest.Rules/Dependencies/DataStructures/NamespaceTree.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
using System.Diagnostics;
66
using System.Text;
77
using Mono.Cecil;
8-
using NetArchTest.Rules.Extensions;
8+
99

1010
/// <summary>
1111
/// Holds tree structure of full names; child nodes of each parent are indexed for optimal time of search.

src/NetArchTest.Rules/Dependencies/DataStructures/TypeReferenceTree.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
using System.Linq;
77
using System.Text;
88
using Mono.Cecil;
9-
using NetArchTest.Rules.Extensions;
9+
1010

1111
/// <summary>
1212
/// Similar tree to <see cref="NamespaceTree"/>, but this is aware of the structure of type full name,

src/NetArchTest.Rules/Dependencies/DependencySearch.cs

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,9 @@
1-
namespace NetArchTest.Dependencies
2-
{
3-
using System;
4-
using System.Collections.Generic;
5-
using System.Linq;
6-
using Mono.Cecil;
7-
using NetArchTest.Assemblies;
8-
using NetArchTest.Dependencies.DataStructures;
9-
1+
using System.Collections.Generic;
2+
using NetArchTest.Assemblies;
3+
using NetArchTest.Dependencies.DataStructures;
104

5+
namespace NetArchTest.Dependencies
6+
{
117
/// <summary>
128
/// Finds dependencies within a given set of types.
139
/// </summary>
@@ -19,7 +15,7 @@ internal class DependencySearch
1915
/// <param name="input">The set of type definitions to search.</param>
2016
/// <param name="dependencies">The set of dependencies to look for.</param>
2117
/// <returns>A list of found types.</returns>
22-
public IReadOnlyList<TypeSpec> FindTypesThatHaveDependencyOnAny(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
18+
public IEnumerable<TypeSpec> FindTypesThatHaveDependencyOnAny(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
2319
{
2420
return FindTypes(input, TypeDefinitionCheckingResult.SearchType.HaveDependencyOnAny, dependencies, true);
2521
}
@@ -30,7 +26,7 @@ public IReadOnlyList<TypeSpec> FindTypesThatHaveDependencyOnAny(IEnumerable<Type
3026
/// <param name="input">The set of type definitions to search.</param>
3127
/// <param name="dependencies">The set of dependencies to look for.</param>
3228
/// <returns>A list of found types.</returns>
33-
public IReadOnlyList<TypeSpec> FindTypesThatHaveDependencyOnAll(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
29+
public IEnumerable<TypeSpec> FindTypesThatHaveDependencyOnAll(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
3430
{
3531
return FindTypes(input, TypeDefinitionCheckingResult.SearchType.HaveDependencyOnAll, dependencies, true);
3632
}
@@ -41,7 +37,7 @@ public IReadOnlyList<TypeSpec> FindTypesThatHaveDependencyOnAll(IEnumerable<Type
4137
/// <param name="input">The set of type definitions to search.</param>
4238
/// <param name="dependencies">The set of dependencies to look for.</param>
4339
/// <returns>A list of found types.</returns>
44-
public IReadOnlyList<TypeSpec> FindTypesThatOnlyHaveDependenciesOnAnyOrNone(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
40+
public IEnumerable<TypeSpec> FindTypesThatOnlyHaveDependenciesOnAnyOrNone(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
4541
{
4642
return FindTypes(input, TypeDefinitionCheckingResult.SearchType.OnlyHaveDependenciesOnAnyOrNone, dependencies, false);
4743
}
@@ -52,7 +48,7 @@ public IReadOnlyList<TypeSpec> FindTypesThatOnlyHaveDependenciesOnAnyOrNone(IEnu
5248
/// <param name="input">The set of type definitions to search.</param>
5349
/// <param name="dependencies">The set of dependencies to look for.</param>
5450
/// <returns>A list of found types.</returns>
55-
public IReadOnlyList<TypeSpec> FindTypesThatOnlyHaveDependenciesOnAny(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
51+
public IEnumerable<TypeSpec> FindTypesThatOnlyHaveDependenciesOnAny(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
5652
{
5753
return FindTypes(input, TypeDefinitionCheckingResult.SearchType.OnlyHaveDependenciesOnAny, dependencies, false);
5854
}
@@ -63,12 +59,12 @@ public IReadOnlyList<TypeSpec> FindTypesThatOnlyHaveDependenciesOnAny(IEnumerabl
6359
/// <param name="input">The set of type definitions to search.</param>
6460
/// <param name="dependencies">The set of dependencies to look for.</param>
6561
/// <returns>A list of found types.</returns>
66-
public IReadOnlyList<TypeSpec> FindTypesThatOnlyOnlyHaveDependenciesOnAll(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
62+
public IEnumerable<TypeSpec> FindTypesThatOnlyOnlyHaveDependenciesOnAll(IEnumerable<TypeSpec> input, IEnumerable<string> dependencies)
6763
{
6864
return FindTypes(input, TypeDefinitionCheckingResult.SearchType.OnlyHaveDependenciesOnAll, dependencies, false);
6965
}
7066

71-
private List<TypeSpec> FindTypes(IEnumerable<TypeSpec> input, TypeDefinitionCheckingResult.SearchType searchType, IEnumerable<string> dependencies, bool serachForDependencyInFieldConstant)
67+
private IEnumerable<TypeSpec> FindTypes(IEnumerable<TypeSpec> input, TypeDefinitionCheckingResult.SearchType searchType, IEnumerable<string> dependencies, bool serachForDependencyInFieldConstant)
7268
{
7369
var output = new List<TypeSpec>();
7470
var searchTree = new CachedNamespaceTree(dependencies);

0 commit comments

Comments
 (0)