client: Use ReplayList to test AggregatedList as well

This commit is contained in:
Andras Slemmer 2016-09-16 14:14:45 +01:00
parent 486b6cc414
commit 75ee91fe4e

View File

@ -8,28 +8,31 @@ import kotlin.test.fail
class AggregatedListTest {
var sourceList = FXCollections.observableArrayList<Int>()
var aggregatedList = AggregatedList(sourceList, { it % 3 }) { mod3, group -> Pair(mod3, group) }
var replayedList = ReplayedList(aggregatedList)
@Before
fun setup() {
sourceList = FXCollections.observableArrayList<Int>()
aggregatedList = AggregatedList(sourceList, { it % 3 }) { mod3, group -> Pair(mod3, group) }
replayedList = ReplayedList(aggregatedList)
}
@Test
fun addWorks() {
val aggregatedList = AggregatedList(sourceList, { it % 3 }) { mod3, group -> Pair(mod3, group) }
require(aggregatedList.size == 0) { "Aggregation is empty is source list is" }
require(replayedList.size == 0) { "Aggregation is empty is source list is" }
sourceList.add(9)
require(aggregatedList.size == 1) { "Aggregation list has one element if one was added to source list" }
require(aggregatedList[0]!!.first == 0)
require(replayedList.size == 1) { "Aggregation list has one element if one was added to source list" }
require(replayedList[0]!!.first == 0)
sourceList.add(8)
require(aggregatedList.size == 2) { "Aggregation list has two elements if two were added to source list with different keys" }
require(replayedList.size == 2) { "Aggregation list has two elements if two were added to source list with different keys" }
sourceList.add(6)
require(aggregatedList.size == 2) { "Aggregation list's size doesn't change if element with existing key is added" }
require(replayedList.size == 2) { "Aggregation list's size doesn't change if element with existing key is added" }
aggregatedList.forEach {
replayedList.forEach {
when (it.first) {
0 -> require(it.second.toSet() == setOf(6, 9))
2 -> require(it.second.size == 1)
@ -40,11 +43,10 @@ class AggregatedListTest {
@Test
fun removeWorks() {
val aggregatedList = AggregatedList(sourceList, { it % 3 }) { mod3, group -> Pair(mod3, group) }
sourceList.addAll(0, 1, 2, 3, 4)
require(aggregatedList.size == 3)
aggregatedList.forEach {
require(replayedList.size == 3)
replayedList.forEach {
when (it.first) {
0 -> require(it.second.toSet() == setOf(0, 3))
1 -> require(it.second.toSet() == setOf(1, 4))
@ -54,8 +56,8 @@ class AggregatedListTest {
}
sourceList.remove(4)
require(aggregatedList.size == 3)
aggregatedList.forEach {
require(replayedList.size == 3)
replayedList.forEach {
when (it.first) {
0 -> require(it.second.toSet() == setOf(0, 3))
1 -> require(it.second.toSet() == setOf(1))
@ -65,8 +67,8 @@ class AggregatedListTest {
}
sourceList.remove(2, 4)
require(aggregatedList.size == 2)
aggregatedList.forEach {
require(replayedList.size == 2)
replayedList.forEach {
when (it.first) {
0 -> require(it.second.toSet() == setOf(0))
1 -> require(it.second.toSet() == setOf(1))
@ -75,7 +77,7 @@ class AggregatedListTest {
}
sourceList.removeAll(0, 1)
require(aggregatedList.size == 0)
require(replayedList.size == 0)
}
}