Add test for DI constructability of TrustAjaxPage
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / GetLikesAjaxPageTest.kt
index 1b1255e..5f89713 100644 (file)
@@ -4,11 +4,14 @@ import net.pterodactylus.sone.data.Post
 import net.pterodactylus.sone.data.PostReply
 import net.pterodactylus.sone.data.Profile
 import net.pterodactylus.sone.data.Sone
+import net.pterodactylus.sone.test.getInstance
 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.contains
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.junit.Test
 
 /**
@@ -25,15 +28,13 @@ class GetLikesAjaxPageTest : JsonPageTest("getLikes.ajax", needsFormPassword = f
        fun `request with invalid post id results in invalid-post-id`() {
                addRequestParameter("type", "post")
                addRequestParameter("post", "invalid")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-post-id"))
+               assertThatJsonFailed("invalid-post-id")
        }
 
        @Test
        fun `request with missing post id results in invalid-post-id`() {
                addRequestParameter("type", "post")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-post-id"))
+               assertThatJsonFailed("invalid-post-id")
        }
 
        @Test
@@ -43,7 +44,7 @@ class GetLikesAjaxPageTest : JsonPageTest("getLikes.ajax", needsFormPassword = f
                addLikes(post, createSone(2), createSone(1), createSone(3))
                addRequestParameter("type", "post")
                addRequestParameter("post", "post-id")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["likes"]?.asInt(), equalTo(3))
                assertThat(json["sones"]!!.toList().map { it["id"].asText() to it["name"].asText() }, contains(
                                "S1" to "F1 M1 L1",
@@ -56,15 +57,13 @@ class GetLikesAjaxPageTest : JsonPageTest("getLikes.ajax", needsFormPassword = f
        fun `request with invalid reply id results in invalid-reply-id`() {
                addRequestParameter("type", "reply")
                addRequestParameter("reply", "invalid")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-reply-id"))
+               assertThatJsonFailed("invalid-reply-id")
        }
 
        @Test
        fun `request with missing reply id results in invalid-reply-id`() {
                addRequestParameter("type", "reply")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-reply-id"))
+               assertThatJsonFailed("invalid-reply-id")
        }
 
        @Test
@@ -74,7 +73,7 @@ class GetLikesAjaxPageTest : JsonPageTest("getLikes.ajax", needsFormPassword = f
                addLikes(reply, createSone(2), createSone(1), createSone(3))
                addRequestParameter("type", "reply")
                addRequestParameter("reply", "reply-id")
-               assertThat(json.isSuccess, equalTo(true))
+               assertThatJsonIsSuccessful()
                assertThat(json["likes"]?.asInt(), equalTo(3))
                assertThat(json["sones"]!!.toList().map { it["id"].asText() to it["name"].asText() }, contains(
                                "S1" to "F1 M1 L1",
@@ -87,10 +86,14 @@ class GetLikesAjaxPageTest : JsonPageTest("getLikes.ajax", needsFormPassword = f
        fun `request with invalid type results in invalid-type`() {
                addRequestParameter("type", "invalid")
                addRequestParameter("invalid", "foo")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("invalid-type"))
+               assertThatJsonFailed("invalid-type")
        }
 
+       @Test
+       fun `page can be created by dependency injection`() {
+           assertThat(baseInjector.getInstance<GetLikesAjaxPage>(), notNullValue())
+       }
+       
 }
 
 private fun createSone(index: Int) = mock<Sone>().apply {