From 322d35ac2fa6089d2bf026f23730ceaa16e75874 Mon Sep 17 00:00:00 2001 From: Zalim Bashorov Date: Mon, 11 Mar 2013 15:46:51 +0400 Subject: [PATCH] Added some tests for JS implementation of HashMap Fixed JS implementation of HashMap#putAll --- js/js.translator/testFiles/maps.js | 4 +-- libraries/stdlib/test/js/MapJsTest.kt | 37 ++++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 5 deletions(-) diff --git a/js/js.translator/testFiles/maps.js b/js/js.translator/testFiles/maps.js index 850a6092002..5a358b4d112 100644 --- a/js/js.translator/testFiles/maps.js +++ b/js/js.translator/testFiles/maps.js @@ -339,7 +339,7 @@ }; this.each = function (callback) { - var entries = that.entries(), i = entries.length, entry; + var entries = that._entries(), i = entries.length, entry; while (i--) { entry = entries[i]; callback(entry[0], entry[1]); @@ -348,7 +348,7 @@ this.putAll = function (hashtable, conflictCallback) { - var entries = hashtable.entries(); + var entries = hashtable._entries(); var entry, key, value, thisValue, i = entries.length; var hasConflictCallback = (typeof conflictCallback == FUNCTION); while (i--) { diff --git a/libraries/stdlib/test/js/MapJsTest.kt b/libraries/stdlib/test/js/MapJsTest.kt index f66d170a9f7..4f9fc2772b5 100644 --- a/libraries/stdlib/test/js/MapJsTest.kt +++ b/libraries/stdlib/test/js/MapJsTest.kt @@ -6,8 +6,9 @@ import java.util.* import org.junit.Test as test class MapJsTest { - val KEYS = array("zero", "one", "two", "three") - val VALUES = array(0, 1, 2, 3) + //TODO: replace `array(...).toList()` to `listOf(...)` + val KEYS = array("zero", "one", "two", "three").toList() + val VALUES = array(0, 1, 2, 3).toList() test fun getOrElse() { val data = HashMap() @@ -44,9 +45,39 @@ class MapJsTest { test fun hashMapValues() { val map = createTestHashMap() - assertEquals(VALUES.toList(), map.values().toSortedList()) + assertEquals(VALUES, map.values().toSortedList()) } + test fun hashMapKeySet() { + val map = createTestHashMap() + assertEquals(KEYS.toSortedList(), map.keySet().toSortedList()) + } + + test fun hashMapContainsValue() { + val map = createTestHashMap() + + assertTrue(map.containsValue(VALUES[0]) && + map.containsValue(VALUES[1]) && + map.containsValue(VALUES[2]) && + map.containsValue(VALUES[3])) + + assertFalse(map.containsValue("four") || + map.containsValue("five")) + } + + test fun hashMapSize() { + val map = createTestHashMap() + assertEquals(KEYS.size, map.size) + } + + test fun hashMapPutAll() { + val map = createTestHashMap() + val newMap = HashMap() + newMap.putAll(map) + assertEquals(KEYS.size, newMap.size) + } + + fun createTestHashMap(): HashMap { val map = HashMap() for (i in KEYS.indices) {