🚚 Move verification method to Guice helpers
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Mon, 2 Dec 2019 20:40:16 +0000 (21:40 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Wed, 11 Dec 2019 15:58:58 +0000 (16:58 +0100)
src/test/kotlin/net/pterodactylus/sone/main/FreenetModuleTest.kt
src/test/kotlin/net/pterodactylus/sone/test/Guice.kt
src/test/kotlin/net/pterodactylus/sone/web/WebInterfaceModuleTest.kt

index e94e34e..c6aed88 100644 (file)
@@ -34,12 +34,6 @@ class FreenetModuleTest {
        private val module = FreenetModule(pluginRespirator)
        private val injector = Guice.createInjector(module)
 
-       private inline fun <reified T : Any> verifySingletonInstance() {
-               val firstInstance = injector.getInstance<T>()
-               val secondInstance = injector.getInstance<T>()
-               assertThat(firstInstance, sameInstance(secondInstance))
-       }
-
        @Test
        fun `plugin respirator is not bound`() {
                expectedException.expect(Exception::class.java)
@@ -53,7 +47,7 @@ class FreenetModuleTest {
 
        @Test
        fun `node is returned as singleton`() {
-               verifySingletonInstance<Node>()
+               injector.verifySingletonInstance<Node>()
        }
 
        @Test
@@ -63,7 +57,7 @@ class FreenetModuleTest {
 
        @Test
        fun `high level simply client is returned as singleton`() {
-               verifySingletonInstance<HighLevelSimpleClient>()
+               injector.verifySingletonInstance<HighLevelSimpleClient>()
        }
 
        @Test
@@ -73,7 +67,7 @@ class FreenetModuleTest {
 
        @Test
        fun `session manager is returned as singleton`() {
-               verifySingletonInstance<SessionManager>()
+               injector.verifySingletonInstance<SessionManager>()
                verify(pluginRespirator).getSessionManager("Sone")
        }
 
@@ -84,7 +78,7 @@ class FreenetModuleTest {
 
        @Test
        fun `toadlet container is returned as singleten`() {
-               verifySingletonInstance<ToadletContainer>()
+               injector.verifySingletonInstance<ToadletContainer>()
        }
 
        @Test
@@ -94,7 +88,7 @@ class FreenetModuleTest {
 
        @Test
        fun `page maker is returned as singleton`() {
-               verifySingletonInstance<PageMaker>()
+               injector.verifySingletonInstance<PageMaker>()
        }
 
        @Test
@@ -106,7 +100,7 @@ class FreenetModuleTest {
 
        @Test
        fun `plugin respirator facade is returned as singleton`() {
-               verifySingletonInstance<PluginRespiratorFacade>()
+               injector.verifySingletonInstance<PluginRespiratorFacade>()
        }
 
        @Test
@@ -116,7 +110,7 @@ class FreenetModuleTest {
 
        @Test
        fun `plugin connector facade is returned as singleton`() {
-               verifySingletonInstance<PluginConnector>()
+               injector.verifySingletonInstance<PluginConnector>()
        }
 
 }
index c8f2417..a4ae1d5 100644 (file)
@@ -2,6 +2,8 @@ package net.pterodactylus.sone.test
 
 import com.google.inject.*
 import com.google.inject.name.*
+import org.hamcrest.MatcherAssert.*
+import org.hamcrest.Matchers.*
 import org.mockito.*
 import javax.inject.Provider
 import kotlin.reflect.*
@@ -17,6 +19,13 @@ inline fun <reified T : Any> Injector.getInstance(annotation: Annotation? = null
                ?.let { getInstance(Key.get(object : TypeLiteral<T>() {}, it)) }
                ?: getInstance(Key.get(object : TypeLiteral<T>() {}))
 
+
+inline fun <reified T : Any> Injector.verifySingletonInstance() {
+       val firstInstance = getInstance<T>()
+       val secondInstance = getInstance<T>()
+       assertThat(firstInstance, sameInstance(secondInstance))
+}
+
 fun <T : Any> supply(javaClass: Class<T>): Source<T> = object : Source<T> {
        override fun fromInstance(instance: T) = Module { it.bind(javaClass).toInstance(instance) }
        override fun byInstance(instance: T) = Module { it.bind(javaClass).toProvider(Provider<T> { instance }) }
index c03d9f8..53dc19d 100644 (file)
@@ -256,9 +256,7 @@ class WebInterfaceModuleTest {
 
        @Test
        fun `template context factory is created as singleton`() {
-           val factory1 = injector.getInstance<TemplateContextFactory>()
-           val factory2 = injector.getInstance<TemplateContextFactory>()
-               assertThat(factory1, sameInstance(factory2))
+               injector.verifySingletonInstance<TemplateContextFactory>()
        }
 
        @Test
@@ -285,9 +283,7 @@ class WebInterfaceModuleTest {
 
        @Test
        fun `notification manager is created as singleton`() {
-               val firstNotificationManager = injector.getInstance<NotificationManager>()
-               val secondNotificationManager = injector.getInstance<NotificationManager>()
-               assertThat(firstNotificationManager, sameInstance(secondNotificationManager))
+               injector.verifySingletonInstance<NotificationManager>()
        }
 
        @Test
@@ -297,9 +293,7 @@ class WebInterfaceModuleTest {
 
        @Test
        fun `notification handler is created as singleton`() {
-               val firstNotificationHandler = injector.getInstance<NotificationHandler>()
-               val secondNotificationHandler = injector.getInstance<NotificationHandler>()
-               assertThat(firstNotificationHandler, sameInstance(secondNotificationHandler))
+               injector.verifySingletonInstance<NotificationHandler>()
        }
 
 }