import net.pterodactylus.sone.data.PostReply
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.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 [GetReplyAjaxPage].
*/
-class GetReplyAjaxPageTest : JsonPageTest("getReply.ajax", needsFormPassword = false,
- pageSupplier = { webInterface ->
- GetReplyAjaxPage(webInterface, "<%core>\n<%request>\n<%reply.text>\n<%currentSone>".asTemplate())
- }) {
+class GetReplyAjaxPageTest : JsonPageTest("getReply.ajax", needsFormPassword = false) {
+
+ private val templateContextFactory = TemplateContextFactory().apply {
+ addAccessor(Any::class.java, ReflectionAccessor())
+ }
+ override val page: JsonPage by lazy { GetReplyAjaxPage(webInterface, templateContextFactory, "<%core>\n<%request>\n<%reply.text>\n<%currentSone>".asTemplate()) }
@Test
fun `request without reply id results in invalid-reply-id`() {
- assertThat(json.isSuccess, equalTo(false))
- assertThat(json.error, equalTo("invalid-reply-id"))
+ assertThatJsonFailed("invalid-reply-id")
}
@Test
whenever(time).thenReturn(1000)
whenever(text).thenReturn("reply text")
}
- webInterface.templateContextFactory.addAccessor(Any::class.java, ReflectionAccessor())
addReply(reply)
addRequestParameter("reply", "reply-id")
- assertThat(json.isSuccess, equalTo(true))
+ assertThatJsonIsSuccessful()
assertThat(json["reply"]!!["id"].asText(), equalTo("reply-id"))
assertThat(json["reply"]!!["soneId"].asText(), equalTo("sone-id"))
assertThat(json["reply"]!!["postId"].asText(), equalTo("post-id"))
).joinToString("\n")))
}
+ @Test
+ fun `page can be created by dependency injection`() {
+ assertThat(baseInjector.getInstance<GetReplyAjaxPage>(), notNullValue())
+ }
+
}