2727public class LocalFSDirectoryListingTest {
2828
2929 private static final String DEFAULT_ENTRY_FILE_NAME = "file-entry-0.txt" ;
30- private static final String DEFAULT_ARCHIVE_NAME = "archive" ;
30+ private static final String DEFAULT_ARCHIVE_NAME = "archive" ;
3131 private static final String TEST_SCAN_DIRECTORY = "test-scan" ;
3232
3333 @ Rule
@@ -54,47 +54,79 @@ public void shouldExtractXZGipCompressedFilesPathWhileScanningGivenRecursiveScan
5454 zos .closeEntry ();
5555 }
5656
57- scanner .configure (new HashMap <>() {{
58- put (LocalFSDirectoryListingConfig .FS_RECURSIVE_SCAN_ENABLE_CONFIG , false );
59- put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
60- }});
57+ scanner .configure (new HashMap <>() {
58+ {
59+ put (LocalFSDirectoryListingConfig .FS_RECURSIVE_SCAN_ENABLE_CONFIG , false );
60+ put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
61+ }
62+ });
6163
6264 final Collection <FileObjectMeta > scanned = scanner .listObjects ();
6365 Assert .assertEquals (1 , scanned .size ());
64- String expected = String .join (File .separator , Arrays .asList (inputDirectory .getCanonicalPath (), DEFAULT_ARCHIVE_NAME , DEFAULT_ENTRY_FILE_NAME ));
66+ String expected = String .join (File .separator ,
67+ Arrays .asList (inputDirectory .getCanonicalPath (), DEFAULT_ARCHIVE_NAME , DEFAULT_ENTRY_FILE_NAME ));
6568 Assert .assertEquals (expected , getCanonicalPath (scanned .iterator ().next ()));
6669 }
6770
6871 @ Test
69- public void shouldExtractGzipCompressedFiles () throws IOException {
72+ public void shouldExtractGzipCompressedFilesAndKeepGzipFileAfterExtraction () throws IOException {
7073 File archiveFile = new File (inputDirectory , DEFAULT_ARCHIVE_NAME + ".gz" );
7174
7275 try (GZIPOutputStream os = new GZIPOutputStream (new FileOutputStream (archiveFile ))) {
7376 byte [] data = "dummy" .getBytes ();
7477 os .write (data , 0 , data .length );
7578 }
7679
77- scanner .configure (new HashMap <>() {{
78- put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
79- }});
80+ scanner .configure (new HashMap <>() {
81+ {
82+ put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
83+ }
84+ });
8085
8186 final Collection <FileObjectMeta > scanned = scanner .listObjects ();
8287 Assert .assertEquals (1 , scanned .size ());
8388 String expected = String .join (File .separator , Arrays .asList (inputDirectory .getCanonicalPath (),
8489 DEFAULT_ARCHIVE_NAME , DEFAULT_ARCHIVE_NAME ));
8590 Assert .assertEquals (expected , getCanonicalPath (scanned .iterator ().next ()));
91+ Assert .assertTrue (archiveFile .exists ());
8692 }
87-
93+
94+ @ Test
95+ public void shouldExtractGzipCompressedFilesAndDeleteGzipFileAfterExtraction () throws IOException {
96+ File archiveFile = new File (inputDirectory , DEFAULT_ARCHIVE_NAME + ".gz" );
97+
98+ try (GZIPOutputStream os = new GZIPOutputStream (new FileOutputStream (archiveFile ))) {
99+ byte [] data = "dummy" .getBytes ();
100+ os .write (data , 0 , data .length );
101+ }
102+
103+ scanner .configure (new HashMap <>() {
104+ {
105+ put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
106+ put (LocalFSDirectoryListingConfig .FS_DELETE_COMPRESS_FILES_ENABLED_CONFIG , true );
107+ }
108+ });
109+
110+ final Collection <FileObjectMeta > scanned = scanner .listObjects ();
111+ Assert .assertEquals (1 , scanned .size ());
112+ String expected = String .join (File .separator , Arrays .asList (inputDirectory .getCanonicalPath (),
113+ DEFAULT_ARCHIVE_NAME , DEFAULT_ARCHIVE_NAME ));
114+ Assert .assertEquals (expected , getCanonicalPath (scanned .iterator ().next ()));
115+ Assert .assertTrue (!archiveFile .exists ());
116+ }
117+
88118 @ Test
89119 public void shouldListFilesGivenRecursiveScanEnable () throws IOException {
90- folder .newFolder (TEST_SCAN_DIRECTORY , "sub-directory" );
120+ folder .newFolder (TEST_SCAN_DIRECTORY , "sub-directory" );
91121 final File file1 = folder .newFile (TEST_SCAN_DIRECTORY + "/test-file1.txt" );
92122 final File file2 = folder .newFile (TEST_SCAN_DIRECTORY + "/sub-directory/test-file2.txt" );
93123
94- scanner .configure (new HashMap <String , Object >(){{
95- put (LocalFSDirectoryListingConfig .FS_RECURSIVE_SCAN_ENABLE_CONFIG , true );
96- put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
97- }});
124+ scanner .configure (new HashMap <String , Object >() {
125+ {
126+ put (LocalFSDirectoryListingConfig .FS_RECURSIVE_SCAN_ENABLE_CONFIG , true );
127+ put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
128+ }
129+ });
98130
99131 final Collection <String > scanned = scanner
100132 .listObjects ()
@@ -117,14 +149,16 @@ private String getCanonicalPath(final FileObjectMeta s) {
117149
118150 @ Test
119151 public void shouldListFilesGivenRecursiveScanDisable () throws IOException {
120- folder .newFolder (TEST_SCAN_DIRECTORY , "sub-directory" );
152+ folder .newFolder (TEST_SCAN_DIRECTORY , "sub-directory" );
121153 final File file1 = folder .newFile (TEST_SCAN_DIRECTORY + "/test-file1.txt" );
122154 folder .newFile (TEST_SCAN_DIRECTORY + "/sub-directory/test-file2.txt" ); // will not be scanned
123155
124- scanner .configure (new HashMap <String , Object >(){{
125- put (LocalFSDirectoryListingConfig .FS_RECURSIVE_SCAN_ENABLE_CONFIG , false );
126- put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
127- }});
156+ scanner .configure (new HashMap <String , Object >() {
157+ {
158+ put (LocalFSDirectoryListingConfig .FS_RECURSIVE_SCAN_ENABLE_CONFIG , false );
159+ put (LocalFSDirectoryListingConfig .FS_LISTING_DIRECTORY_PATH , inputDirectory .getAbsolutePath ());
160+ }
161+ });
128162
129163 final Collection <String > scanned = scanner
130164 .listObjects ()
0 commit comments