1 package net.pterodactylus.sone.web.ajax
3 import net.pterodactylus.sone.test.getInstance
4 import net.pterodactylus.sone.web.baseInjector
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
7 import org.hamcrest.Matchers.notNullValue
9 import org.mockito.Mockito.verify
12 * Unit test for [MoveProfileFieldAjaxPage].
14 class MoveProfileFieldAjaxPageTest : JsonPageTest("moveProfileField.ajax", true, true, ::MoveProfileFieldAjaxPage) {
17 fun `request without field id results in invalid-field-id`() {
18 assertThatJsonFailed("invalid-field-id")
22 fun `request with invalid direction results in invalid-direction`() {
23 val fieldId = profile.addField("someField").id
24 addRequestParameter("field", fieldId)
25 assertThatJsonFailed("invalid-direction")
29 fun `moving first field up results in not-possible`() {
30 val fieldId = profile.addField("someField").id
31 addRequestParameter("field", fieldId)
32 addRequestParameter("direction", "up")
33 assertThatJsonFailed("not-possible")
37 fun `moving only field down results in not-possible`() {
38 val fieldId = profile.addField("someField").id
39 addRequestParameter("field", fieldId)
40 addRequestParameter("direction", "down")
41 assertThatJsonFailed("not-possible")
45 fun `moving second field up results in field being moved up`() {
46 profile.addField("firstField")
47 val fieldId = profile.addField("someField").id
48 addRequestParameter("field", fieldId)
49 addRequestParameter("direction", "up")
50 assertThatJsonIsSuccessful()
51 assertThat(profile.fields[0].id, equalTo(fieldId))
52 verify(core).touchConfiguration()
53 verify(currentSone).profile = profile
57 fun `moving first field down results in field being moved down`() {
58 val fieldId = profile.addField("someField").id
59 profile.addField("firstField")
60 addRequestParameter("field", fieldId)
61 addRequestParameter("direction", "down")
62 assertThatJsonIsSuccessful()
63 assertThat(profile.fields.last().id, equalTo(fieldId))
64 verify(core).touchConfiguration()
65 verify(currentSone).profile = profile
69 fun `page can be created by dependency injection`() {
70 assertThat(baseInjector.getInstance<MoveProfileFieldAjaxPage>(), notNullValue())