package net.pterodactylus.sone.template
import com.google.common.base.Optional.of
+import com.google.inject.Guice
import net.pterodactylus.sone.core.Core
import net.pterodactylus.sone.data.Sone
+import net.pterodactylus.sone.test.getInstance
+import net.pterodactylus.sone.test.isProvidedByMock
import net.pterodactylus.sone.test.mock
import net.pterodactylus.sone.text.SoneTextParser
import net.pterodactylus.sone.text.SoneTextParserContext
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.`is`
import org.hamcrest.Matchers.emptyIterable
+import org.hamcrest.Matchers.notNullValue
+import org.hamcrest.Matchers.sameInstance
import org.junit.Test
import org.mockito.ArgumentCaptor.forClass
import org.mockito.Mockito.`when`
assertThat(context.value.postingSone, `is`(sone))
}
+ @Test
+ fun `parser filter can be created by guice`() {
+ val injector = Guice.createInjector(
+ Core::class.isProvidedByMock(),
+ SoneTextParser::class.isProvidedByMock()
+ )
+ assertThat(injector.getInstance<ParserFilter>(), notNullValue())
+ }
+
+ @Test
+ fun `parser filter is created as singleton`() {
+ val injector = Guice.createInjector(
+ Core::class.isProvidedByMock(),
+ SoneTextParser::class.isProvidedByMock()
+ )
+ val firstInstance = injector.getInstance<ParserFilter>()
+ val secondInstance = injector.getInstance<ParserFilter>()
+ assertThat(firstInstance, sameInstance(secondInstance))
+
+ }
+
}