@@ -185,7 +185,8 @@ await That(result).HasSingle().Which.EndsWith(extension)
185185 public async Task EnumerateDirectories_ShouldIncludeEmptyDirectoriesWithTrailingSlash ( )
186186 {
187187 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 ;
189190
190191 FileSystem . Directory . CreateDirectory ( emptyDirectory ) ;
191192
@@ -225,11 +226,29 @@ await That(result)
225226 . InAnyOrder ( ) ;
226227 }
227228
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+
228247#if FEATURE_FILESYSTEM_ENUMERATION_OPTIONS
229248 [ Theory ]
230249 [ AutoData ]
231250 public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderAttributesToSkip (
232- string path )
251+ string path )
233252 {
234253 EnumerationOptions enumerationOptions = new ( )
235254 {
@@ -254,7 +273,7 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderAttr
254273 [ InlineData ( true ) ]
255274 [ InlineData ( false ) ]
256275 public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderIgnoreInaccessible (
257- bool ignoreInaccessible )
276+ bool ignoreInaccessible )
258277 {
259278 Skip . IfNot ( Test . RunsOnWindows ) ;
260279
@@ -299,8 +318,8 @@ await That(Act).Throws<UnauthorizedAccessException>()
299318 [ InlineAutoData ( MatchCasing . CaseInsensitive ) ]
300319 [ InlineAutoData ( MatchCasing . CaseSensitive ) ]
301320 public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatchCasing (
302- MatchCasing matchCasing ,
303- string path )
321+ MatchCasing matchCasing ,
322+ string path )
304323 {
305324 EnumerationOptions enumerationOptions = new ( )
306325 {
@@ -329,8 +348,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatc
329348 [ InlineAutoData ( MatchType . Simple ) ]
330349 [ InlineAutoData ( MatchType . Win32 ) ]
331350 public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatchType (
332- MatchType matchType ,
333- string path )
351+ MatchType matchType ,
352+ string path )
334353 {
335354 EnumerationOptions enumerationOptions = new ( )
336355 {
@@ -360,7 +379,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMatc
360379 [ InlineAutoData ( true , 2 ) ]
361380 [ InlineAutoData ( true , 3 ) ]
362381 [ InlineAutoData ( false , 2 ) ]
363- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMaxRecursionDepthWhenRecurseSubdirectoriesIsSet (
382+ public async Task
383+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMaxRecursionDepthWhenRecurseSubdirectoriesIsSet (
364384 bool recurseSubdirectories ,
365385 int maxRecursionDepth ,
366386 string path )
@@ -409,7 +429,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderMaxR
409429 [ Theory ]
410430 [ InlineAutoData ( true ) ]
411431 [ InlineAutoData ( false ) ]
412- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRecurseSubdirectories (
432+ public async Task
433+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRecurseSubdirectories (
413434 bool recurseSubdirectories ,
414435 string path )
415436 {
@@ -440,7 +461,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRecu
440461 [ Theory ]
441462 [ InlineAutoData ( true ) ]
442463 [ InlineAutoData ( false ) ]
443- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectories (
464+ public async Task
465+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectories (
444466 bool returnSpecialDirectories ,
445467 string path )
446468 {
@@ -469,7 +491,8 @@ public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderRetu
469491
470492#if FEATURE_FILESYSTEM_ENUMERATION_OPTIONS
471493 [ Fact ]
472- public async Task EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectoriesCorrectlyForPathRoots ( )
494+ public async Task
495+ EnumerateDirectories_WithEnumerationOptions_ShouldConsiderReturnSpecialDirectoriesCorrectlyForPathRoots ( )
473496 {
474497 string root = FileSystem . Path . GetPathRoot ( FileSystem . Directory . GetCurrentDirectory ( ) ) ! ;
475498 EnumerationOptions enumerationOptions = new ( )
0 commit comments