Add test for DI constructability of TrustAjaxPage
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / EditImageAjaxPageTest.kt
index 126fa83..26436a3 100644 (file)
@@ -8,10 +8,14 @@ import net.pterodactylus.sone.template.ParserFilter
 import net.pterodactylus.sone.template.RenderFilter
 import net.pterodactylus.sone.template.ShortenFilter
 import net.pterodactylus.sone.test.argumentCaptor
+import net.pterodactylus.sone.test.getInstance
+import net.pterodactylus.sone.test.isProvidedByMock
 import net.pterodactylus.sone.test.mock
 import net.pterodactylus.sone.test.whenever
+import net.pterodactylus.sone.web.baseInjector
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.junit.Test
 import org.mockito.ArgumentMatchers.any
 import org.mockito.ArgumentMatchers.eq
@@ -29,8 +33,7 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
 
        @Test
        fun `request without image results in invalid-image-id`() {
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-image-id"))
+               assertThatJsonFailed("invalid-image-id")
        }
 
        @Test
@@ -40,8 +43,7 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
                whenever(image.sone).thenReturn(sone)
                addImage(image, "image-id")
                addRequestParameter("image", "image-id")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("not-authorized"))
+               assertThatJsonFailed("not-authorized")
        }
 
        @Test
@@ -56,7 +58,7 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
                addImage(image)
                addRequestParameter("image", "image-id")
                addRequestParameter("moveLeft", "true")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["sourceImageId"]?.asText(), equalTo("image-id"))
                assertThat(json["destinationImageId"]?.asText(), equalTo("swapped"))
                verify(core).touchConfiguration()
@@ -74,7 +76,7 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
                addImage(image)
                addRequestParameter("image", "image-id")
                addRequestParameter("moveRight", "true")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["sourceImageId"]?.asText(), equalTo("image-id"))
                assertThat(json["destinationImageId"]?.asText(), equalTo("swapped"))
                verify(core).touchConfiguration()
@@ -87,8 +89,7 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
                whenever(image.sone).thenReturn(sone)
                addImage(image)
                addRequestParameter("image", "image-id")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-image-title"))
+               assertThatJsonFailed("invalid-image-title")
        }
 
        @Test
@@ -106,7 +107,7 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
                addRequestParameter("title", "some title")
                addRequestParameter("description", "some http://127.0.0.1:8888/KSK@foo link")
                addRequestHeader("Host", "127.0.0.1:8888")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["title"]?.asText(), equalTo("some title"))
                assertThat(json["description"]?.asText(), equalTo("some KSK@foo link"))
                assertThat(json["parsedDescription"]?.asText(), equalTo("rendered description"))
@@ -116,4 +117,13 @@ class EditImageAjaxPageTest : JsonPageTest("editImage.ajax") {
                assertThat(parameterCaptor.value["sone"], equalTo<Any>(sone))
        }
 
+       @Test
+       fun `page can be created by dependency injection`() {
+               assertThat(baseInjector.createChildInjector(
+                               ParserFilter::class.isProvidedByMock(),
+                               ShortenFilter::class.isProvidedByMock(),
+                               RenderFilter::class.isProvidedByMock()
+               ).getInstance<EditImageAjaxPage>(), notNullValue())
+       }
+
 }