1 package net.pterodactylus.rhynodge.triggers
3 import net.pterodactylus.rhynodge.Reaction
4 import net.pterodactylus.rhynodge.State
5 import net.pterodactylus.rhynodge.states.FailedState
6 import net.pterodactylus.rhynodge.states.StateManagerTest.TestState
7 import net.pterodactylus.rhynodge.testAction
8 import net.pterodactylus.rhynodge.testQuery
9 import org.hamcrest.MatcherAssert.assertThat
10 import org.hamcrest.Matchers.equalTo
11 import org.hamcrest.Matchers.sameInstance
14 class AlwaysTriggerTest {
17 fun `merging states returns the current state`() {
18 assertThat(trigger.mergeStates(previousState, successfulState), sameInstance(successfulState))
22 fun `successful state triggers`() {
23 trigger.mergeStates(previousState, successfulState)
24 assertThat(trigger.triggers(), equalTo(true))
28 fun `failed state also triggers`() {
29 trigger.mergeStates(previousState, failedState)
30 assertThat(trigger.triggers(), equalTo(true))
34 @Suppress("NonAsciiCharacters")
35 fun `output returns “true” for plain text`() {
36 trigger.mergeStates(previousState, successfulState)
37 val output = trigger.output(Reaction("Test", testQuery(), trigger, testAction()))
38 assertThat(output.text("text/plain"), equalTo("true"))
42 fun `output returns true in a div for html`() {
43 trigger.mergeStates(previousState, successfulState)
44 val output = trigger.output(Reaction("Test", testQuery(), trigger, testAction()))
45 assertThat(output.text("text/html"), equalTo("<div>true</div>"))
48 private val trigger = AlwaysTrigger()
49 private val previousState = TestState()
50 private val successfulState: State = TestState()
51 private val failedState: State = FailedState()