🐛 Let last-state merged state always trigger
[rhynodge.git] / src / test / kotlin / net / pterodactylus / rhynodge / mergers / LastStateMergerTest.kt
1 package net.pterodactylus.rhynodge.mergers
2
3 import net.pterodactylus.rhynodge.State
4 import net.pterodactylus.rhynodge.states.StateManagerTest.TestState
5 import org.hamcrest.MatcherAssert.assertThat
6 import org.hamcrest.Matchers.equalTo
7 import org.junit.Test
8
9 class LastStateMergerTest {
10
11         @Test
12         fun `merging states returns the current state`() {
13                 val mergedState = merger.mergeStates(previousState, successfulState)
14                 assertThat(mergedState.time(), equalTo(successfulState.time()))
15                 assertThat(mergedState.success(), equalTo(successfulState.success()))
16                 assertThat(mergedState.failCount(), equalTo(successfulState.failCount()))
17                 assertThat(mergedState.exception(), equalTo(successfulState.exception()))
18         }
19
20         @Test
21         fun `returned state is always triggered`() {
22                 assertThat(merger.mergeStates(previousState, successfulState).triggered(), equalTo(true))
23         }
24
25         private val merger = LastStateMerger()
26         private val previousState = TestState(false)
27         private val successfulState: State = TestState(true)
28
29 }