Skip to content

Commit d992aab

Browse files
committed
Listener: migrated to test, refactored running code
1 parent ec97eb8 commit d992aab

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

patterns/src/test/kotlin/Listener.kt

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,41 @@
1+
import org.assertj.core.api.Assertions.assertThat
2+
import org.junit.jupiter.api.Test
13
import kotlin.properties.Delegates
24

35
interface TextChangedListener {
4-
fun onTextChanged(newText: String)
6+
7+
fun onTextChanged(oldText: String, newText: String)
58
}
69

710
class PrintingTextChangedListener : TextChangedListener {
8-
override fun onTextChanged(newText: String) = println("Text is changed to: $newText")
11+
12+
override fun onTextChanged(oldText: String, newText: String) =
13+
println("Text is changed $oldText -> $newText")
914
}
1015

1116
class TextView {
1217

1318
var listener: TextChangedListener? = null
1419

15-
var text: String by Delegates.observable("") { prop, old, new ->
16-
listener?.onTextChanged(new)
20+
var text: String by Delegates.observable("<empty>") { _, old, new ->
21+
listener?.onTextChanged(old, new)
1722
}
1823
}
1924

20-
fun main(args: Array<String>) {
21-
val textView = TextView()
22-
textView.listener = PrintingTextChangedListener()
23-
textView.text = "Lorem ipsum"
24-
textView.text = "dolor sit amet"
25+
class ListenerTest {
26+
27+
@Test
28+
fun `Listener`() {
29+
val textView = TextView().apply {
30+
listener = PrintingTextChangedListener()
31+
}
32+
33+
with(textView) {
34+
text = "Lorem ipsum"
35+
text = "dolor sit amet"
36+
}
37+
38+
assertThat(textView.listener).isNotNull()
39+
}
2540
}
2641

0 commit comments

Comments
 (0)