From c45b06680de0e46fc30c181abed040955d172f2e Mon Sep 17 00:00:00 2001 From: RajatGarg Date: Mon, 11 Jun 2018 23:34:10 +0530 Subject: [PATCH 1/2] change method to return Optionals --- .../main/java/com/baeldung/extension/Extension.java | 12 ++++++------ .../com/baeldung/extension/ExtensionUnitTest.java | 6 ++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core-java/src/main/java/com/baeldung/extension/Extension.java b/core-java/src/main/java/com/baeldung/extension/Extension.java index 4045af8b30e7..e30084f1cb0a 100644 --- a/core-java/src/main/java/com/baeldung/extension/Extension.java +++ b/core-java/src/main/java/com/baeldung/extension/Extension.java @@ -3,18 +3,18 @@ import com.google.common.io.Files; import org.apache.commons.io.FilenameUtils; +import java.util.Optional; + public class Extension { //Instead of file name we can also specify full path of a file eg. /baeldung/com/demo/abc.java public String getExtensionByApacheCommonLib(String filename) { return FilenameUtils.getExtension(filename); } - public String getExtensionByStringHandling(String filename) { - String fileExtension = ""; - if (filename.contains(".") && filename.lastIndexOf(".") != 0) { - fileExtension = filename.substring(filename.lastIndexOf(".") + 1); - } - return fileExtension; + public Optional getExtensionByStringHandling(String filename) { + return Optional.ofNullable(filename) + .filter(f -> f.contains(".")) + .map(f -> f.substring(filename.lastIndexOf(".") + 1)); } public String getExtensionByGuava(String filename) { diff --git a/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java b/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java index 8c6e261c9149..d4adcf997e2d 100644 --- a/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java +++ b/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java @@ -3,6 +3,8 @@ import org.junit.Assert; import org.junit.Test; +import java.util.Optional; + public class ExtensionUnitTest { private Extension extension = new Extension(); @@ -16,8 +18,8 @@ public void getExtension_whenApacheCommonIO_thenExtensionIsTrue() { @Test public void getExtension_whenStringHandle_thenExtensionIsTrue() { String expectedExtension = "java"; - String actualExtension = extension.getExtensionByStringHandling("Demo.java"); - Assert.assertEquals(expectedExtension, actualExtension); + Optional actualExtension = extension.getExtensionByStringHandling("Demo.java"); + actualExtension.ifPresent(ext -> Assert.assertEquals(expectedExtension,ext)); } @Test From e5dbbc4c578e7a5b5eec8633adb17e4154bcfc83 Mon Sep 17 00:00:00 2001 From: RajatGarg Date: Sat, 16 Jun 2018 13:11:27 +0530 Subject: [PATCH 2/2] add check for empty Optional --- .../src/test/java/com/baeldung/extension/ExtensionUnitTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java b/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java index d4adcf997e2d..14e05d6b9557 100644 --- a/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java +++ b/core-java/src/test/java/com/baeldung/extension/ExtensionUnitTest.java @@ -19,6 +19,7 @@ public void getExtension_whenApacheCommonIO_thenExtensionIsTrue() { public void getExtension_whenStringHandle_thenExtensionIsTrue() { String expectedExtension = "java"; Optional actualExtension = extension.getExtensionByStringHandling("Demo.java"); + Assert.assertTrue(actualExtension.isPresent()); actualExtension.ifPresent(ext -> Assert.assertEquals(expectedExtension,ext)); }