c4063cb99802afd5a55d1189d362227f09629bfb
[rhynodge.git] / src / test / kotlin / net / pterodactylus / rhynodge / webpages / weather / WeatherTriggerTest.kt
1 package net.pterodactylus.rhynodge.webpages.weather
2
3 import net.pterodactylus.rhynodge.State
4 import org.hamcrest.MatcherAssert.assertThat
5 import org.hamcrest.Matchers.`is`
6 import org.junit.Test
7 import java.time.ZoneId.of
8 import java.time.ZonedDateTime
9
10 /**
11  * Unit test for [WeatherTrigger].
12
13  * @author [David ‘Bombe’ Roden](mailto:bombe@pterodactylus.net)
14  */
15 class WeatherTriggerTest {
16
17     private val now = ZonedDateTime.now(of("Europe/Berlin"))
18     private val previousState = WeatherState("Weather", now.minusDays(1))
19     private val trigger = WeatherTrigger()
20
21     @Test
22     fun currentStateIsAlwaysReturned() {
23         val currentState = WeatherState("Weather", now)
24         assertThat(trigger.mergeStates(previousState, currentState), `is`(currentState as State))
25     }
26
27     @Test
28     fun triggerDoesNotTriggerIfStateHasNotChanged() {
29         val currentState = WeatherState("Weather", now.minusDays(1))
30         trigger.mergeStates(previousState, currentState)
31         assertThat(trigger.triggers(), `is`(false))
32     }
33
34     @Test
35     fun triggerDoesTriggerIfStateHasChanged() {
36         val currentState = WeatherState("Weather", now)
37         trigger.mergeStates(previousState, currentState)
38         assertThat(trigger.triggers(), `is`(true))
39     }
40
41 }