Add test for DI constructability of TrustAjaxPage
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / ajax / CreatePostAjaxPageTest.kt
index 47fee5b..821198f 100644 (file)
@@ -3,11 +3,14 @@ package net.pterodactylus.sone.web.ajax
 import com.google.common.base.Optional
 import net.pterodactylus.sone.data.Post
 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.utils.asOptional
+import net.pterodactylus.sone.web.baseInjector
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.hamcrest.Matchers.nullValue
 import org.junit.Test
 
@@ -18,22 +21,19 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
 
        @Test
        fun `missing text parameter returns error`() {
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("text-required"))
+               assertThatJsonFailed("text-required")
        }
 
        @Test
        fun `empty text returns error`() {
                addRequestParameter("text", "")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("text-required"))
+               assertThatJsonFailed("text-required")
        }
 
        @Test
        fun `whitespace-only text returns error`() {
                addRequestParameter("text", "  ")
-               assertThat(json.isSuccess, equalTo(false))
-               assertThat(json.error, equalTo("text-required"))
+               assertThatJsonFailed("text-required")
        }
 
        @Test
@@ -41,9 +41,9 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                addRequestParameter("text", "test")
                val post = createPost()
                whenever(core.createPost(currentSone, Optional.absent(), "test")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
                assertThat(json["recipient"], nullValue())
        }
 
@@ -53,9 +53,9 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                addRequestParameter("recipient", "invalid")
                val post = createPost()
                whenever(core.createPost(currentSone, Optional.absent(), "test")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
                assertThat(json["recipient"], nullValue())
        }
 
@@ -67,10 +67,10 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                addSone(recipient)
                val post = createPost("valid")
                whenever(core.createPost(currentSone, Optional.of(recipient), "test")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
-               assertThat(json["recipient"].asText(), equalTo("valid"))
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
+               assertThat(json["recipient"]?.asText(), equalTo("valid"))
        }
 
        @Test
@@ -79,9 +79,9 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                addRequestHeader("Host", "freenet.test:8888")
                val post = createPost()
                whenever(core.createPost(currentSone, Optional.absent(), "Link KSK@foo is filtered")).thenReturn(post)
-               assertThat(json.isSuccess, equalTo(true))
-               assertThat(json["postId"].asText(), equalTo("id"))
-               assertThat(json["sone"].asText(), equalTo(currentSone.id))
+               assertThatJsonIsSuccessful()
+               assertThat(json["postId"]?.asText(), equalTo("id"))
+               assertThat(json["sone"]?.asText(), equalTo(currentSone.id))
                assertThat(json["recipient"], nullValue())
        }
 
@@ -92,4 +92,9 @@ class CreatePostAjaxPageTest : JsonPageTest("createPost.ajax", pageSupplier = ::
                                whenever(this.recipientId).thenReturn(recipientId.asOptional())
                        }
 
+       @Test
+       fun `page can be created by dependency injection`() {
+           assertThat(baseInjector.getInstance<CreatePostAjaxPage>(), notNullValue())
+       }
+
 }