Move assertions to base class
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / MoveProfileFieldAjaxPageTest.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 [MoveProfileFieldAjaxPage].
10  */
11 class MoveProfileFieldAjaxPageTest : JsonPageTest("moveProfileField.ajax", true, true, ::MoveProfileFieldAjaxPage) {
12
13         @Test
14         fun `request without field id results in invalid-field-id`() {
15                 assertThatJsonFailed("invalid-field-id")
16         }
17
18         @Test
19         fun `request with invalid direction results in invalid-direction`() {
20                 val fieldId = profile.addField("someField").id
21                 addRequestParameter("field", fieldId)
22                 assertThatJsonFailed("invalid-direction")
23         }
24
25         @Test
26         fun `moving first field up results in not-possible`() {
27                 val fieldId = profile.addField("someField").id
28                 addRequestParameter("field", fieldId)
29                 addRequestParameter("direction", "up")
30                 assertThatJsonFailed("not-possible")
31         }
32
33         @Test
34         fun `moving only field down results in not-possible`() {
35                 val fieldId = profile.addField("someField").id
36                 addRequestParameter("field", fieldId)
37                 addRequestParameter("direction", "down")
38                 assertThatJsonFailed("not-possible")
39         }
40
41         @Test
42         fun `moving second field up results in field being moved up`() {
43                 profile.addField("firstField")
44                 val fieldId = profile.addField("someField").id
45                 addRequestParameter("field", fieldId)
46                 addRequestParameter("direction", "up")
47                 assertThatJsonIsSuccessful()
48                 assertThat(profile.fields[0].id, equalTo(fieldId))
49                 verify(core).touchConfiguration()
50                 verify(currentSone).profile = profile
51         }
52
53         @Test
54         fun `moving first field down results in field being moved down`() {
55                 val fieldId = profile.addField("someField").id
56                 profile.addField("firstField")
57                 addRequestParameter("field", fieldId)
58                 addRequestParameter("direction", "down")
59                 assertThatJsonIsSuccessful()
60                 assertThat(profile.fields.last().id, equalTo(fieldId))
61                 verify(core).touchConfiguration()
62                 verify(currentSone).profile = profile
63         }
64
65 }