From b9320b57631d90d344edeb2a86c61db00ac50911 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Mon, 9 Dec 2019 20:47:16 +0100 Subject: [PATCH] =?utf8?q?=F0=9F=90=9B=20Fix=20handler=20for=20remote=20po?= =?utf8?q?sts?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../sone/web/notification/NewRemotePostHandler.kt | 8 +++-- .../web/notification/NewRemotePostHandlerTest.kt | 38 ++++++++++++++++++---- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt index acf9980..1127fea 100644 --- a/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt +++ b/src/main/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandler.kt @@ -31,9 +31,11 @@ class NewRemotePostHandler(private val notificationManager: NotificationManager, @Subscribe fun newPostFound(newPostFoundEvent: NewPostFoundEvent) { - notification.add(newPostFoundEvent.post) - if (!notificationManager.hasFirstStartNotification()) { - notificationManager.addNotification(notification) + if (!newPostFoundEvent.post.sone.isLocal) { + notification.add(newPostFoundEvent.post) + if (!notificationManager.hasFirstStartNotification()) { + notificationManager.addNotification(notification) + } } } diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandlerTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandlerTest.kt index a86bbf1..5e4e5fc 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandlerTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandlerTest.kt @@ -20,6 +20,8 @@ package net.pterodactylus.sone.web.notification import com.google.common.eventbus.* import net.pterodactylus.sone.core.event.* import net.pterodactylus.sone.data.* +import net.pterodactylus.sone.data.Post.* +import net.pterodactylus.sone.data.impl.* import net.pterodactylus.sone.notify.* import net.pterodactylus.util.notify.* import net.pterodactylus.util.template.* @@ -44,26 +46,48 @@ class NewRemotePostHandlerTest { } @Test - fun `handler adds post to new-post notification`() { - eventBus.post(NewPostFoundEvent(post)) - assertThat(notification.elements, contains(post)) + fun `handler adds remote post to new-post notification`() { + eventBus.post(NewPostFoundEvent(remotePost)) + assertThat(notification.elements, contains(remotePost)) } @Test - fun `handler adds notification to notification manager`() { - eventBus.post(NewPostFoundEvent(post)) + fun `handler does not add local post to new-post notification`() { + eventBus.post(NewPostFoundEvent(localPost)) + assertThat(notification.elements, emptyIterable()) + } + + @Test + fun `handler adds notification for remote post to notification manager`() { + eventBus.post(NewPostFoundEvent(remotePost)) assertThat(notificationManager.notifications, contains(notification)) } @Test + fun `handler does not add notification for local post to notification manager`() { + eventBus.post(NewPostFoundEvent(localPost)) + assertThat(notificationManager.notifications, emptyIterable()) + } + + @Test fun `handler does not add notification to notification manager during first start`() { notificationManager.addNotification(object : AbstractNotification("first-start-notification") { override fun render(writer: Writer?) = Unit }) - eventBus.post(NewPostFoundEvent(post)) + eventBus.post(NewPostFoundEvent(remotePost)) assertThat(notificationManager.notifications, not(hasItem(notification))) } } -private val post: Post = Post.EmptyPost("post") +private val remoteSone: Sone = IdOnlySone("remote-sone") +private val remotePost: Post = object : EmptyPost("remote-post") { + override fun getSone() = remoteSone +} + +private val localSone: Sone = object : IdOnlySone("local-sone") { + override fun isLocal() = true +} +private val localPost: Post = object : EmptyPost("local-post") { + override fun getSone() = localSone +} -- 2.7.4