Add test for like ajax page
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / LikeAjaxPageTest.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 [LikeAjaxPage].
10  */
11 class LikeAjaxPageTest : JsonPageTest("like.ajax", pageSupplier = ::LikeAjaxPage) {
12
13         @Test
14         fun `request with invalid type results in invalid-type error`() {
15             addRequestParameter("type", "invalid")
16                 addRequestParameter("invalid", "invalid-id")
17                 assertThat(json.isSuccess, equalTo(false))
18                 assertThat(json.error, equalTo("invalid-type"))
19         }
20
21         @Test
22         fun `request with post id results in post being liked by current sone`() {
23                 addRequestParameter("type", "post")
24                 addRequestParameter("post", "post-id")
25                 assertThat(json.isSuccess, equalTo(true))
26                 verify(currentSone).addLikedPostId("post-id")
27                 verify(core).touchConfiguration()
28         }
29
30         @Test
31         fun `request with reply id results in reply being liked by current sone`() {
32                 addRequestParameter("type", "reply")
33                 addRequestParameter("reply", "reply-id")
34                 assertThat(json.isSuccess, equalTo(true))
35                 verify(currentSone).addLikedReplyId("reply-id")
36                 verify(core).touchConfiguration()
37         }
38
39 }