🎨 Clean up imports
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / notify / Testing.kt
1 package net.pterodactylus.sone.notify
2
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.data.PostReply
5 import net.pterodactylus.sone.data.Sone
6
7 fun matchThisPost(post: Post) = createPostVisibilityFilter { _, p -> p == post }
8 val showAllPosts = createPostVisibilityFilter { _, _ -> true }
9 val showNoPosts = createPostVisibilityFilter { _, _ -> false }
10
11 private fun createPostVisibilityFilter(visible: (Sone?, Post) -> Boolean) = object : PostVisibilityFilter {
12         override fun isPostVisible(sone: Sone?, post: Post) = visible(sone, post)
13 }
14
15 fun matchThisReply(reply: PostReply) = createReplyVisibilityFilter(showAllPosts) { _, r -> r == reply }
16 val showAllReplies = createReplyVisibilityFilter(showAllPosts) { _, _ -> true }
17 val showNoReplies = createReplyVisibilityFilter(showAllPosts) { _, _ -> false }
18
19 private fun createReplyVisibilityFilter(postVisibilityFilter: PostVisibilityFilter, visible: (Sone?, PostReply) -> Boolean): ReplyVisibilityFilter = object : DefaultReplyVisibilityFilter(postVisibilityFilter) {
20         override fun isReplyVisible(sone: Sone?, reply: PostReply) = visible(sone, reply)
21 }