X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2Fnotification%2FSoneLockedHandlerTest.kt;h=4003dbbfc0daa40c5824504359deeed1110d51a0;hp=191168ec7d8478fed97ba2dd939994e9a29aa088;hb=438378deab1514f0f608d975ef65f5b7aea44ccb;hpb=c6be19f98cc713a88954c7705495dc6eb775c32f diff --git a/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedHandlerTest.kt b/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedHandlerTest.kt index 191168e..4003dbb 100644 --- a/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedHandlerTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/web/notification/SoneLockedHandlerTest.kt @@ -1,5 +1,5 @@ /** - * Sone - SoneLockedHandlerTest.kt - Copyright © 2019 David ‘Bombe’ Roden + * Sone - SoneLockedHandlerTest.kt - Copyright © 2019–2020 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 @@ -22,6 +22,7 @@ import net.pterodactylus.sone.core.event.* import net.pterodactylus.sone.data.* import net.pterodactylus.sone.data.impl.* import net.pterodactylus.sone.notify.* +import net.pterodactylus.sone.utils.* import net.pterodactylus.util.notify.* import net.pterodactylus.util.template.* import org.hamcrest.MatcherAssert.* @@ -62,14 +63,14 @@ class SoneLockedHandlerTest { @Test fun `notification is added to notification manager from command`() { eventBus.post(SoneLockedEvent(sone)) - executor.scheduledDelay.single().command.run() + executor.scheduleds.single().command() assertThat(notificationManager.notifications, contains(notification)) } @Test fun `command is registered with a delay of five minutes`() { eventBus.post(SoneLockedEvent(sone)) - with(executor.scheduledDelay.single()) { + with(executor.scheduleds.single()) { assertThat(timeUnit.toNanos(delay), equalTo(TimeUnit.MINUTES.toNanos(5))) } } @@ -78,7 +79,7 @@ class SoneLockedHandlerTest { fun `unlocking sone after locking will cancel the future`() { eventBus.post(SoneLockedEvent(sone)) eventBus.post(SoneUnlockedEvent(sone)) - assertThat(executor.scheduledDelay.first().future.isCancelled, equalTo(true)) + assertThat(executor.scheduleds.first().future.isCancelled, equalTo(true)) } @Test @@ -91,7 +92,7 @@ class SoneLockedHandlerTest { @Test fun `unlocking sone after showing the notification will remove the sone from the notification`() { eventBus.post(SoneLockedEvent(sone)) - executor.scheduledDelay.single().command.run() + executor.scheduleds.single().command() eventBus.post(SoneUnlockedEvent(sone)) assertThat(notification.elements, emptyIterable()) } @@ -100,28 +101,16 @@ class SoneLockedHandlerTest { fun `locking two sones will cancel the first command`() { eventBus.post(SoneLockedEvent(sone)) eventBus.post(SoneLockedEvent(sone)) - assertThat(executor.scheduledDelay.first().future.isCancelled, equalTo(true)) + assertThat(executor.scheduleds.first().future.isCancelled, equalTo(true)) } @Test fun `locking two sones will schedule a second command`() { eventBus.post(SoneLockedEvent(sone)) eventBus.post(SoneLockedEvent(sone)) - assertThat(executor.scheduledDelay[1], notNullValue()) + assertThat(executor.scheduleds[1], notNullValue()) } } private val sone: Sone = IdOnlySone("sone") - -private data class Scheduled(val command: Runnable, val delay: Long, val timeUnit: TimeUnit, val future: ScheduledFuture<*>) - -private class TestScheduledThreadPoolExecutor : ScheduledThreadPoolExecutor(1) { - - val scheduledDelay = mutableListOf() - - override fun schedule(command: Runnable, delay: Long, unit: TimeUnit): ScheduledFuture<*> = - super.schedule(command, delay, unit) - .also { scheduledDelay += Scheduled(command, delay, unit, it) } - -}