Add dependency injection tests for bookmark page
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 2 Feb 2017 20:58:02 +0000 (21:58 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 2 Feb 2017 20:58:02 +0000 (21:58 +0100)
src/main/kotlin/net/pterodactylus/sone/web/BookmarkPage.kt
src/test/kotlin/net/pterodactylus/sone/web/BookmarkPageTest.kt

index 3eac0aa..9227971 100644 (file)
@@ -4,11 +4,14 @@ import net.pterodactylus.sone.web.page.FreenetRequest
 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) {
index bebe10c..bbbe6ef 100644 (file)
@@ -1,10 +1,14 @@
 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
@@ -53,4 +57,16 @@ class BookmarkPageTest : WebPageTest() {
                }
        }
 
+       @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))
+       }
+
 }