Add test for DI constructability of TrustAjaxPage
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / LockSoneAjaxPageTest.kt
1 package net.pterodactylus.sone.web.ajax
2
3 import net.pterodactylus.sone.data.Sone
4 import net.pterodactylus.sone.test.getInstance
5 import net.pterodactylus.sone.test.mock
6 import net.pterodactylus.sone.web.baseInjector
7 import org.hamcrest.MatcherAssert.assertThat
8 import org.hamcrest.Matchers.equalTo
9 import org.hamcrest.Matchers.notNullValue
10 import org.junit.Test
11 import org.mockito.Mockito.verify
12
13 /**
14  * Unit test for [LockSoneAjaxPage].
15  */
16 class LockSoneAjaxPageTest : JsonPageTest("lockSone.ajax", requiresLogin = false, pageSupplier = ::LockSoneAjaxPage) {
17
18         @Test
19         fun `request without valid sone results in invalid-sone-id`() {
20                 assertThatJsonFailed("invalid-sone-id")
21         }
22
23         @Test
24         fun `request with valid sone id results in locked sone`() {
25                 val sone = mock<Sone>()
26                 addLocalSone(sone, "sone-id")
27                 addRequestParameter("sone", "sone-id")
28                 assertThatJsonIsSuccessful()
29                 verify(core).lockSone(sone)
30         }
31
32         @Test
33         fun `page can be created by dependency injection`() {
34             assertThat(baseInjector.getInstance<LockSoneAjaxPage>(), notNullValue())
35         }
36
37 }