@@ -318,7 +318,7 @@ public void TestGetDirectoriesPrefixed()
318
318
string [ ] expected = { "1010" , "1011" , "1012" } ;
319
319
Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
320
320
}
321
-
321
+
322
322
/// <summary>
323
323
/// Asserts that the file system correctly returns a sequence of files from the root
324
324
/// container in the correct format.
@@ -455,6 +455,24 @@ public void TestDeleteDirectory()
455
455
Assert . IsFalse ( provider . FileExists ( "1010/media.jpg" ) ) ;
456
456
}
457
457
458
+ [ Test ]
459
+ public void TestValidDirectory ( )
460
+ {
461
+ AzureBlobFileSystem provider = this . CreateAzureBlobFileSystem ( ) ;
462
+ provider . AddFile ( "testvalid/test.txt" , Stream . Null ) ;
463
+ Assert . IsTrue ( provider . DirectoryExists ( "testvalid" ) ) ;
464
+
465
+ // Tidy up after test
466
+ provider . DeleteDirectory ( "testvalid" ) ;
467
+ }
468
+
469
+ [ Test ]
470
+ public void TestInvalidDirectory ( )
471
+ {
472
+ AzureBlobFileSystem provider = this . CreateAzureBlobFileSystem ( ) ;
473
+ Assert . IsFalse ( provider . DirectoryExists ( "testinvalid/" ) ) ;
474
+ }
475
+
458
476
/// <summary>
459
477
/// Asserts that the file system correctly deletes a directory when the input has been prefixed.
460
478
/// </summary>
@@ -498,5 +516,60 @@ public void TestDeleteDirectoryRelative()
498
516
Assert . IsFalse ( provider . DirectoryExists ( "media/1010/" ) ) ;
499
517
Assert . IsFalse ( provider . FileExists ( "media/1010/media.jpg" ) ) ;
500
518
}
519
+
520
+ /// <summary>
521
+ /// Asserts that the file system correctly returns a sequence of sub-directories in the
522
+ /// correct format.
523
+ /// </summary>
524
+ [ Test ]
525
+ public void TestGetSubDirectories ( )
526
+ {
527
+ // Arrange
528
+ AzureBlobFileSystem provider = this . CreateAzureBlobFileSystem ( ) ;
529
+ provider . AddFile ( "forms/form_123/kitty.jpg" , Stream . Null ) ;
530
+ provider . AddFile ( "forms/form_123/dog.jpg" , Stream . Null ) ;
531
+ provider . AddFile ( "forms/form_456/panda.jpg" , Stream . Null ) ;
532
+
533
+ // Act
534
+ IEnumerable < string > actual = provider . GetDirectories ( "forms" ) ;
535
+
536
+ // Assert
537
+ string [ ] expected = { "forms/form_123" , "forms/form_456" } ;
538
+ Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
539
+
540
+ // Tidy up after test
541
+ provider . DeleteDirectory ( "forms" ) ;
542
+ }
543
+
544
+ /// <summary>
545
+ /// Asserts that the file system correctly returns a sequence of sub-directories in the
546
+ /// correct format.
547
+ /// </summary>
548
+ [ Test ]
549
+ public void TestGetSubDirectoriesAndFiles ( )
550
+ {
551
+ // Arrange
552
+ AzureBlobFileSystem provider = this . CreateAzureBlobFileSystem ( ) ;
553
+ provider . AddFile ( "forms/form_123/kitty.jpg" , Stream . Null ) ;
554
+ provider . AddFile ( "forms/form_123/dog.jpg" , Stream . Null ) ;
555
+ provider . AddFile ( "forms/form_456/panda.jpg" , Stream . Null ) ;
556
+
557
+ // Act
558
+ var subfolders = provider . GetDirectories ( "forms" ) ;
559
+ var actual = new List < string > ( ) ;
560
+
561
+ foreach ( var folder in subfolders )
562
+ {
563
+ // Get files in subfolder and add to a single collection
564
+ actual . AddRange ( provider . GetFiles ( folder ) ) ;
565
+ }
566
+
567
+ // Assert
568
+ string [ ] expected = { "forms/form_123/dog.jpg" , "forms/form_123/kitty.jpg" , "forms/form_456/panda.jpg" } ;
569
+ Assert . IsTrue ( expected . SequenceEqual ( actual ) ) ;
570
+
571
+ // Tidy up after test
572
+ provider . DeleteDirectory ( "forms" ) ;
573
+ }
501
574
}
502
575
}
0 commit comments