X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNewSoneHandlerTest.kt;h=951de28034e85504a2e1f564004eaf8d17f12be3;hp=0f7b182c09606f40814459154ddb35dcb16d458b;hb=b6a8b559407daefde5ce01967190cccf97e2bb00;hpb=188857148a7b035bfc6033b1fd40d774bd1fac65 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandlerTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandlerTest.kt index 0f7b182..951de28 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandlerTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/NewSoneHandlerTest.kt @@ -21,8 +21,9 @@ import com.google.common.eventbus.* import net.pterodactylus.sone.core.event.* import net.pterodactylus.sone.data.impl.* import net.pterodactylus.sone.notify.* +import net.pterodactylus.sone.test.* +import net.pterodactylus.sone.utils.* import net.pterodactylus.util.notify.* -import net.pterodactylus.util.template.* import org.hamcrest.MatcherAssert.* import org.hamcrest.Matchers.* import java.io.* @@ -33,7 +34,7 @@ class NewSoneHandlerTest { @Suppress("UnstableApiUsage") private val eventBus = EventBus() private val notificationManager = NotificationManager() - private val handler = NewSoneHandler(notificationManager, Template()) + private val handler = NewSoneHandler(notificationManager, "<% sones>".asTemplate()) init { eventBus.register(handler) @@ -54,6 +55,20 @@ class NewSoneHandlerTest { } @Test + fun `handler sets correct key for sones`() { + eventBus.post(NewSoneFoundEvent(sone)) + val notification = notificationManager.notifications.single() as ListNotification<*> + assertThat(notification.render(), equalTo(listOf(sone).toString())) + } + + @Test + fun `handler creates non-dismissable notification`() { + eventBus.post(NewSoneFoundEvent(sone)) + val notification = notificationManager.notifications.single() as ListNotification<*> + assertThat(notification, matches("is not dismissable") { !it.isDismissable }) + } + + @Test fun `handler does not add notification on new sone event if first-start notification is present`() { notificationManager.addNotification(object : AbstractNotification("first-start-notification") { override fun render(writer: Writer) = Unit @@ -63,6 +78,22 @@ class NewSoneHandlerTest { assertThat(notification.id, equalTo("first-start-notification")) } + @Test + fun `handler removes sone from notification if sone is marked as known`() { + eventBus.post(NewSoneFoundEvent(sone)) + val notification = notificationManager.notifications.single() as ListNotification<*> + eventBus.post(MarkSoneKnownEvent(sone)) + assertThat(notification.elements, emptyIterable()) + } + + @Test + fun `handler removes sone from notification if sone is removed`() { + eventBus.post(NewSoneFoundEvent(sone)) + val notification = notificationManager.notifications.single() as ListNotification<*> + eventBus.post(SoneRemovedEvent(sone)) + assertThat(notification.elements, emptyIterable()) + } + } private val sone = IdOnlySone("sone-id")