1 package net.pterodactylus.rhynodge.webpages.weather
3 import net.pterodactylus.rhynodge.State
4 import org.hamcrest.MatcherAssert.assertThat
5 import org.hamcrest.Matchers.`is`
7 import java.time.ZoneId.of
8 import java.time.ZonedDateTime
11 * Unit test for [WeatherTrigger].
13 * @author [David ‘Bombe’ Roden](mailto:bombe@pterodactylus.net)
15 class WeatherTriggerTest {
17 private val now = ZonedDateTime.now(of("Europe/Berlin"))
18 private val previousState = WeatherState("Weather", now.minusDays(1))
19 private val trigger = WeatherTrigger()
22 fun currentStateIsAlwaysReturned() {
23 val currentState = WeatherState("Weather", now)
24 assertThat(trigger.mergeStates(previousState, currentState), `is`(currentState as State))
28 fun triggerDoesNotTriggerIfStateHasNotChanged() {
29 val currentState = WeatherState("Weather", now.minusDays(1))
30 trigger.mergeStates(previousState, currentState)
31 assertThat(trigger.triggers(), `is`(false))
35 fun triggerDoesTriggerIfStateHasChanged() {
36 val currentState = WeatherState("Weather", now)
37 trigger.mergeStates(previousState, currentState)
38 assertThat(trigger.triggers(), `is`(true))