X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FNewPageTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FNewPageTest.kt;h=72d87f8098e43d459d8f34dede4255d8e9fa66ab;hp=0000000000000000000000000000000000000000;hb=0c887926116aefa2245701890b6d40ec4ca4c838;hpb=7510492ef6ac86acc32bd130711188f5232a8a51 diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/NewPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/NewPageTest.kt new file mode 100644 index 0000000..72d87f8 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/NewPageTest.kt @@ -0,0 +1,44 @@ +package net.pterodactylus.sone.web.pages + +import net.pterodactylus.sone.data.Post +import net.pterodactylus.sone.data.PostReply +import net.pterodactylus.sone.test.asOptional +import net.pterodactylus.sone.test.mock +import net.pterodactylus.sone.test.whenever +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.containsInAnyOrder +import org.junit.Before +import org.junit.Test +import java.util.Arrays.asList + +/** + * Unit test for [NewPage]. + */ +class NewPageTest: WebPageTest() { + + private val page = NewPage(template, webInterface) + + override fun getPage() = page + + @Before + fun setupNumberOfPostsPerPage() { + webInterface.core.preferences.postsPerPage = 5 + } + + @Test + fun `posts are not duplicated when they come from both new posts and new replies notifications`() { + val extraPost = mock() + val posts = asList(mock(), mock()) + val postReplies = asList(mock(), mock()) + whenever(postReplies[0].post).thenReturn(posts[0].asOptional()) + whenever(postReplies[1].post).thenReturn(extraPost.asOptional()) + whenever(webInterface.getNewPosts(currentSone)).thenReturn(posts) + whenever(webInterface.getNewReplies(currentSone)).thenReturn(postReplies) + + verifyNoRedirect { + val renderedPosts = templateContext.get>("posts", List::class.java) + assertThat(renderedPosts, containsInAnyOrder(posts[0], posts[1], extraPost)) + } + } + +}