X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNotificationHandlerModuleTest.kt;h=a4ed7afcc207ac632731f6351aeca507fc68750d;hp=2606040825bef08e368a62d5688b3f544bb69b83;hb=7a4ce0402bb7146ad791fbc52c0cf9b4d6871c91;hpb=62ef0f7790f226019d56f93e12f64cef1e897f72 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt index 2606040..a4ed7af 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt @@ -34,7 +34,6 @@ import net.pterodactylus.sone.text.* import net.pterodactylus.sone.utils.* import net.pterodactylus.util.notify.* import org.hamcrest.MatcherAssert.* -import org.hamcrest.Matchers import org.hamcrest.Matchers.* import org.mockito.* import org.mockito.Mockito.* @@ -84,6 +83,20 @@ class NotificationHandlerModuleTest { } @Test + fun `mark-post-reply-known-during-first-start handler is created as singleton`() { + injector.verifySingletonInstance() + } + + @Test + fun `mark-post-reply-known-during-first-start handler is created with correct action`() { + notificationManager.firstStart() + val handler = injector.getInstance() + val postReply = mock() + handler.newPostReply(NewPostReplyFoundEvent(postReply)) + verify(core).markReplyKnown(postReply) + } + + @Test fun `sone-locked-on-startup handler is created as singleton`() { injector.verifySingletonInstance() } @@ -463,4 +476,32 @@ class NotificationHandlerModuleTest { assertThat(injector.getInstance(), notNullValue()) } + @Test + fun `sone-mentioned notification is created as singleton`() { + injector.verifySingletonInstance>(named("soneMentioned")) + } + + @Test + fun `sone-mentioned notification has correct ID`() { + assertThat(injector.getInstance>(named("soneMentioned")).id, equalTo("mention-notification")) + } + + @Test + fun `sone-mentioned notification is not dismissable`() { + assertThat(injector.getInstance>(named("soneMentioned")).isDismissable, equalTo(false)) + } + + @Test + fun `sone-mentioned notification loads correct template`() { + loaders.templates += "/templates/notify/mentionNotification.html" to "<% posts>".asTemplate() + val notification = injector.getInstance>(named("soneMentioned")) + val posts = listOf(EmptyPost("1"), EmptyPost("2")).onEach(notification::add) + assertThat(notification.render(), equalTo(posts.toString())) + } + + @Test + fun `sone-mentioned handler is created as singleton`() { + injector.verifySingletonInstance() + } + }