1 package net.pterodactylus.sone.web.pages
3 import net.pterodactylus.sone.data.Sone
4 import net.pterodactylus.sone.test.mock
5 import net.pterodactylus.sone.web.pages.LockSonePage
6 import net.pterodactylus.sone.web.pages.WebPageTest
8 import org.mockito.ArgumentMatchers.any
9 import org.mockito.Mockito.never
10 import org.mockito.Mockito.verify
13 * Unit test for [LockSonePage].
15 class LockSonePageTest : WebPageTest() {
17 private val page = LockSonePage(template, webInterface)
19 override fun getPage() = page
22 fun `locking an invalid local sone redirects to return page`() {
23 addHttpRequestParameter("returnPage", "return.html")
24 verifyRedirect("return.html") {
25 verify(core, never()).lockSone(any<Sone>())
30 fun `locking an valid local sone locks the sone and redirects to return page`() {
31 addHttpRequestParameter("sone", "sone-id")
32 val sone = mock<Sone>()
33 addLocalSone("sone-id", sone)
34 addHttpRequestParameter("returnPage", "return.html")
35 verifyRedirect("return.html") {
36 verify(core).lockSone(sone)