X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FLocalPostHandlerTest.kt;h=70aa709582128546c67779d306f5a296ea4addd4;hb=c66657eb61d863fe2b1f1ea534a2bd46e5064b89;hp=45be33b70e5caa14c794e269ebb8ae345c73cc64;hpb=c0adc24e57980b042f8232a01ad3bed40b4b0942;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/LocalPostHandlerTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/LocalPostHandlerTest.kt index 45be33b..70aa709 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/LocalPostHandlerTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/LocalPostHandlerTest.kt @@ -1,5 +1,5 @@ /** - * Sone - NewLocalPostHandlerTest.kt - Copyright © 2019 David ‘Bombe’ Roden + * Sone - LocalPostHandlerTest.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 @@ -22,6 +22,7 @@ import net.pterodactylus.sone.core.event.* import net.pterodactylus.sone.data.* import net.pterodactylus.sone.data.impl.* import net.pterodactylus.sone.notify.* +import net.pterodactylus.sone.test.createPost import net.pterodactylus.util.notify.* import net.pterodactylus.util.template.* import org.hamcrest.MatcherAssert.* @@ -54,15 +55,21 @@ class LocalPostHandlerTest { } @Test - fun `handler adds notification to manager`() { + fun `handler does not add notification to manager for post by remote sone`() { eventBus.post(NewPostFoundEvent(remotePost)) + assertThat(notificationManager.notifications, not(hasItem(notification))) + } + + @Test + fun `handler adds notification to manager`() { + eventBus.post(NewPostFoundEvent(localPost)) assertThat(notificationManager.notifications, contains(notification)) } @Test fun `handler does not add notification during first start`() { notificationManager.firstStart() - eventBus.post(NewPostFoundEvent(remotePost)) + eventBus.post(NewPostFoundEvent(localPost)) assertThat(notificationManager.notifications, not(hasItem(notification))) } @@ -83,6 +90,15 @@ class LocalPostHandlerTest { } @Test + // this scenario can happen when sones are removed. + fun `handler removes post from notification if sone is missing`() { + val post = createPost(sone = null) + notification.add(post) + eventBus.post(PostRemovedEvent(post)) + assertThat(notification.elements, emptyIterable()) + } + + @Test fun `handler removes post from notification when post is marked as known`() { notification.add(localPost) notificationManager.addNotification(notification)