Replace JSON return object with Kotlin version
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / TrustAjaxPageTest.kt
1 package net.pterodactylus.sone.web.ajax
2
3 import net.pterodactylus.sone.data.Sone
4 import net.pterodactylus.sone.test.mock
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
7 import org.junit.Test
8 import org.mockito.Mockito.verify
9
10 /**
11  * Unit test for [TrustAjaxPage].
12  */
13 class TrustAjaxPageTest : JsonPageTest("trustSone.ajax", requiresLogin = true, needsFormPassword = true, pageSupplier = ::TrustAjaxPage) {
14
15         private val sone = mock<Sone>()
16
17         @Test
18         fun `request with invalid sone results in invalid-sone-id`() {
19                 assertThat(json.isSuccess, equalTo(false))
20                 assertThat(json.error, equalTo("invalid-sone-id"))
21         }
22
23         @Test
24         fun `request with valid sone trust sone`() {
25                 addSone(sone, "sone-id")
26                 addRequestParameter("sone", "sone-id")
27                 assertThat(json.isSuccess, equalTo(true))
28                 verify(core).trustSone(currentSone, sone)
29         }
30
31         @Test
32         fun `request with valid sone returns positive trust value`() {
33                 addSone(sone, "sone-id")
34                 addRequestParameter("sone", "sone-id")
35                 core.preferences.positiveTrust = 31
36                 assertThat(json.isSuccess, equalTo(true))
37                 assertThat(json["trustValue"]?.asInt(), equalTo(31))
38         }
39
40 }