11using System . IO ;
22using System . Linq ;
3+ using System . Threading . Tasks ;
34using DiscUtils . Iso9660 ;
45using LibraryTests . Utilities ;
56using Xunit ;
@@ -11,17 +12,40 @@ public class SampleDataTests
1112 [ Fact ]
1213 public void AppleTestZip ( )
1314 {
14- using var iso = Helpers . Helpers . LoadTestDataFileFromGZipFile ( " Iso9660" , "apple-test.iso.gz" ) ;
15+ using var iso = Helpers . Helpers . LoadTestDataFileFromGZipFile ( nameof ( Iso9660 ) , "apple-test.iso.gz" ) ;
1516 using var cr = new CDReader ( iso , false ) ;
1617
1718 var dir = cr . GetDirectoryInfo ( "sub-directory" ) ;
1819 Assert . NotNull ( dir ) ;
1920 Assert . Equal ( "sub-directory" , dir . Name ) ;
2021
21- var file = dir . GetFiles ( "apple-test.txt" ) ;
22- Assert . Single ( file ) ;
23- Assert . Equal ( 21 , file . First ( ) . Length ) ;
24- Assert . Equal ( "apple-test.txt" , file . First ( ) . Name ) ;
25- Assert . Equal ( dir , file . First ( ) . Directory ) ;
22+ var files = dir . GetFiles ( "apple-test.txt" ) . ToList ( ) ;
23+ Assert . Single ( files ) ;
24+ Assert . Equal ( 21 , files . First ( ) . Length ) ;
25+ Assert . Equal ( "apple-test.txt" , files . First ( ) . Name ) ;
26+ Assert . Equal ( dir , files . First ( ) . Directory ) ;
27+ }
28+
29+ [ Fact ]
30+ public void MultiExtentFiles ( )
31+ {
32+ using var iso = Helpers . Helpers . LoadTestDataFileFromGZipFile ( nameof ( Iso9660 ) , "multiextent.iso_header.gz" ) ;
33+ using var cr = new CDReader ( iso , joliet : true , true ) ;
34+
35+ var pathToMultiextentFiles = @"PS3_GAME\USRDIR\Resource\Common" ;
36+ var fsEntries = cr . GetFileSystemEntries ( pathToMultiextentFiles ) . ToList ( ) ;
37+ Assert . Equal ( 11 , fsEntries . Count ) ;
38+
39+ var dir = cr . GetDirectoryInfo ( pathToMultiextentFiles ) ;
40+ var files = dir . GetFiles ( ) . ToList ( ) ;
41+ Assert . Equal ( 10 , files . Count ) ;
42+
43+ var misc0 = files . First ( f => f . Name is "Misc0.FPK" ) ;
44+ var misc1 = files . First ( f => f . Name is "Misc1.FPK" ) ;
45+ Assert . Equal ( 1464404972 , misc0 . Length ) ;
46+ Assert . Equal ( 1585521232 , misc1 . Length ) ;
47+
48+ var meClusters = cr . PathToClusters ( misc0 . FullName ) . ToList ( ) ;
49+ Assert . Equal ( 2 , meClusters . Count ) ;
2650 }
2751}
0 commit comments