🚧 Filter new posts using the current Sone
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / NewElementsTest.kt
index ccda1c7..2b4436d 100644 (file)
@@ -20,11 +20,14 @@ import com.google.inject.Guice
 import com.google.inject.name.Names.named
 import net.pterodactylus.sone.data.Post
 import net.pterodactylus.sone.data.PostReply
+import net.pterodactylus.sone.data.Sone
 import net.pterodactylus.sone.notify.ListNotification
+import net.pterodactylus.sone.notify.PostVisibilityFilter
 import net.pterodactylus.sone.notify.matchThisPost
 import net.pterodactylus.sone.notify.matchThisReply
 import net.pterodactylus.sone.notify.showAllPosts
 import net.pterodactylus.sone.notify.showAllReplies
+import net.pterodactylus.sone.test.createLocalSone
 import net.pterodactylus.sone.test.createPost
 import net.pterodactylus.sone.test.createPostReply
 import net.pterodactylus.sone.test.getInstance
@@ -84,9 +87,19 @@ class NewElementsTest {
                assertThat(newElements.newReplies(), containsInAnyOrder(reply2))
        }
 
+       @Test
+       fun `new posts are filtered using the given Sone`() {
+               val postVisibilityFilter = object : PostVisibilityFilter {
+                       override fun isPostVisible(sone: Sone?, post: Post) = (sone == localSone) && (post == post2)
+               }
+               val newElements = NewElements(newPostNotification, newReplyNotification, localPostNotification, localReplyNotification, postVisibilityFilter, showAllReplies)
+               assertThat(newElements.newPosts(localSone), contains(post2))
+       }
+
 }
 
 private val post1 = createPost()
 private val post2 = createPost()
 private val reply1 = createPostReply()
 private val reply2 = createPostReply()
+private val localSone = createLocalSone()