X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FSoneLockedOnStartupHandlerTest.kt;fp=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FSoneLockedOnStartupHandlerTest.kt;h=0b9d1e147019ae05946520e6e203c9f057bca05b;hb=3bc31a49282a7c3737e330e03723aac7464be71e;hp=0000000000000000000000000000000000000000;hpb=a5e615d5726033cec37a1ebd3e00f880e765d16d;p=Sone.git
diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedOnStartupHandlerTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedOnStartupHandlerTest.kt
new file mode 100644
index 0000000..0b9d1e1
--- /dev/null
+++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedOnStartupHandlerTest.kt
@@ -0,0 +1,63 @@
+/**
+ * Sone - SoneLockedOnStartupNotificationTest.kt - Copyright © 2019 David âBombeâ Roden
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+package net.pterodactylus.sone.web.notification
+
+import com.google.common.eventbus.*
+import net.pterodactylus.sone.core.event.*
+import net.pterodactylus.sone.data.impl.*
+import net.pterodactylus.sone.notify.*
+import net.pterodactylus.sone.utils.*
+import net.pterodactylus.util.notify.*
+import org.hamcrest.MatcherAssert.*
+import org.hamcrest.Matchers.*
+import kotlin.test.*
+
+/**
+ * Unit test for [SoneLockedOnStartupHandler].
+ */
+class SoneLockedOnStartupHandlerTest {
+
+ @Suppress("UnstableApiUsage")
+ private val eventBus = EventBus()
+ private val manager = NotificationManager()
+ private val notification by lazy { manager.notifications.single() as ListNotification<*> }
+
+ init {
+ SoneLockedOnStartupHandler(manager, template).also(eventBus::register)
+ eventBus.post(SoneLockedOnStartup(sone))
+ }
+
+ @Test
+ fun `notification has correct id`() {
+ assertThat(notification.id, equalTo("sone-locked-on-startup"))
+ }
+
+ @Test
+ fun `handler adds sone to notification when event is posted`() {
+ assertThat(notification.elements, contains(sone))
+ }
+
+ @Test
+ fun `handler creates notification with correct key`() {
+ assertThat(notification.render(), equalTo(listOf(sone).toString()))
+ }
+
+}
+
+private val sone = IdOnlySone("sone-id")
+private val template = "<% sones>".asTemplate()