-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTestListeners.kt
70 lines (55 loc) · 2.01 KB
/
TestListeners.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
import model.elements.*
import model.listeners.JSONArrayListener
import model.listeners.JSONObjectListener
import kotlin.test.Test
import kotlin.test.assertEquals
class TestListeners {
@Test
fun testObjectListener() {
val obj = JSONObject.empty()
var added = 0
var removed = 0
var updated = 0
obj.addListener(object : JSONObjectListener {
override fun onPropertyAdded(property: JSONProperty) { added++ }
override fun onPropertyRemoved(property: JSONProperty) { removed++ }
override fun onPropertyUpdated(old: JSONProperty, new: JSONProperty) { updated++ }
})
obj.addProperty("myKey1", JSONNumber(0))
obj.addProperty("myKey2", JSONNumber(1))
obj.addProperty("myKey3", JSONNumber(2))
obj.setProperty("myKey1", JSONString("hello"))
obj.setProperty("myKey2", JSONString("world"))
obj.setProperty("myKey3", JSONString(":)"))
obj.removeProperty("myKey1")
obj.removeProperty("myKey2")
obj.removeProperty("myKey3")
assertEquals(3, added)
assertEquals(3, removed)
assertEquals(3, updated)
}
@Test
fun testArrayListener() {
val array = JSONArray(mutableListOf())
var added = 0
var removed = 0
var set = 0
array.addListener(object : JSONArrayListener {
override fun onElementAdded(element: JSONElement) { added++ }
override fun onElementRemoved(index: Int, element: JSONElement) { removed++ }
override fun onElementSet(index: Int, element: JSONElement) { set++ }
})
array.add(JSONNumber(0))
array.add(JSONNumber(1))
array.add(JSONNumber(2))
array.set(0, JSONString("hello"))
array.set(1, JSONString("world"))
array.set(2, JSONString(":)"))
array.removeAt(0)
array.removeAt(0)
array.removeAt(0)
assertEquals(3, added)
assertEquals(3, removed)
assertEquals(3, set)
}
}