X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FNotificationHandlerModuleTest.kt;h=b84b3ee3a330de7fc808e26138137a510d39de6e;hb=1ad1aae2e29c608c5e1ab89e125bf2267fed18c6;hp=1410ed3d67163fe8945d683f45671ef862d37bd1;hpb=6fd3d46cae8b06225c862a8b5d0a6aef35328e21;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt index 1410ed3..b84b3ee 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/NotificationHandlerModuleTest.kt @@ -34,6 +34,7 @@ import org.hamcrest.MatcherAssert.* import org.hamcrest.Matchers.* import org.mockito.Mockito.* import java.io.* +import java.util.concurrent.* import kotlin.test.* /** @@ -42,12 +43,14 @@ import kotlin.test.* class NotificationHandlerModuleTest { private val core = mock() + private val ticker = mock() private val notificationManager = NotificationManager() private val loaders = TestLoaders() private val injector: Injector = createInjector( Core::class.isProvidedBy(core), NotificationManager::class.isProvidedBy(notificationManager), Loaders::class.isProvidedBy(loaders), + ScheduledExecutorService::class.withNameIsProvidedBy(ticker, "notification"), NotificationHandlerModule() ) @@ -316,4 +319,85 @@ class NotificationHandlerModuleTest { injector.verifySingletonInstance() } + @Test + fun `first-start notification is created as singleton`() { + injector.verifySingletonInstance(named("firstStart")) + } + + @Test + fun `first-start notification has correct ID`() { + assertThat(injector.getInstance(named("firstStart")).id, equalTo("first-start-notification")) + } + + @Test + fun `first-start notification is dismissable`() { + assertThat(injector.getInstance(named("firstStart")).isDismissable, equalTo(true)) + } + + @Test + fun `first-start notification loads correct template`() { + loaders.templates += "/templates/notify/firstStartNotification.html" to "1".asTemplate() + val notification = injector.getInstance(named("firstStart")) + assertThat(notification.render(), equalTo("1")) + } + + @Test + fun `first-start handler is created as singleton`() { + injector.verifySingletonInstance() + } + + @Test + fun `config-not-read notification is created as singleton`() { + injector.verifySingletonInstance(named("configNotRead")) + } + + @Test + fun `config-not-read notification has correct ID `() { + assertThat(injector.getInstance(named("configNotRead")).id, equalTo("config-not-read-notification")) + } + + @Test + fun `config-not-read notification is dismissable`() { + assertThat(injector.getInstance(named("configNotRead")).isDismissable, equalTo(true)) + } + + @Test + fun `config-not-read notification loads correct template`() { + loaders.templates += "/templates/notify/configNotReadNotification.html" to "1".asTemplate() + val notification = injector.getInstance(named("configNotRead")) + assertThat(notification.render(), equalTo("1")) + } + + @Test + fun `config-not-read handler is created as singleton`() { + injector.verifySingletonInstance() + } + + @Test + fun `startup notification can be created`() { + injector.verifySingletonInstance(named("startup")) + } + + @Test + fun `startup notification has correct ID`() { + assertThat(injector.getInstance(named("startup")).id, equalTo("startup-notification")) + } + + @Test + fun `startup notification is dismissable`() { + assertThat(injector.getInstance(named("startup")).isDismissable, equalTo(true)) + } + + @Test + fun `startup notification loads correct template`() { + loaders.templates += "/templates/notify/startupNotification.html" to "1".asTemplate() + val notification = injector.getInstance(named("startup")) + assertThat(notification.render(), equalTo("1")) + } + + @Test + fun `startup handler is created as singleton`() { + injector.verifySingletonInstance() + } + }