11
11
12
12
namespace NUnit . Extensibility
13
13
{
14
+ [ TestFixture ( "/NUnit/Engine/TypeExtensions/" ) ]
14
15
public class ExtensionManagerTests
15
16
{
16
17
private static readonly Assembly THIS_ASSEMBLY = typeof ( ExtensionManagerTests ) . Assembly ;
@@ -21,30 +22,6 @@ public class ExtensionManagerTests
21
22
private static readonly string FAKE_EXTENSIONS_SOURCE_DIRECTORY =
22
23
Path . Combine ( new DirectoryInfo ( THIS_ASSEMBLY_DIRECTORY ) . Parent ! . Parent ! . Parent ! . FullName , "src/TestData/FakeExtensions" ) ;
23
24
24
- private static readonly string [ ] KnownExtensionPointPaths =
25
- {
26
- "/NUnit/Engine/TypeExtensions/IAgentLauncher" ,
27
- "/NUnit/Engine/TypeExtensions/IDriverFactory" ,
28
- "/NUnit/Engine/TypeExtensions/IProjectLoader" ,
29
- "/NUnit/Engine/TypeExtensions/IResultWriter" ,
30
- "/NUnit/Engine/TypeExtensions/ITestEventListener" ,
31
- "/NUnit/Engine/TypeExtensions/IService" ,
32
- "/NUnit/Engine/NUnitV2Driver"
33
- } ;
34
-
35
- private static readonly Type [ ] KnownExtensionPointTypes =
36
- {
37
- typeof ( IAgentLauncher ) ,
38
- typeof ( IDriverFactory ) ,
39
- typeof ( IProjectLoader ) ,
40
- typeof ( IResultWriter ) ,
41
- typeof ( ITestEventListener ) ,
42
- typeof ( IService ) ,
43
- typeof ( IFrameworkDriver )
44
- } ;
45
-
46
- private static readonly int [ ] KnownExtensionPointCounts = { 1 , 1 , 1 , 1 , 2 , 1 , 0 } ;
47
-
48
25
private const string FAKE_AGENT_LAUNCHER_EXTENSION = "NUnit.Engine.Fakes.FakeAgentLauncherExtension" ;
49
26
private const string FAKE_FRAMEWORK_DRIVER_EXTENSION = "NUnit.Engine.Fakes.FakeFrameworkDriverExtension" ;
50
27
private const string FAKE_PROJECT_LOADER_EXTENSION = "NUnit.Engine.Fakes.FakeProjectLoaderExtension" ;
@@ -67,11 +44,50 @@ public class ExtensionManagerTests
67
44
} ;
68
45
69
46
private ExtensionManager _extensionManager ;
47
+ private string _defaultTestExtensionPath ;
48
+
49
+ private string [ ] _expectedExtensionPointPaths ;
50
+ private Type [ ] _expectedExtensionPointTypes ;
51
+ private int [ ] _expectedExtensionCounts ;
52
+
53
+ public ExtensionManagerTests ( string defaultTestExtensionPath )
54
+ {
55
+ Guard . ArgumentValid (
56
+ defaultTestExtensionPath . StartsWith ( '/' ) && defaultTestExtensionPath . EndsWith ( '/' ) ,
57
+ "Path must start and end with '/'" , nameof ( defaultTestExtensionPath ) ) ;
58
+
59
+ _defaultTestExtensionPath = defaultTestExtensionPath ;
60
+ var prefix = defaultTestExtensionPath ?? "/NUnit/Extensibility/TypeExtensions/" ;
61
+
62
+ _expectedExtensionPointPaths =
63
+ [
64
+ prefix + "IAgentLauncher" ,
65
+ prefix + "IDriverFactory" ,
66
+ prefix + "IProjectLoader" ,
67
+ prefix + "IResultWriter" ,
68
+ prefix + "ITestEventListener" ,
69
+ prefix + "IService" ,
70
+ "/NUnit/Engine/NUnitV2Driver"
71
+ ] ;
72
+
73
+ _expectedExtensionPointTypes =
74
+ [
75
+ typeof ( IAgentLauncher ) ,
76
+ typeof ( IDriverFactory ) ,
77
+ typeof ( IProjectLoader ) ,
78
+ typeof ( IResultWriter ) ,
79
+ typeof ( ITestEventListener ) ,
80
+ typeof ( IService ) ,
81
+ typeof ( IFrameworkDriver )
82
+ ] ;
83
+
84
+ _expectedExtensionCounts = [ 1 , 1 , 1 , 1 , 2 , 1 , 0 ] ;
85
+ }
70
86
71
87
[ SetUp ]
72
88
public void CreateExtensionManager ( )
73
89
{
74
- _extensionManager = new ExtensionManager ( ) ;
90
+ _extensionManager = new ExtensionManager ( ) { TypeExtensionPath = _defaultTestExtensionPath } ;
75
91
76
92
// Find actual extension points.
77
93
_extensionManager . FindExtensionPoints ( typeof ( ExtensionManager ) . Assembly ) ;
@@ -86,7 +102,7 @@ public void CreateExtensionManager()
86
102
public void AllKnownExtensionPointsAreFound ( )
87
103
{
88
104
Assert . That ( _extensionManager . ExtensionPoints . Select ( ep => ep . Path ) ,
89
- Is . EquivalentTo ( KnownExtensionPointPaths ) ) ;
105
+ Is . EquivalentTo ( _expectedExtensionPointPaths ) ) ;
90
106
}
91
107
92
108
[ Test ]
@@ -115,37 +131,45 @@ public void AllKnownExtensionsAreEnabledAsRequired()
115
131
}
116
132
}
117
133
118
- [ Test , Sequential ]
119
- public void CanGetExtensionPointByPath (
120
- [ ValueSource ( nameof ( KnownExtensionPointPaths ) ) ] string path ,
121
- [ ValueSource ( nameof ( KnownExtensionPointTypes ) ) ] Type type )
134
+ [ Test ]
135
+ public void CanGetExtensionPointsByPath ( )
122
136
{
123
- var ep = _extensionManager . GetExtensionPoint ( path ) ;
124
- Assert . That ( ep , Is . Not . Null ) ;
125
- Assert . That ( ep . Path , Is . EqualTo ( path ) ) ;
126
- Assert . That ( ep . TypeName , Is . EqualTo ( type . FullName ) ) ;
137
+ for ( int i = 0 ; i < _expectedExtensionPointPaths . Length ; i ++ )
138
+ {
139
+ var path = _expectedExtensionPointPaths [ i ] ;
140
+ var type = _expectedExtensionPointTypes [ i ] ;
141
+ var ep = _extensionManager . GetExtensionPoint ( path ) ;
142
+ Assert . That ( ep , Is . Not . Null ) ;
143
+ Assert . That ( ep . Path , Is . EqualTo ( path ) ) ;
144
+ Assert . That ( ep . TypeName , Is . EqualTo ( type . FullName ) ) ;
145
+ }
127
146
}
128
147
129
- [ Test , Sequential ]
130
- public void CanGetExtensionPointByType (
131
- [ ValueSource ( nameof ( KnownExtensionPointPaths ) ) ] string path ,
132
- [ ValueSource ( nameof ( KnownExtensionPointTypes ) ) ] Type type )
148
+ [ Test ]
149
+ public void CanGetExtensionPointByType ( )
133
150
{
134
- var ep = _extensionManager . GetExtensionPoint ( type ) ;
135
- Assert . That ( ep , Is . Not . Null ) ;
136
- Assert . That ( ep . Path , Is . EqualTo ( path ) ) ;
137
- Assert . That ( ep . TypeName , Is . EqualTo ( type . FullName ) ) ;
151
+ for ( int i = 0 ; i < _expectedExtensionPointPaths . Length ; i ++ )
152
+ {
153
+ var path = _expectedExtensionPointPaths [ i ] ;
154
+ var type = _expectedExtensionPointTypes [ i ] ;
155
+ var ep = _extensionManager . GetExtensionPoint ( type ) ;
156
+ Assert . That ( ep , Is . Not . Null ) ;
157
+ Assert . That ( ep . Path , Is . EqualTo ( path ) ) ;
158
+ Assert . That ( ep . TypeName , Is . EqualTo ( type . FullName ) ) ;
159
+ }
138
160
}
139
161
140
- [ Test , Sequential ]
141
- public void ExtensionsAreAddedToExtensionPoint (
142
- [ ValueSource ( nameof ( KnownExtensionPointPaths ) ) ] string path ,
143
- [ ValueSource ( nameof ( KnownExtensionPointCounts ) ) ] int extensionCount )
162
+ [ Test ]
163
+ public void ExtensionsAreAddedToExtensionPoint ( )
144
164
{
145
- var ep = _extensionManager . GetExtensionPoint ( path ) ;
146
- Assume . That ( ep , Is . Not . Null ) ;
147
-
148
- Assert . That ( ep . Extensions . Count , Is . EqualTo ( extensionCount ) ) ;
165
+ for ( int i = 0 ; i < _expectedExtensionPointPaths . Length ; i ++ )
166
+ {
167
+ var path = _expectedExtensionPointPaths [ i ] ;
168
+ var extensionCount = _expectedExtensionCounts [ i ] ;
169
+ var ep = _extensionManager . GetExtensionPoint ( path ) ;
170
+ Assume . That ( ep , Is . Not . Null ) ;
171
+ Assert . That ( ep . Extensions . Count , Is . EqualTo ( extensionCount ) ) ;
172
+ }
149
173
}
150
174
151
175
[ Test ]
0 commit comments