X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FLockSonePageTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fpages%2FLockSonePageTest.kt;h=9a6876c84243bc8e5b59cafa61723694aa4a5b7d;hb=de7568a82eb4150bf6d2b0553841b7b69f84c968;hp=0000000000000000000000000000000000000000;hpb=9acbc5bdec4ccb752e0856a501568b0bb6161579;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/pages/LockSonePageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/pages/LockSonePageTest.kt new file mode 100644 index 0000000..9a6876c --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/web/pages/LockSonePageTest.kt @@ -0,0 +1,40 @@ +package net.pterodactylus.sone.web.pages + +import net.pterodactylus.sone.data.Sone +import net.pterodactylus.sone.test.mock +import net.pterodactylus.sone.web.pages.LockSonePage +import net.pterodactylus.sone.web.pages.WebPageTest +import org.junit.Test +import org.mockito.ArgumentMatchers.any +import org.mockito.Mockito.never +import org.mockito.Mockito.verify + +/** + * Unit test for [LockSonePage]. + */ +class LockSonePageTest : WebPageTest() { + + private val page = LockSonePage(template, webInterface) + + override fun getPage() = page + + @Test + fun `locking an invalid local sone redirects to return page`() { + addHttpRequestParameter("returnPage", "return.html") + verifyRedirect("return.html") { + verify(core, never()).lockSone(any()) + } + } + + @Test + fun `locking an valid local sone locks the sone and redirects to return page`() { + addHttpRequestParameter("sone", "sone-id") + val sone = mock() + addLocalSone("sone-id", sone) + addHttpRequestParameter("returnPage", "return.html") + verifyRedirect("return.html") { + verify(core).lockSone(sone) + } + } + +}