🔀 Merge branch 'release/v82'
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / EditImagePageTest.kt
index 57d1453..5f59031 100644 (file)
@@ -1,43 +1,31 @@
 package net.pterodactylus.sone.web.pages
 
-import net.pterodactylus.sone.data.Album
-import net.pterodactylus.sone.data.Image
-import net.pterodactylus.sone.data.Image.Modifier
-import net.pterodactylus.sone.data.Image.Modifier.ImageTitleMustNotBeEmpty
-import net.pterodactylus.sone.data.Sone
-import net.pterodactylus.sone.test.doThrow
-import net.pterodactylus.sone.test.getInstance
-import net.pterodactylus.sone.test.mock
-import net.pterodactylus.sone.test.mockBuilder
-import net.pterodactylus.sone.test.whenever
-import net.pterodactylus.sone.web.baseInjector
-import net.pterodactylus.util.web.Method.POST
-import org.hamcrest.MatcherAssert.assertThat
-import org.hamcrest.Matchers.equalTo
-import org.hamcrest.Matchers.notNullValue
-import org.junit.Before
-import org.junit.Test
-import org.mockito.Mockito.never
-import org.mockito.Mockito.verify
+import net.pterodactylus.sone.data.*
+import net.pterodactylus.sone.data.impl.*
+import net.pterodactylus.sone.test.*
+import net.pterodactylus.sone.web.*
+import net.pterodactylus.util.web.Method.*
+import org.hamcrest.MatcherAssert.*
+import org.hamcrest.Matchers.*
+import org.junit.*
+import org.mockito.Mockito.*
 
 /**
  * Unit test for [EditImagePage].
  */
-class EditImagePageTest: WebPageTest(::EditImagePage) {
+class EditImagePageTest : WebPageTest(::EditImagePage) {
 
-       private val image = mock<Image>()
-       private val modifier = mockBuilder<Modifier>()
        private val sone = mock<Sone>()
-       private val album = mock<Album>()
+       private val image = ImageImpl("image-id").modify().setSone(sone).update()!!
+       private val album = AlbumImpl(sone, "album-id").also {
+               it.addImage(ImageImpl("1").modify().setSone(sone).update())
+               it.addImage(image)
+               it.addImage(ImageImpl("2").modify().setSone(sone).update())
+       }
 
        @Before
        fun setupImage() {
                whenever(sone.isLocal).thenReturn(true)
-               whenever(album.id).thenReturn("album-id")
-               whenever(modifier.update()).thenReturn(image)
-               whenever(image.sone).thenReturn(sone)
-               whenever(image.album).thenReturn(album)
-               whenever(image.modify()).thenReturn(modifier)
        }
 
        @Test
@@ -47,13 +35,13 @@ class EditImagePageTest: WebPageTest(::EditImagePage) {
 
        @Test
        fun `page requires login`() {
-           assertThat(page.requiresLogin(), equalTo(true))
+               assertThat(page.requiresLogin(), equalTo(true))
        }
 
        @Test
        fun `page returns correct title`() {
-               whenever(l10n.getString("Page.EditImage.Title")).thenReturn("edit image page title")
-           assertThat(page.getPageTitle(soneRequest), equalTo("edit image page title"))
+               addTranslation("Page.EditImage.Title", "edit image page title")
+               assertThat(page.getPageTitle(soneRequest), equalTo("edit image page title"))
        }
 
        @Test
@@ -84,7 +72,7 @@ class EditImagePageTest: WebPageTest(::EditImagePage) {
                addHttpRequestPart("returnPage", "return.html")
                addHttpRequestPart("moveLeft", "true")
                verifyRedirect("return.html") {
-                       verify(album).moveImageUp(image)
+                       assertThat(album.images.indexOf(image), equalTo(0))
                        verify(core).touchConfiguration()
                }
        }
@@ -97,7 +85,7 @@ class EditImagePageTest: WebPageTest(::EditImagePage) {
                addHttpRequestPart("returnPage", "return.html")
                addHttpRequestPart("moveRight", "true")
                verifyRedirect("return.html") {
-                       verify(album).moveImageDown(image)
+                       assertThat(album.images.indexOf(image), equalTo(2))
                        verify(core).touchConfiguration()
                }
        }
@@ -109,7 +97,6 @@ class EditImagePageTest: WebPageTest(::EditImagePage) {
                addHttpRequestPart("image", "image-id")
                addHttpRequestPart("returnPage", "return.html")
                addHttpRequestPart("title", "   ")
-               whenever(modifier.update()).doThrow<ImageTitleMustNotBeEmpty>()
                verifyRedirect("emptyImageTitle.html") {
                        verify(core, never()).touchConfiguration()
                }
@@ -124,9 +111,8 @@ class EditImagePageTest: WebPageTest(::EditImagePage) {
                addHttpRequestPart("title", "Title")
                addHttpRequestPart("description", "Description")
                verifyRedirect("return.html") {
-                       verify(modifier).setTitle("Title")
-                       verify(modifier).setDescription("Description")
-                       verify(modifier).update()
+                       assertThat(image.title, equalTo("Title"))
+                       assertThat(image.description, equalTo("Description"))
                        verify(core).touchConfiguration()
                }
        }
@@ -141,9 +127,8 @@ class EditImagePageTest: WebPageTest(::EditImagePage) {
                addHttpRequestHeader("Host", "www.te.st")
                addHttpRequestPart("description", "Get http://www.te.st/KSK@GPL.txt")
                verifyRedirect("return.html") {
-                       verify(modifier).setTitle("Title")
-                       verify(modifier).setDescription("Get KSK@GPL.txt")
-                       verify(modifier).update()
+                       assertThat(image.title, equalTo("Title"))
+                       assertThat(image.description, equalTo("Get KSK@GPL.txt"))
                        verify(core).touchConfiguration()
                }
        }