Don’t return null to function not allowing it
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 21 Feb 2019 06:18:38 +0000 (07:18 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 21 Feb 2019 06:18:38 +0000 (07:18 +0100)
src/main/java/net/pterodactylus/sone/database/memory/MemoryPost.java
src/test/kotlin/net/pterodactylus/sone/database/memory/MemoryPostTest.kt

index 75eae49..5c294c0 100644 (file)
@@ -21,13 +21,10 @@ import static com.google.common.base.Optional.fromNullable;
 
 import java.util.UUID;
 
-import javax.annotation.Nullable;
-
 import net.pterodactylus.sone.data.Post;
 import net.pterodactylus.sone.data.Sone;
 import net.pterodactylus.sone.database.SoneProvider;
 
-import com.google.common.base.Function;
 import com.google.common.base.Optional;
 
 /**
@@ -123,13 +120,7 @@ class MemoryPost implements Post {
         */
        @Override
        public Optional<Sone> getRecipient() {
-               return Optional.fromNullable(recipientId).transform(new Function<String, Sone>() {
-                       @Nullable
-                       @Override
-                       public Sone apply(String input) {
-                               return soneProvider.getSone(input);
-                       }
-               });
+               return recipientId == null ? Optional.<Sone>absent() : fromNullable(soneProvider.getSone(recipientId));
        }
 
        /**
index 611ad70..90344e1 100644 (file)
@@ -9,10 +9,17 @@ import java.util.*
 
 class MemoryPostTest {
 
+       private val memoryDatabase = mock<MemoryDatabase>()
+
        @Test
        fun `memory post returns empty optional for post without recipient`() {
-               val postDatabase = mock<MemoryDatabase>()
-               val memoryPost = MemoryPost(postDatabase, postDatabase, UUID.randomUUID().toString(), "soneId", null, 123, "text")
+               val memoryPost = MemoryPost(memoryDatabase, memoryDatabase, UUID.randomUUID().toString(), "soneId", null, 123, "text")
+               assertThat(memoryPost.recipient, equalTo(absent()))
+       }
+
+       @Test
+       fun `empty optional is returned if recipient is set but non-existent`() {
+               val memoryPost = MemoryPost(memoryDatabase, memoryDatabase, UUID.randomUUID().toString(), "soneId", "recipientId", 123, "text")
                assertThat(memoryPost.recipient, equalTo(absent()))
        }