From 242da074894d2ffcbb1a61f16ed881db9bc51ff0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 21 Feb 2019 07:04:52 +0100 Subject: [PATCH] =?utf8?q?Don=E2=80=99t=20hand=20in=20null=20to=20function?= =?utf8?q?=20not=20allowing=20it?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../sone/database/memory/MemoryPost.java | 11 ++++++++++- .../sone/database/memory/MemoryPostTest.kt | 19 +++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/test/kotlin/net/pterodactylus/sone/database/memory/MemoryPostTest.kt diff --git a/src/main/java/net/pterodactylus/sone/database/memory/MemoryPost.java b/src/main/java/net/pterodactylus/sone/database/memory/MemoryPost.java index e0f83c2..75eae49 100644 --- a/src/main/java/net/pterodactylus/sone/database/memory/MemoryPost.java +++ b/src/main/java/net/pterodactylus/sone/database/memory/MemoryPost.java @@ -21,10 +21,13 @@ 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; /** @@ -120,7 +123,13 @@ class MemoryPost implements Post { */ @Override public Optional getRecipient() { - return fromNullable(soneProvider.getSone(recipientId)); + return Optional.fromNullable(recipientId).transform(new Function() { + @Nullable + @Override + public Sone apply(String input) { + return soneProvider.getSone(input); + } + }); } /** diff --git a/src/test/kotlin/net/pterodactylus/sone/database/memory/MemoryPostTest.kt b/src/test/kotlin/net/pterodactylus/sone/database/memory/MemoryPostTest.kt new file mode 100644 index 0000000..611ad70 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/database/memory/MemoryPostTest.kt @@ -0,0 +1,19 @@ +package net.pterodactylus.sone.database.memory + +import com.google.common.base.Optional.* +import net.pterodactylus.sone.test.* +import org.hamcrest.MatcherAssert.* +import org.hamcrest.Matchers.* +import org.junit.* +import java.util.* + +class MemoryPostTest { + + @Test + fun `memory post returns empty optional for post without recipient`() { + val postDatabase = mock() + val memoryPost = MemoryPost(postDatabase, postDatabase, UUID.randomUUID().toString(), "soneId", null, 123, "text") + assertThat(memoryPost.recipient, equalTo(absent())) + } + +} -- 2.7.4