ada19babe2b1caee0c582d71082e9add6475a855
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / UnlikeAjaxPageTest.kt
1 package net.pterodactylus.sone.web.ajax
2
3 import org.hamcrest.MatcherAssert.assertThat
4 import org.hamcrest.Matchers.equalTo
5 import org.junit.Test
6 import org.mockito.Mockito.verify
7
8 /**
9  * Unit test for [UnlikeAjaxPage].
10  */
11 class UnlikeAjaxPageTest : JsonPageTest("unlike.ajax", pageSupplier = ::UnlikeAjaxPage) {
12
13         @Test
14         fun `request without type results in error`() {
15                 assertThat(json.isSuccess, equalTo(false))
16         }
17
18         @Test
19         fun `request for post without id results in invalid-post-id`() {
20                 addRequestParameter("type", "post")
21                 assertThat(json.isSuccess, equalTo(false))
22                 assertThat(json.error, equalTo("invalid-post-id"))
23         }
24
25         @Test
26         fun `request for invalid type results in invalid-type`() {
27                 addRequestParameter("type", "invalid")
28                 addRequestParameter("invalid", "invalid")
29                 assertThat(json.isSuccess, equalTo(false))
30                 assertThat(json.error, equalTo("invalid-type"))
31         }
32
33         @Test
34         fun `request for post with id removes id from liked posts`() {
35                 addRequestParameter("type", "post")
36                 addRequestParameter("post", "post-id")
37                 assertThat(json.isSuccess, equalTo(true))
38                 verify(currentSone).removeLikedPostId("post-id")
39                 verify(core).touchConfiguration()
40         }
41
42         @Test
43         fun `request for reply without id results in invalid-reply-id`() {
44                 addRequestParameter("type", "reply")
45                 assertThat(json.isSuccess, equalTo(false))
46                 assertThat(json.error, equalTo("invalid-reply-id"))
47         }
48
49         @Test
50         fun `request for reply with id removes id from liked replys`() {
51                 addRequestParameter("type", "reply")
52                 addRequestParameter("reply", "reply-id")
53                 assertThat(json.isSuccess, equalTo(true))
54                 verify(currentSone).removeLikedReplyId("reply-id")
55                 verify(core).touchConfiguration()
56         }
57
58 }