@@ -185,7 +185,8 @@ await That(result).HasSingle().Which.EndsWith(extension)
185
185
public async Task EnumerateDirectories_ShouldIncludeEmptyDirectoriesWithTrailingSlash ( )
186
186
{
187
187
string rootDirectory = "RootDir" ;
188
- string emptyDirectory = FileSystem . Path . Combine ( rootDirectory , "EmptyDir" ) + FileSystem . Path . DirectorySeparatorChar ;
188
+ string emptyDirectory = FileSystem . Path . Combine ( rootDirectory , "EmptyDir" ) +
189
+ FileSystem . Path . DirectorySeparatorChar ;
189
190
190
191
FileSystem . Directory . CreateDirectory ( emptyDirectory ) ;
191
192
@@ -225,11 +226,29 @@ await That(result)
225
226
. InAnyOrder ( ) ;
226
227
}
227
228
229
+ [ Theory ]
230
+ [ InlineData ( '/' ) ]
231
+ [ InlineData ( '\\ ' ) ]
232
+ public async Task EnumerateDirectories_TrailingDirectorySeparator_ShouldBeTrimmed ( char suffix )
233
+ {
234
+ Skip . IfNot ( Test . RunsOnWindows ||
235
+ suffix == FileSystem . Path . DirectorySeparatorChar ||
236
+ suffix == FileSystem . Path . AltDirectorySeparatorChar ) ;
237
+
238
+ string path = $ "foo{ suffix } ";
239
+
240
+ FileSystem . Directory . CreateDirectory ( path ) ;
241
+ IEnumerable < string > result = FileSystem . Directory . EnumerateDirectories ( "." ) ;
242
+
243
+ await That ( result ) . HasSingle ( )
244
+ . Which . DoesNotEndWith ( suffix ) ;
245
+ }
246
+
228
247
#if FEATURE_FILESYSTEM_ENUMERATION_OPTIONS
229
248
[ Theory ]
230
249
[ AutoData ]
231
250
public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderAttributesToSkip (
232
- string path )
251
+ string path )
233
252
{
234
253
EnumerationOptions enumerationOptions = new ( )
235
254
{
@@ -254,7 +273,7 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderAttr
254
273
[ InlineData ( true ) ]
255
274
[ InlineData ( false ) ]
256
275
public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderIgnoreInaccessible (
257
- bool ignoreInaccessible )
276
+ bool ignoreInaccessible )
258
277
{
259
278
Skip . IfNot ( Test . RunsOnWindows ) ;
260
279
@@ -299,8 +318,8 @@ await That(Act).Throws<UnauthorizedAccessException>()
299
318
[ InlineAutoData ( MatchCasing . CaseInsensitive ) ]
300
319
[ InlineAutoData ( MatchCasing . CaseSensitive ) ]
301
320
public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatchCasing (
302
- MatchCasing matchCasing ,
303
- string path )
321
+ MatchCasing matchCasing ,
322
+ string path )
304
323
{
305
324
EnumerationOptions enumerationOptions = new ( )
306
325
{
@@ -329,8 +348,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatc
329
348
[ InlineAutoData ( MatchType . Simple ) ]
330
349
[ InlineAutoData ( MatchType . Win32 ) ]
331
350
public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatchType (
332
- MatchType matchType ,
333
- string path )
351
+ MatchType matchType ,
352
+ string path )
334
353
{
335
354
EnumerationOptions enumerationOptions = new ( )
336
355
{
@@ -360,7 +379,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatc
360
379
[ InlineAutoData ( true , 2 ) ]
361
380
[ InlineAutoData ( true , 3 ) ]
362
381
[ InlineAutoData ( false , 2 ) ]
363
- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMaxRecursionDepthWhenRecurseSubdirectoriesIsSet (
382
+ public async Task
383
+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMaxRecursionDepthWhenRecurseSubdirectoriesIsSet (
364
384
bool recurseSubdirectories ,
365
385
int maxRecursionDepth ,
366
386
string path )
@@ -409,7 +429,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMaxR
409
429
[ Theory ]
410
430
[ InlineAutoData ( true ) ]
411
431
[ InlineAutoData ( false ) ]
412
- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRecurseSubdirectories (
432
+ public async Task
433
+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRecurseSubdirectories (
413
434
bool recurseSubdirectories ,
414
435
string path )
415
436
{
@@ -440,7 +461,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRecu
440
461
[ Theory ]
441
462
[ InlineAutoData ( true ) ]
442
463
[ InlineAutoData ( false ) ]
443
- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectories (
464
+ public async Task
465
+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectories (
444
466
bool returnSpecialDirectories ,
445
467
string path )
446
468
{
@@ -469,7 +491,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRetu
469
491
470
492
#if FEATURE_FILESYSTEM_ENUMERATION_OPTIONS
471
493
[ Fact ]
472
- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectoriesCorrectlyForPathRoots ( )
494
+ public async Task
495
+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectoriesCorrectlyForPathRoots ( )
473
496
{
474
497
string root = FileSystem . Path . GetPathRoot ( FileSystem . Directory . GetCurrentDirectory ( ) ) ! ;
475
498
EnumerationOptions enumerationOptions = new ( )
0 commit comments