11using System ;
22using System . IO ;
33using System . Linq ;
4- using System . Reflection ;
54using SharpCompress . Archives ;
65using SharpCompress . Archives . SevenZip ;
76using SharpCompress . Common ;
@@ -288,19 +287,8 @@ public void SevenZipArchive_Solid_VerifyStreamReuse()
288287
289288 using var reader = archive . ExtractAllEntries ( ) ;
290289
291- // Use reflection to access the private fields
292- var readerType = reader . GetType ( ) ;
293- var folderStreamField = readerType . GetField (
294- "_currentFolderStream" ,
295- BindingFlags . NonPublic | BindingFlags . Instance
296- ) ;
297- var currentFolderField = readerType . GetField (
298- "_currentFolder" ,
299- BindingFlags . NonPublic | BindingFlags . Instance
300- ) ;
301-
302- Assert . NotNull ( folderStreamField ) ;
303- Assert . NotNull ( currentFolderField ) ;
290+ var sevenZipReader = Assert . IsType < SevenZipArchive . SevenZipReader > ( reader ) ;
291+ sevenZipReader . DiagnosticsEnabled = true ;
304292
305293 Stream ? currentFolderStreamInstance = null ;
306294 object ? currentFolder = null ;
@@ -322,9 +310,8 @@ public void SevenZipArchive_Solid_VerifyStreamReuse()
322310
323311 entryCount ++ ;
324312
325- // Get the current folder and folder stream via reflection
326- var folderStream = folderStreamField . GetValue ( reader ) as Stream ;
327- var folder = currentFolderField . GetValue ( reader ) ;
313+ var folderStream = sevenZipReader . DiagnosticsCurrentFolderStream ;
314+ var folder = sevenZipReader . DiagnosticsCurrentFolder ;
328315
329316 Assert . NotNull ( folderStream ) ; // Folder stream should exist
330317
@@ -356,9 +343,6 @@ public void SevenZipArchive_Solid_VerifyStreamReuse()
356343 Assert . True ( entryCount > 1 , "Test should have multiple entries to verify stream reuse" ) ;
357344
358345 // The critical check: within a single folder, the stream should NEVER be recreated
359- Assert . Equal (
360- 0 ,
361- streamRecreationsWithinFolder
362- ) ; // Folder stream should remain the same for all entries in the same folder
346+ Assert . Equal ( 0 , streamRecreationsWithinFolder ) ; // Folder stream should remain the same for all entries in the same folder
363347 }
364348}
0 commit comments