1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.data.PostReply
4 import net.pterodactylus.sone.data.Sone
5 import net.pterodactylus.sone.test.getInstance
6 import net.pterodactylus.sone.test.mock
7 import net.pterodactylus.sone.test.whenever
8 import net.pterodactylus.sone.web.baseInjector
9 import org.hamcrest.MatcherAssert.assertThat
10 import org.hamcrest.Matchers.equalTo
11 import org.hamcrest.Matchers.notNullValue
13 import org.mockito.Mockito.verify
16 * Unit test for [DeleteReplyAjaxPage].
18 class DeleteReplyAjaxPageTest : JsonPageTest("deleteReply.ajax", pageSupplier = ::DeleteReplyAjaxPage) {
21 fun `request with missing reply results in invalid id`() {
22 assertThatJsonFailed("invalid-reply-id")
26 fun `request with non-local reply id results in not authorized`() {
27 val reply = mock<PostReply>()
28 val sone = mock<Sone>()
29 whenever(reply.sone).thenReturn(sone)
30 addReply(reply, "reply-id")
31 addRequestParameter("reply", "reply-id")
32 assertThatJsonFailed("not-authorized")
36 fun `request with local reply id deletes reply`() {
37 val reply = mock<PostReply>()
38 val sone = mock<Sone>()
39 whenever(sone.isLocal).thenReturn(true)
40 whenever(reply.sone).thenReturn(sone)
41 addReply(reply, "reply-id")
42 addRequestParameter("reply", "reply-id")
43 assertThatJsonIsSuccessful()
44 verify(core).deleteReply(reply)
48 fun `page can be created by dependency injection`() {
49 assertThat(baseInjector.getInstance<DeleteReplyAjaxPage>(), notNullValue())