Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 4c06b8e

Browse files
committed
remove file extensions
1 parent 641f775 commit 4c06b8e

File tree

2 files changed

+86
-0
lines changed

2 files changed

+86
-0
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.baeldung.filenamewithoutextension;
2+
3+
public class MyFilenameUtil {
4+
private MyFilenameUtil() {}
5+
6+
public static String removeFileExtension(String filename, boolean removeAllExtensions) {
7+
if (filename == null || filename.isEmpty()) {
8+
return filename;
9+
}
10+
11+
String extPattern = "(?<!^)[.]" + (removeAllExtensions ? ".*" : "[^.]*$");
12+
return filename.replaceAll(extPattern, "");
13+
}
14+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
package com.baeldung.filenamewithoutextension;
2+
3+
import com.google.common.io.Files;
4+
import org.apache.commons.io.FilenameUtils;
5+
import org.junit.Test;
6+
7+
import static org.junit.Assert.assertEquals;
8+
import static org.junit.Assert.assertNotEquals;
9+
10+
public class FileNameDelExtensionUnitTest {
11+
12+
@Test
13+
public void givenDotFileWithoutExt_whenCallGuavaMethod_thenCannotGetDesiredResult() {
14+
//negative assertion
15+
assertNotEquals(".baeldung", Files.getNameWithoutExtension(".baeldung"));
16+
}
17+
18+
@Test
19+
public void givenFileWithoutMultipleExt_whenCallGuavaMethod_thenCannotRemoveAllExtensions() {
20+
//negative assertion
21+
assertNotEquals("baeldung", Files.getNameWithoutExtension("baeldung.tar.gz"));
22+
}
23+
24+
@Test
25+
public void givenDotFileWithoutExt_whenCallApacheCommonsMethod_thenCannotGetDesiredResult() {
26+
//negative assertion
27+
assertNotEquals(".baeldung", FilenameUtils.removeExtension(".baeldung"));
28+
}
29+
30+
@Test
31+
public void givenFileWithoutMultipleExt_whenCallApacheCommonsMethod_thenCannotRemoveAllExtensions() {
32+
//negative assertion
33+
assertNotEquals("baeldung", FilenameUtils.removeExtension("baeldung.tar.gz"));
34+
}
35+
36+
@Test
37+
public void givenFilenameNoExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
38+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung", true));
39+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung", false));
40+
}
41+
42+
@Test
43+
public void givenSingleExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
44+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung.txt", true));
45+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung.txt", false));
46+
}
47+
48+
49+
@Test
50+
public void givenDotFile_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
51+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung", true));
52+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung", false));
53+
}
54+
55+
@Test
56+
public void givenDotFileWithExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
57+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung.conf", true));
58+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung.conf", false));
59+
}
60+
61+
@Test
62+
public void givenDoubleExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
63+
assertEquals("baeldung", MyFilenameUtil.removeFileExtension("baeldung.tar.gz", true));
64+
assertEquals("baeldung.tar", MyFilenameUtil.removeFileExtension("baeldung.tar.gz", false));
65+
}
66+
67+
@Test
68+
public void givenDotFileWithDoubleExt_whenCallFilenameUtilMethod_thenGetExpectedFilename() {
69+
assertEquals(".baeldung", MyFilenameUtil.removeFileExtension(".baeldung.conf.bak", true));
70+
assertEquals(".baeldung.conf", MyFilenameUtil.removeFileExtension(".baeldung.conf.bak", false));
71+
}
72+
}

0 commit comments

Comments
 (0)