X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNewRemotePostHandlerTest.kt;h=0f24affb352c342a152339621b740cd3d4c46128;hb=b31d36fc6fa19e9d47677b7450cd96881945b2ef;hp=a0d7bc65868202f3f20308ccf8496b66c800660c;hpb=c0adc24e57980b042f8232a01ad3bed40b4b0942;p=Sone.git 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 a0d7bc6..0f24aff 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandlerTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/NewRemotePostHandlerTest.kt @@ -1,5 +1,5 @@ /** - * Sone - NewRemotePostHandlerTest.kt - Copyright © 2019 David ‘Bombe’ Roden + * Sone - NewRemotePostHandlerTest.kt - Copyright © 2019–2020 David ‘Bombe’ Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,7 +17,6 @@ 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.* @@ -35,44 +34,52 @@ import kotlin.test.* @Suppress("UnstableApiUsage") class NewRemotePostHandlerTest { - private val eventBus = EventBus() - private val notificationManager = NotificationManager() private val notification = ListNotification("", "", Template()) - private val handler = NewRemotePostHandler(notificationManager, notification) - - init { - eventBus.register(handler) - } + private val remotePostHandlerTest = NotificationHandlerTester { NewRemotePostHandler(it, notification) } @Test fun `handler adds remote post to new-post notification`() { - eventBus.post(NewPostFoundEvent(remotePost)) + remotePostHandlerTest.sendEvent(NewPostFoundEvent(remotePost)) assertThat(notification.elements, contains(remotePost)) } @Test fun `handler does not add local post to new-post notification`() { - eventBus.post(NewPostFoundEvent(localPost)) + remotePostHandlerTest.sendEvent(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)) + remotePostHandlerTest.sendEvent(NewPostFoundEvent(remotePost)) + assertThat(remotePostHandlerTest.notifications, contains(notification)) } @Test fun `handler does not add notification for local post to notification manager`() { - eventBus.post(NewPostFoundEvent(localPost)) - assertThat(notificationManager.notifications, emptyIterable()) + remotePostHandlerTest.sendEvent(NewPostFoundEvent(localPost)) + assertThat(remotePostHandlerTest.notifications, emptyIterable()) } @Test fun `handler does not add notification to notification manager during first start`() { - notificationManager.firstStart() - eventBus.post(NewPostFoundEvent(remotePost)) - assertThat(notificationManager.notifications, not(hasItem(notification))) + remotePostHandlerTest.firstStart() + remotePostHandlerTest.sendEvent(NewPostFoundEvent(remotePost)) + assertThat(remotePostHandlerTest.notifications, not(hasItem(notification))) + } + + @Test + fun `handler removes post from notification if post is removed`() { + notification.add(remotePost) + remotePostHandlerTest.sendEvent(PostRemovedEvent(remotePost)) + assertThat(notification.elements, not(hasItem(remotePost))) + } + + @Test + fun `handler removes post from notification if post is marked as known`() { + notification.add(remotePost) + remotePostHandlerTest.sendEvent(MarkPostKnownEvent(remotePost)) + assertThat(notification.elements, not(hasItem(remotePost))) } }