♻️ Move output generation to state
[rhynodge.git] / src / test / kotlin / net / pterodactylus / rhynodge / triggers / AlwaysTriggerTest.kt
1 package net.pterodactylus.rhynodge.triggers
2
3 import net.pterodactylus.rhynodge.State
4 import net.pterodactylus.rhynodge.states.FailedState
5 import net.pterodactylus.rhynodge.states.StateManagerTest.TestState
6 import org.hamcrest.MatcherAssert.assertThat
7 import org.hamcrest.Matchers.equalTo
8 import org.hamcrest.Matchers.sameInstance
9 import org.junit.Test
10
11 class AlwaysTriggerTest {
12
13         @Test
14         fun `merging states returns the current state`() {
15                 assertThat(trigger.mergeStates(previousState, successfulState), sameInstance(successfulState))
16         }
17
18         @Test
19         fun `successful state triggers`() {
20                 trigger.mergeStates(previousState, successfulState)
21                 assertThat(trigger.triggers(), equalTo(true))
22         }
23
24         @Test
25         fun `failed state also triggers`() {
26                 trigger.mergeStates(previousState, failedState)
27                 assertThat(trigger.triggers(), equalTo(true))
28         }
29
30         private val trigger = AlwaysTrigger()
31         private val previousState = TestState()
32         private val successfulState: State = TestState()
33         private val failedState: State = FailedState()
34
35 }