✨ Use @TemplatePath annotations on most pages
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / web / pages / AboutPageTest.kt
index 93672a1..a2fd178 100644 (file)
@@ -1,23 +1,25 @@
 package net.pterodactylus.sone.web.pages
 
-import net.pterodactylus.sone.main.SonePlugin.PluginHomepage
-import net.pterodactylus.sone.main.SonePlugin.PluginVersion
-import net.pterodactylus.sone.main.SonePlugin.PluginYear
-import net.pterodactylus.sone.web.pages.WebPageTest
-import net.pterodactylus.sone.web.pages.AboutPage
+import net.pterodactylus.sone.main.*
+import net.pterodactylus.sone.test.getInstance
+import net.pterodactylus.sone.test.isProvidedByMock
+import net.pterodactylus.sone.web.baseInjector
+import net.pterodactylus.sone.web.page.*
 import org.hamcrest.MatcherAssert.assertThat
 import org.hamcrest.Matchers.equalTo
+import org.hamcrest.Matchers.notNullValue
 import org.junit.Test
 
 /**
  * Unit test for [AboutPage].
  */
-class AboutPageTest: WebPageTest() {
+class AboutPageTest : WebPageTest({ template, webInterface, loaders, templateRenderer -> AboutPage(template, webInterface, loaders, templateRenderer, PluginVersion(version), PluginYear(year), PluginHomepage(homepage)) }) {
 
-       private val version = "0.1.2"
-       private val year = 1234
-       private val homepage = "home://page"
-       private val page = AboutPage(template, webInterface, PluginVersion(version), PluginYear(year), PluginHomepage(homepage))
+       companion object {
+               private const val version = "0.1.2"
+               private const val year = 1234
+               private const val homepage = "home://page"
+       }
 
        @Test
        fun `page returns correct path`() {
@@ -47,4 +49,24 @@ class AboutPageTest: WebPageTest() {
                assertThat(templateContext["year"], equalTo<Any>(year))
        }
 
+       @Test
+       fun `about page can be created by dependency injection`() {
+               val injector = baseInjector.createChildInjector(
+                               PluginVersion::class.isProvidedByMock(),
+                               PluginYear::class.isProvidedByMock(),
+                               PluginHomepage::class.isProvidedByMock()
+               )
+               assertThat(injector.getInstance<AboutPage>(), notNullValue())
+       }
+
+       @Test
+       fun `page is annotated with correct menuname`() {
+           assertThat(page.menuName, equalTo("About"))
+       }
+
+       @Test
+       fun `page is annotated with correct template path`() {
+           assertThat(page.templatePath, equalTo("/templates/about.html"))
+       }
+
 }