X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fajax%2FGetPostAjaxPageTest.kt;h=9597b37166d7877f9abe969e50a46d387222f897;hb=bf509980d5097e67d1a32f6b53bef052b396137f;hp=768a1860862bee63506f7dd76126d85508c55cd5;hpb=613d9d78ad0382c6efb834bdf0a479737b59dc0e;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/ajax/GetPostAjaxPageTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/ajax/GetPostAjaxPageTest.kt index 768a186..9597b37 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/ajax/GetPostAjaxPageTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/ajax/GetPostAjaxPageTest.kt @@ -2,27 +2,32 @@ package net.pterodactylus.sone.web.ajax 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.utils.asTemplate +import net.pterodactylus.sone.web.baseInjector import net.pterodactylus.util.template.ReflectionAccessor +import net.pterodactylus.util.template.TemplateContextFactory import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.notNullValue import org.junit.Test /** * Unit test for [GetPostAjaxPage]. */ -class GetPostAjaxPageTest : JsonPageTest("getPost.ajax", needsFormPassword = false, - pageSupplier = { webInterface -> - GetPostAjaxPage(webInterface, "<%core>\n<%request>\n<%post.text>\n<%currentSone>\n<%localSones>".asTemplate()) - }) { +class GetPostAjaxPageTest : JsonPageTest("getPost.ajax", needsFormPassword = false) { + + private val templateContextFactory = TemplateContextFactory().apply { + addAccessor(Any::class.java, ReflectionAccessor()) + } + override val page: JsonPage by lazy { GetPostAjaxPage(webInterface, templateContextFactory, "<%core>\n<%request>\n<%post.text>\n<%currentSone>\n<%localSones>".asTemplate()) } @Test fun `request with missing post results in invalid-post-id`() { - assertThat(json.isSuccess, equalTo(false)) - assertThat(json.error, equalTo("invalid-post-id")) + assertThatJsonFailed("invalid-post-id") } @Test @@ -35,15 +40,14 @@ class GetPostAjaxPageTest : JsonPageTest("getPost.ajax", needsFormPassword = fal whenever(recipientId).thenReturn("recipient-id".asOptional()) whenever(text).thenReturn("post text") } - webInterface.templateContextFactory.addAccessor(Any::class.java, ReflectionAccessor()) addPost(post) addRequestParameter("post", "post-id") - assertThat(json.isSuccess, equalTo(true)) - assertThat(json["post"]["id"].asText(), equalTo("post-id")) - assertThat(json["post"]["time"].asLong(), equalTo(1000L)) - assertThat(json["post"]["sone"].asText(), equalTo("sone-id")) - assertThat(json["post"]["recipient"].asText(), equalTo("recipient-id")) - assertThat(json["post"]["html"].asText(), equalTo(listOf( + assertThatJsonIsSuccessful() + assertThat(json["post"]!!["id"].asText(), equalTo("post-id")) + assertThat(json["post"]!!["time"].asLong(), equalTo(1000L)) + assertThat(json["post"]!!["sone"].asText(), equalTo("sone-id")) + assertThat(json["post"]!!["recipient"].asText(), equalTo("recipient-id")) + assertThat(json["post"]!!["html"].asText(), equalTo(listOf( core.toString(), freenetRequest.toString(), "post text", @@ -52,4 +56,9 @@ class GetPostAjaxPageTest : JsonPageTest("getPost.ajax", needsFormPassword = fal ).joinToString("\n"))) } + @Test + fun `page can be created dependency injection`() { + assertThat(baseInjector.getInstance(), notNullValue()) + } + }