File tree Expand file tree Collapse file tree
main/java/com/baeldung/extension
test/java/com/baeldung/extension Expand file tree Collapse file tree Original file line number Diff line number Diff line change 33import com .google .common .io .Files ;
44import org .apache .commons .io .FilenameUtils ;
55
6+ import java .util .Optional ;
7+
68public class Extension {
79 //Instead of file name we can also specify full path of a file eg. /baeldung/com/demo/abc.java
810 public String getExtensionByApacheCommonLib (String filename ) {
911 return FilenameUtils .getExtension (filename );
1012 }
1113
12- public String getExtensionByStringHandling (String filename ) {
13- String fileExtension = "" ;
14- if (filename .contains ("." ) && filename .lastIndexOf ("." ) != 0 ) {
15- fileExtension = filename .substring (filename .lastIndexOf ("." ) + 1 );
16- }
17- return fileExtension ;
14+ public Optional <String > getExtensionByStringHandling (String filename ) {
15+ return Optional .ofNullable (filename )
16+ .filter (f -> f .contains ("." ))
17+ .map (f -> f .substring (filename .lastIndexOf ("." ) + 1 ));
1818 }
1919
2020 public String getExtensionByGuava (String filename ) {
Original file line number Diff line number Diff line change 33import org .junit .Assert ;
44import org .junit .Test ;
55
6+ import java .util .Optional ;
7+
68public class ExtensionUnitTest {
79 private Extension extension = new Extension ();
810
@@ -16,8 +18,9 @@ public void getExtension_whenApacheCommonIO_thenExtensionIsTrue() {
1618 @ Test
1719 public void getExtension_whenStringHandle_thenExtensionIsTrue () {
1820 String expectedExtension = "java" ;
19- String actualExtension = extension .getExtensionByStringHandling ("Demo.java" );
20- Assert .assertEquals (expectedExtension , actualExtension );
21+ Optional <String > actualExtension = extension .getExtensionByStringHandling ("Demo.java" );
22+ Assert .assertTrue (actualExtension .isPresent ());
23+ actualExtension .ifPresent (ext -> Assert .assertEquals (expectedExtension ,ext ));
2124 }
2225
2326 @ Test
You can’t perform that action at this time.
0 commit comments