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=27f396f25bcea22803eb0657aae505d3a7ce97d8;hp=00b0a19007dde63b973a6414d90c73f8868a8ce5;hb=79ef6e4644845290d9feb45a06f8588864dd0a83;hpb=58386d1ecdcbafd43c29692d4c165054eea9e0ba 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 00b0a19..27f396f 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt @@ -83,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() } @@ -168,6 +182,35 @@ class NotificationHandlerModuleTest { } @Test + fun `remote-post handler is created as singleton`() { + injector.verifySingletonInstance() + } + + @Test + fun `new-remote-post-reply notification is created as singleton`() { + injector.verifySingletonInstance>(named("newRemotePostReply")) + } + + @Test + fun `new-remote-post-reply notification has correct ID`() { + assertThat(injector.getInstance>(named("newRemotePostReply")).id, equalTo("new-reply-notification")) + } + + @Test + fun `new-remote-post-reply notification is not dismissable`() { + assertThat(injector.getInstance>(named("newRemotePostReply")).isDismissable, equalTo(false)) + } + + @Test + fun `new-remote-post-reply notification has correct key and template`() { + loaders.templates += "/templates/notify/newReplyNotification.html" to "<% replies>".asTemplate() + val notification = injector.getInstance>(named("newRemotePostReply")) + val postReplies = listOf(emptyPostReply(), emptyPostReply()) + postReplies.forEach(notification::add) + assertThat(notification.render(), equalTo(postReplies.toString())) + } + + @Test fun `sone-locked notification is created as singleton`() { injector.verifySingletonInstance>(named("soneLocked")) } @@ -226,6 +269,35 @@ class NotificationHandlerModuleTest { } @Test + fun `local-reply notification is not dismissable`() { + assertThat(injector.getInstance>(named("localReply")).isDismissable, equalTo(false)) + } + + @Test + fun `local-reply notification has correct ID`() { + assertThat(injector.getInstance>(named("localReply")).id, equalTo("local-reply-notification")) + } + + @Test + fun `local-reply notification has correct key and template`() { + loaders.templates += "/templates/notify/newReplyNotification.html" to "<% replies>".asTemplate() + val notification = injector.getInstance>(named("localReply")) + val replies = listOf(emptyPostReply("reply1"), emptyPostReply("reply2")) + replies.forEach(notification::add) + assertThat(notification.render(), equalTo(replies.toString())) + } + + @Test + fun `local-reply notification is created as singleton`() { + injector.verifySingletonInstance>(named("localReply")) + } + + @Test + fun `local-reply handler is created as singleton`() { + injector.verifySingletonInstance() + } + + @Test fun `new-version notification is created as singleton`() { injector.verifySingletonInstance(named("newVersion")) }