JS stdlib: allowed use null as key and value in Map implementations. Added tests for using null in Set and Map implementations.
This commit is contained in:
committed by
Ilya Ryzhenkov
parent
223a14a855
commit
14ab3c4de1
@@ -22,10 +22,13 @@ class ComplexSetJsTest : SetJsTest() {
|
||||
}
|
||||
|
||||
// hashSetOf returns ComlpexHashSet because it is Generic
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = hashSetOf<String>()
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = hashSetOf()
|
||||
override fun createEmptyMutableSetWithNullableValues(): MutableSet<String?> = hashSetOf()
|
||||
}
|
||||
|
||||
class PrimitiveSetJsTest : SetJsTest() {
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = HashSet()
|
||||
override fun createEmptyMutableSetWithNullableValues(): MutableSet<String?> = HashSet()
|
||||
test override fun constructors() {
|
||||
HashSet<String>()
|
||||
HashSet<String>(3)
|
||||
@@ -35,11 +38,11 @@ class PrimitiveSetJsTest : SetJsTest() {
|
||||
|
||||
assertEquals(data, set)
|
||||
}
|
||||
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = HashSet<String>()
|
||||
}
|
||||
|
||||
class LinkedHashSetTest : SetJsTest() {
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = LinkedHashSet()
|
||||
override fun createEmptyMutableSetWithNullableValues(): MutableSet<String?> = LinkedHashSet()
|
||||
test override fun constructors() {
|
||||
LinkedHashSet<String>()
|
||||
LinkedHashSet<String>(3)
|
||||
@@ -49,8 +52,6 @@ class LinkedHashSetTest : SetJsTest() {
|
||||
|
||||
assertEquals(data, set)
|
||||
}
|
||||
|
||||
override fun createEmptyMutableSet(): MutableSet<String> = LinkedHashSet<String>()
|
||||
}
|
||||
|
||||
abstract class SetJsTest {
|
||||
@@ -187,8 +188,20 @@ abstract class SetJsTest {
|
||||
|
||||
test abstract fun constructors()
|
||||
|
||||
Test fun nullAsValue() {
|
||||
val set = createEmptyMutableSetWithNullableValues()
|
||||
|
||||
assertTrue(set.isEmpty(), "Set should be empty")
|
||||
set.add(null)
|
||||
assertFalse(set.isEmpty(), "Set should not be empty")
|
||||
assertTrue(set.contains(null), "Set should contains null")
|
||||
assertTrue(set.remove(null), "Expected true when remove null")
|
||||
assertTrue(set.isEmpty(), "Set should be empty")
|
||||
}
|
||||
|
||||
//Helpers
|
||||
abstract fun createEmptyMutableSet(): MutableSet<String>
|
||||
abstract fun createEmptyMutableSetWithNullableValues(): MutableSet<String?>
|
||||
|
||||
fun createTestMutableSet(): MutableSet<String> {
|
||||
val set = createEmptyMutableSet()
|
||||
|
||||
Reference in New Issue
Block a user