You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Comparer](documentation/api.md#optionscomparer) - allows to specify how strings will be compared (right now it only affects: Predicate.HaveName, Predicate.HaveNameStartingWith, Predicate.HaveNameEndingWith)
300
+
-[Comparer](documentation/api.md#optionscomparer) - allows to specify how strings will be compared, default: InvariantCultureIgnoreCase (it only affects: Predicate.HaveName, Predicate.HaveNameStartingWith, Predicate.HaveNameEndingWith)
301
301
302
+
-[SerachForDependencyInFieldConstant](documentation/api.md#optionsserachfordependencyinfieldconstant) - determines if dependency analysis should look for dependency in string field constant, default: false
Copy file name to clipboardExpand all lines: documentation/readme.nt
+13-12Lines changed: 13 additions & 12 deletions
Original file line number
Diff line number
Diff line change
@@ -12,10 +12,10 @@ NetArchTest.eNhancedEdition is based on [NetArchTest v1.3.2](https://github.com/
12
12
13
13
### Rationale
14
14
15
-
NetArchTest is well established mature library, but in order to push things forward, a few breaking changes had to be made, and that is how **eNhancedEdition** was born. eNhancedEdition uses almost identical Fluent API as a base library, but it is not 100% backward compatible, and it will never be.
15
+
NetArchTest is a well-established mature library, but to push things forward, a few breaking changes had to be made, and that is how **eNhancedEdition** was born. eNhancedEdition uses almost identical Fluent API as a base library, but it is not 100% backwards compatible, and it will never be.
16
16
17
17
What **eNhancedEdition** has to offer, that is not available in the NetArchTest v1.3.2:
18
-
- fixed all know bugs present in v1.3.2 :
18
+
- fixed all known bugs present in v1.3.2 :
19
19
- BenMorris/NetArchTest#98,
20
20
- BenMorris/NetArchTest#101,
21
21
- BenMorris/NetArchTest#120,
@@ -33,11 +33,11 @@ What **eNhancedEdition** has to offer, that is not available in the NetArchTest
33
33
- BenMorris/NetArchTest#126 - added rules for structs, enums and delegates
34
34
- BenMorris/NetArchTest#131 - added rules for all access modifiers: public, internal, private, protected, private protected, protected internal
Finally, you obtain a result from the rule by using an executor, i.e. use `GetTypes()` to return the types that match the rule or `GetResult()` to determine whether the rule has been met.
102
102
103
103
Note that `GetResult()` returns [`TestResult`](documentation/api.md#testresult) which contains a few lists of types:
104
-
- `LoadedTypes` - all types loded by [`Types`](documentation/api.md#types)
104
+
- `LoadedTypes` - all types loaded by [`Types`](documentation/api.md#types)
105
105
- `SelectedTypesForTesting` - types that passed [predicates](documentation/api.md#predicate)
106
106
- `FailingTypes`- types that failed to meet the [conditions](documentation/api.md#condition)
107
107
@@ -141,7 +141,7 @@ Dependency matrix:
141
141
| 2N | [NotHaveDependencyOnAll(D1, D2)](documentation/api.md#conditionnothavedependencyonall) | not all | yes | a, b, c, d, e, f | g, h |
142
142
| 3N | [HaveDependencyOtherThan(D1, D2)](documentation/api.md#conditionhavedependencyotherthan) | >=0 | yes | b, d, f, h, | a, c, e, g |
143
143
144
-
Explnation why a type fails dependecy search test is available on the failing type: [IType.Explanation](documentation/api.md#itypeexplanation)
144
+
An explanation of why a type fails the dependency search test is available on the failing type: [IType.Explanation](documentation/api.md#itypeexplanation)
145
145
146
146
147
147
#### Reverse dependency search
@@ -200,14 +200,14 @@ var result = Types.InAssembly(typeof(ExampleDependency).Assembly)
200
200
201
201
There is only one way, at least for now, to divide types into slices `ByNamespacePrefix(string prefix)` and it works as follows:
202
202
203
-
1) Selects types which namespace starts with a given prefix, rest of the types are ignored.
203
+
1) Select types which namespace starts with a given prefix, rest of the types are ignored.
204
204
2) Slices are defined by the first part of the namespace that comes right after the prefix:
205
205
`namespacePrefix.(sliceName).restOfNamespace`
206
-
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)
206
+
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 also be ignored (`BaseFeature` class from the following image)
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.
210
+
When our types are divided into slices, we can apply the condition: `NotHaveDependenciesBetweenSlices()`. As the name suggests it detects if any dependency exists between slices. Dependency from slice to type that is not part of any other slice is allowed.
- [Comparer](documentation/api.md#optionscomparer) - allows to specify how strings will be compared (right now it only affects: Predicate.HaveName, Predicate.HaveNameStartingWith, Predicate.HaveNameEndingWith)
251
+
- [Comparer](documentation/api.md#optionscomparer) - allows to specify how strings will be compared, default: InvariantCultureIgnoreCase (it only affects: Predicate.HaveName, Predicate.HaveNameStartingWith, Predicate.HaveNameEndingWith)
252
252
253
+
- [SerachForDependencyInFieldConstant](documentation/api.md#optionsserachfordependencyinfieldconstant) - determines if dependency analysis should look for dependency in string field constant, default: false
253
254
254
255
## Limitations
255
256
256
-
NetArchTest is build on top of [jbevain/cecil](https://github.com/jbevain/cecil) thus it works on CLI level. Unfortunately not every feature of C# language is represented in CLI, thus some things will never be available in NetArchTest, e.g.:
257
+
NetArchTest is built on top of [jbevain/cecil](https://github.com/jbevain/cecil) thus it works on CIL level. Unfortunately, not every feature of C# language is represented in CIL, thus some things will never be available in NetArchTest, e.g.:
257
258
- BenMorris/NetArchTest#81 - NetArchTest ignores a nameof expression
0 commit comments