import net.pterodactylus.util.template.Template
import net.pterodactylus.util.template.TemplateContext
import net.pterodactylus.util.web.Method.POST
+import javax.inject.Inject
+import javax.inject.Singleton
/**
* Page that lets the user bookmark a post.
*/
-class BookmarkPage(template: Template, webInterface: WebInterface)
+@Singleton
+class BookmarkPage @Inject constructor(template: Template, webInterface: WebInterface)
: SoneTemplatePage("bookmark.html", template, "Page.Bookmark.Title", webInterface) {
override fun handleRequest(freenetRequest: FreenetRequest, templateContext: TemplateContext) {
package net.pterodactylus.sone.web
+import com.google.inject.Guice
import net.pterodactylus.sone.data.Post
+import net.pterodactylus.sone.test.getInstance
import net.pterodactylus.sone.test.mock
import net.pterodactylus.util.web.Method.POST
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
+import org.hamcrest.Matchers.sameInstance
import org.junit.Test
import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito.never
}
}
+ @Test
+ fun `bookmark page can be created by guice`() {
+ assertThat(injector.getInstance<BookmarkPage>(), notNullValue())
+ }
+
+ @Test
+ fun `bookmark page is created as singleton`() {
+ val firstInstance = injector.getInstance<BookmarkPage>()
+ val secondInstance = injector.getInstance<BookmarkPage>()
+ assertThat(firstInstance, sameInstance(secondInstance))
+ }
+
}