1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.data.Post
4 import net.pterodactylus.sone.data.PostReply
5 import net.pterodactylus.sone.data.Sone
6 import net.pterodactylus.sone.test.mock
7 import net.pterodactylus.sone.test.whenever
8 import org.hamcrest.MatcherAssert.assertThat
9 import org.hamcrest.Matchers.equalTo
11 import org.mockito.Mockito.any
12 import org.mockito.Mockito.never
13 import org.mockito.Mockito.verify
16 * Unit test for [MarkAsKnownAjaxPage].
18 class MarkAsKnownAjaxPageTest : JsonPageTest("markAsKnown.ajax", requiresLogin = false, pageSupplier = ::MarkAsKnownAjaxPage) {
21 fun `request without type results in invalid-type`() {
22 assertThatJsonFailed("invalid-type")
26 fun `request with unknown sone returns successfully`() {
27 addRequestParameter("type", "sone")
28 addRequestParameter("id", "invalid")
29 assertThatJsonIsSuccessful()
30 verify(core, never()).markSoneKnown(any())
34 fun `request with multiple valid sones marks sones as known and returns successfully`() {
35 addRequestParameter("type", "sone")
36 addRequestParameter("id", "sone-id1 sone-id2")
37 val sone1 = mock<Sone>().apply { whenever(id).thenReturn("sone-id1") }
38 val sone2 = mock<Sone>().apply { whenever(id).thenReturn("sone-id2") }
41 assertThatJsonIsSuccessful()
42 verify(core).markSoneKnown(sone1)
43 verify(core).markSoneKnown(sone2)
47 fun `request with multiple valid posts marks posts as known and returns successfully`() {
48 addRequestParameter("type", "post")
49 addRequestParameter("id", "post1 post2 post 3")
50 val post1 = mock<Post>()
51 val post2 = mock<Post>()
52 addPost(post1, "post1")
53 addPost(post2, "post2")
54 assertThatJsonIsSuccessful()
55 verify(core).markPostKnown(post1)
56 verify(core).markPostKnown(post2)
60 fun `request with multiple valid replies marks replies as known and returns successfully`() {
61 addRequestParameter("type", "reply")
62 addRequestParameter("id", "reply1 reply2 reply3")
63 val reply1 = mock<PostReply>()
64 val reply2 = mock<PostReply>()
65 addReply(reply1, "reply1")
66 addReply(reply2, "reply2")
67 assertThatJsonIsSuccessful()
68 verify(core).markReplyKnown(reply1)
69 verify(core).markReplyKnown(reply2)