🚧 Change rescheduling method
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 12 Dec 2019 19:02:56 +0000 (20:02 +0100)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 12 Dec 2019 19:02:56 +0000 (20:02 +0100)
src/main/kotlin/net/pterodactylus/sone/freenet/wot/WebOfTrustPinger.kt
src/test/kotlin/net/pterodactylus/sone/freenet/wot/WebOfTrustPingerTest.kt

index 9d0522d..026389f 100644 (file)
@@ -22,6 +22,7 @@ import net.pterodactylus.sone.core.event.*
 import net.pterodactylus.sone.freenet.plugin.*
 import net.pterodactylus.sone.utils.*
 import java.util.concurrent.atomic.*
+import java.util.function.*
 import javax.inject.*
 
 /**
@@ -32,7 +33,7 @@ import javax.inject.*
 class WebOfTrustPinger @Inject constructor(
                private val eventBus: EventBus,
                @Named("webOfTrustReacher") private val webOfTrustReacher: Runnable,
-               @Named("webOfTrustReschedule") private val reschedule: Runnable) : Runnable {
+               @Named("webOfTrustReschedule") private val reschedule: Consumer<Runnable>) : Runnable {
 
        private val lastState = AtomicBoolean(false)
 
@@ -49,7 +50,7 @@ class WebOfTrustPinger @Inject constructor(
                                lastState.set(false)
                        }
                }
-               reschedule()
+               reschedule(this)
        }
 
 }
index 9743449..cbd9172 100644 (file)
@@ -24,6 +24,7 @@ import net.pterodactylus.sone.utils.*
 import org.hamcrest.MatcherAssert.*
 import org.hamcrest.Matchers.*
 import java.util.concurrent.atomic.*
+import java.util.function.*
 import kotlin.test.*
 
 /**
@@ -35,7 +36,7 @@ class WebOfTrustPingerTest {
        private val webOfTrustReachable = AtomicBoolean()
        private val webOfTrustReacher = Runnable { webOfTrustReachable.get().onFalse { throw PluginException() } }
        private val rescheduled = AtomicBoolean()
-       private val reschedule = Runnable { rescheduled.set(true) }
+       private val reschedule: Consumer<Runnable> = Consumer { if (it == pinger) rescheduled.set(true) }
        private val pinger = WebOfTrustPinger(eventBus, webOfTrustReacher, reschedule)
 
        @Test