-
Notifications
You must be signed in to change notification settings - Fork 1
/
ResetterFlags.kt
74 lines (67 loc) · 3.03 KB
/
ResetterFlags.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
package org.kollektions.examples.basics
import org.kollektions.consumers.Consumer
import org.kollektions.consumers.asList
import org.kollektions.consumers.consume
import org.kollektions.dispatchers.consumeWithResetting
import kotlin.test.Test
import kotlin.test.assertEquals
class ResetterFlags {
private val commands = listOf("right", "left", "stop", "up")
val intermediateResultsTransformer = { intermediateConsumers: List<Consumer<String>> -> intermediateConsumers[0].results() }
@Test
fun `no flags set`() {
val actual = commands.consume(
consumeWithResetting(
intermediateConsumersFactory = { listOf(asList<String>()) },
resetTrigger = { _: List<Consumer<String>>, value: String -> value == "stop" },
intermediateResultsTransformer = intermediateResultsTransformer,
finalConsumer = asList()
))
println(actual)
val expected = listOf(listOf("right", "left"), listOf("stop", "up"))
assertEquals(expected, actual[0])
}
@Test
fun `keepValueThatTriggeredReset is true`() {
val actual = commands.consume(
consumeWithResetting(
intermediateConsumersFactory = { listOf(asList<String>()) },
resetTrigger = { _: List<Consumer<String>>, value: String -> value == "stop" },
intermediateResultsTransformer = intermediateResultsTransformer,
finalConsumer = asList(),
keepValueThatTriggeredReset = true
))
println(actual)
val expected = listOf(listOf("right", "left", "stop"), listOf("up"))
assertEquals(expected, actual[0])
}
@Test
fun `repeatLastValueInNewSeries is true`() {
val actual = commands.consume(
consumeWithResetting(
intermediateConsumersFactory = { listOf(asList<String>()) },
resetTrigger = { _: List<Consumer<String>>, value: String -> value == "stop" },
intermediateResultsTransformer = intermediateResultsTransformer,
finalConsumer = asList(),
repeatLastValueInNewSeries = true
))
println(actual)
val expected = listOf(listOf("right", "left"), listOf("left", "stop", "up"))
assertEquals(expected, actual[0])
}
@Test
fun `keepValueThatTriggeredReset and repeatLastValueInNewSeries are both true`() {
val actual = commands.consume(
consumeWithResetting(
intermediateConsumersFactory = { listOf(asList<String>()) },
resetTrigger = { _: List<Consumer<String>>, value: String -> value == "stop" },
intermediateResultsTransformer = intermediateResultsTransformer,
finalConsumer = asList(),
repeatLastValueInNewSeries = true,
keepValueThatTriggeredReset = true
))
println(actual)
val expected = listOf(listOf("right", "left", "stop"), listOf("stop", "up"))
assertEquals(expected, actual[0])
}
}