diff --git a/tests/jsunit/index.html b/tests/jsunit/index.html
index 3e633001e..06c81a014 100644
--- a/tests/jsunit/index.html
+++ b/tests/jsunit/index.html
@@ -19,7 +19,6 @@
-
diff --git a/tests/jsunit/variable_map_test.js b/tests/jsunit/variable_map_test.js
deleted file mode 100644
index 8f5b2f6ff..000000000
--- a/tests/jsunit/variable_map_test.js
+++ /dev/null
@@ -1,284 +0,0 @@
-/**
- * @license
- * Copyright 2017 Google LLC
- * SPDX-License-Identifier: Apache-2.0
- */
-
- /**
- * @fileoverview Tests for variable map.
- * @author marisaleung@google.com (Marisa Leung)
- */
-'use strict';
-
-var variable_map;
-var mockControl_;
-var workspace;
-
-function variableMapTest_setUp() {
- workspace = new Blockly.Workspace();
- variable_map = new Blockly.VariableMap(workspace);
-}
-
-function variableMapTest_tearDown() {
- workspace.dispose();
- if (mockControl_) {
- mockControl_.restore();
- }
- variable_map = null;
-}
-
-function test_getVariable_ByNameAndType() {
- variableMapTest_setUp();
- var var_1 = variable_map.createVariable('name1', 'type1', 'id1');
- var var_2 = variable_map.createVariable('name2', 'type1', 'id2');
- var var_3 = variable_map.createVariable('name3', 'type2', 'id3');
- var result_1 = variable_map.getVariable('name1', 'type1');
- var result_2 = variable_map.getVariable('name2', 'type1');
- var result_3 = variable_map.getVariable('name3', 'type2');
-
- // Searching by name + type is correct.
- assertEquals(var_1, result_1);
- assertEquals(var_2, result_2);
- assertEquals(var_3, result_3);
-
- // Searching only by name defaults to the '' type.
- assertNull(variable_map.getVariable('name1'));
- assertNull(variable_map.getVariable('name2'));
- assertNull(variable_map.getVariable('name3'));
- variableMapTest_tearDown();
-}
-
-function test_getVariable_NotFound() {
- variableMapTest_setUp();
- var result = variable_map.getVariable('name1');
- assertNull(result);
- variableMapTest_tearDown();
-}
-
-function test_getVariableById_Trivial() {
- variableMapTest_setUp();
- var var_1 = variable_map.createVariable('name1', 'type1', 'id1');
- var var_2 = variable_map.createVariable('name2', 'type1', 'id2');
- var var_3 = variable_map.createVariable('name3', 'type2', 'id3');
- var result_1 = variable_map.getVariableById('id1');
- var result_2 = variable_map.getVariableById('id2');
- var result_3 = variable_map.getVariableById('id3');
-
- assertEquals(var_1, result_1);
- assertEquals(var_2, result_2);
- assertEquals(var_3, result_3);
- variableMapTest_tearDown();
-}
-
-function test_getVariableById_NotFound() {
- variableMapTest_setUp();
- var result = variable_map.getVariableById('id1');
- assertNull(result);
- variableMapTest_tearDown();
-}
-
-function test_createVariableTrivial() {
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
- checkVariableValues(variable_map, 'name1', 'type1', 'id1');
- variableMapTest_tearDown();
-}
-
-function test_createVariableAlreadyExists() {
- // Expect that when the variable already exists, the variableMap_ is unchanged.
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
-
- // Assert there is only one variable in the variable_map.
- var keys = Object.keys(variable_map.variableMap_);
- assertEquals(1, keys.length);
- var varMapLength = variable_map.variableMap_[keys[0]].length;
- assertEquals(1, varMapLength);
-
- variable_map.createVariable('name1', 'type1');
- checkVariableValues(variable_map, 'name1', 'type1', 'id1');
- // Check that the size of the variableMap_ did not change.
- keys = Object.keys(variable_map.variableMap_);
- assertEquals(1, keys.length);
- varMapLength = variable_map.variableMap_[keys[0]].length;
- assertEquals(1, varMapLength);
- variableMapTest_tearDown();
-}
-
-function test_createVariableNameAlreadyExists() {
- // Expect that when a variable with the same name but a different type already
- // exists, the new variable is created.
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
-
- // Assert there is only one variable in the variable_map.
- var keys = Object.keys(variable_map.variableMap_);
- assertEquals(1, keys.length);
- var varMapLength = variable_map.variableMap_[keys[0]].length;
- assertEquals(1, varMapLength);
-
- variable_map.createVariable('name1', 'type2', 'id2');
- checkVariableValues(variable_map, 'name1', 'type1', 'id1');
- checkVariableValues(variable_map, 'name1', 'type2', 'id2');
- // Check that the size of the variableMap_ did change.
- keys = Object.keys(variable_map.variableMap_);
- assertEquals(2, keys.length);
- variableMapTest_tearDown();
-}
-function test_createVariableNullAndUndefinedType() {
- variableMapTest_setUp();
- variable_map.createVariable('name1', null, 'id1');
- variable_map.createVariable('name2', undefined, 'id2');
-
- checkVariableValues(variable_map, 'name1', '', 'id1');
- checkVariableValues(variable_map, 'name2', '', 'id2');
- variableMapTest_tearDown();
-}
-
-function test_createVariableNullId() {
- variableMapTest_setUp();
- mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']);
- try {
- variable_map.createVariable('name1', 'type1', null);
- checkVariableValues(variable_map, 'name1', 'type1', '1');
- } finally {
- variableMapTest_tearDown();
- }
-}
-
-function test_createVariableUndefinedId() {
- variableMapTest_setUp();
- mockControl_ = setUpMockMethod(Blockly.utils, 'genUid', null, ['1', '2']);
- try {
- variable_map.createVariable('name1', 'type1', undefined);
- checkVariableValues(variable_map, 'name1', 'type1', '1');
- } finally {
- variableMapTest_tearDown();
- }
-}
-
-function test_createVariableIdAlreadyExists() {
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
- try {
- variable_map.createVariable('name2', 'type2', 'id1');
- fail();
- } catch (e) {
- // expected
- }
- variableMapTest_tearDown();
-}
-
-function test_createVariableMismatchedIdAndType() {
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
- try {
- variable_map.createVariable('name1', 'type2', 'id1');
- fail();
- } catch (e) {
- // expected
- }
- try {
- variable_map.createVariable('name1', 'type1', 'id2');
- fail();
- } catch (e) {
- // expected
- }
- variableMapTest_tearDown();
-}
-
-function test_createVariableTwoSameTypes() {
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
- variable_map.createVariable('name2', 'type1', 'id2');
-
- checkVariableValues(variable_map, 'name1', 'type1', 'id1');
- checkVariableValues(variable_map, 'name2', 'type1', 'id2');
- variableMapTest_tearDown();
-}
-
-function test_getVariablesOfType_Trivial() {
- variableMapTest_setUp();
- var var_1 = variable_map.createVariable('name1', 'type1', 'id1');
- var var_2 = variable_map.createVariable('name2', 'type1', 'id2');
- variable_map.createVariable('name3', 'type2', 'id3');
- variable_map.createVariable('name4', 'type3', 'id4');
- var result_array_1 = variable_map.getVariablesOfType('type1');
- var result_array_2 = variable_map.getVariablesOfType('type5');
- isEqualArrays([var_1, var_2], result_array_1);
- isEqualArrays([], result_array_2);
- variableMapTest_tearDown();
-}
-
-function test_getVariablesOfType_Null() {
- variableMapTest_setUp();
- var var_1 = variable_map.createVariable('name1', '', 'id1');
- var var_2 = variable_map.createVariable('name2', '', 'id2');
- var var_3 = variable_map.createVariable('name3', '', 'id3');
- variable_map.createVariable('name4', 'type1', 'id4');
- var result_array = variable_map.getVariablesOfType(null);
- isEqualArrays([var_1, var_2, var_3], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getVariablesOfType_EmptyString() {
- variableMapTest_setUp();
- var var_1 = variable_map.createVariable('name1', null, 'id1');
- var var_2 = variable_map.createVariable('name2', null, 'id2');
- var result_array = variable_map.getVariablesOfType('');
- isEqualArrays([var_1, var_2], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getVariablesOfType_Deleted() {
- variableMapTest_setUp();
- var variable = variable_map.createVariable('name1', null, 'id1');
- variable_map.deleteVariable(variable);
- var result_array = variable_map.getVariablesOfType('');
- isEqualArrays([], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getVariablesOfType_DoesNotExist() {
- variableMapTest_setUp();
- var result_array = variable_map.getVariablesOfType('type1');
- isEqualArrays([], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getVariableTypes_Trivial() {
- variableMapTest_setUp();
- variable_map.createVariable('name1', 'type1', 'id1');
- variable_map.createVariable('name2', 'type1', 'id2');
- variable_map.createVariable('name3', 'type2', 'id3');
- variable_map.createVariable('name4', 'type3', 'id4');
- var result_array = variable_map.getVariableTypes();
- // The empty string is always an option.
- isEqualArrays(['type1', 'type2', 'type3', ''], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getVariableTypes_None() {
- variableMapTest_setUp();
- // The empty string is always an option.
- var result_array = variable_map.getVariableTypes();
- isEqualArrays([''], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getAllVariables_Trivial() {
- variableMapTest_setUp();
- var var_1 = variable_map.createVariable('name1', 'type1', 'id1');
- var var_2 = variable_map.createVariable('name2', 'type1', 'id2');
- var var_3 = variable_map.createVariable('name3', 'type2', 'id3');
- var result_array = variable_map.getAllVariables();
- isEqualArrays([var_1, var_2, var_3], result_array);
- variableMapTest_tearDown();
-}
-
-function test_getAllVariables_None() {
- variableMapTest_setUp();
- var result_array = variable_map.getAllVariables();
- isEqualArrays([], result_array);
- variableMapTest_tearDown();
-}
diff --git a/tests/mocha/.eslintrc.json b/tests/mocha/.eslintrc.json
index c6ae36484..f057f88e2 100644
--- a/tests/mocha/.eslintrc.json
+++ b/tests/mocha/.eslintrc.json
@@ -17,6 +17,7 @@
"assertUndefined": true,
"assertNotUndefined": true,
"assertNotNullNorUndefined": true,
+ "assertVariableValues": true,
"defineStackBlock": true,
"defineRowBlock": true,
"defineStatementBlock": true,
diff --git a/tests/mocha/event_test.js b/tests/mocha/event_test.js
index 69a33fb2b..8304d6a34 100644
--- a/tests/mocha/event_test.js
+++ b/tests/mocha/event_test.js
@@ -228,21 +228,6 @@ suite('Events', function() {
this.variable = this.workspace.createVariable('name1', 'type1', 'id1');
});
- /**
- * Check if a variable with the given values exists.
- * @param {Blockly.Workspace|Blockly.VariableMap} container The workspace or
- * variableMap the checked variable belongs to.
- * @param {!string} name The expected name of the variable.
- * @param {!string} type The expected type of the variable.
- * @param {!string} id The expected id of the variable.
- */
- function checkVariableValues(container, name, type, id) {
- var variable = container.getVariableById(id);
- assertNotUndefined(variable);
- assertEquals(name, variable.name);
- assertEquals(type, variable.type);
- assertEquals(id, variable.getId());
- }
suite('Constructors', function() {
test('Var base', function() {
var event = new Blockly.Events.VarBase(this.variable);
@@ -334,7 +319,7 @@ suite('Events', function() {
var x = this.workspace.getVariableById('id2');
assertNull(x);
event.run(true);
- checkVariableValues(this.workspace, 'name2', 'type2', 'id2');
+ assertVariableValues(this.workspace, 'name2', 'type2', 'id2');
});
test('Var delete', function() {
@@ -348,7 +333,7 @@ suite('Events', function() {
var event = new Blockly.Events.VarRename(this.variable, 'name2');
event.run(true);
assertNull(this.workspace.getVariable('name1'));
- checkVariableValues(this.workspace, 'name2', 'type1', 'id1');
+ assertVariableValues(this.workspace, 'name2', 'type1', 'id1');
});
});
suite('Run Backward', function() {
@@ -364,14 +349,14 @@ suite('Events', function() {
var event = Blockly.Events.fromJson(json, this.workspace);
assertNull(this.workspace.getVariableById('id2'));
event.run(false);
- checkVariableValues(this.workspace, 'name2', 'type2', 'id2');
+ assertVariableValues(this.workspace, 'name2', 'type2', 'id2');
});
test('Var rename', function() {
var event = new Blockly.Events.VarRename(this.variable, 'name2');
event.run(false);
assertNull(this.workspace.getVariable('name2'));
- checkVariableValues(this.workspace, 'name1', 'type1', 'id1');
+ assertVariableValues(this.workspace, 'name1', 'type1', 'id1');
});
});
});
diff --git a/tests/mocha/index.html b/tests/mocha/index.html
index e0bede811..004ca414d 100644
--- a/tests/mocha/index.html
+++ b/tests/mocha/index.html
@@ -59,8 +59,9 @@
-
+
+
diff --git a/tests/mocha/test_helpers.js b/tests/mocha/test_helpers.js
index 61aae9475..86748490c 100644
--- a/tests/mocha/test_helpers.js
+++ b/tests/mocha/test_helpers.js
@@ -6,7 +6,7 @@
/* exported assertEquals, assertNotEquals, assertArrayEquals, assertTrue, assertFalse,
assertNull, assertNotNull, assertNotNullNorUndefined, assert,
- isEqualArrays, assertUndefined, assertNotUndefined,
+ isEqualArrays, assertUndefined, assertNotUndefined, assertVariableValues,
defineRowBlock, defineStackBlock, defineStatementBlock, createTestBlock */
function _argumentsIncludeComments(expectedNumberOfNonCommentArgs, args) {
return args.length == expectedNumberOfNonCommentArgs + 1;
@@ -141,6 +141,22 @@ function assertArrayEquals() {
isEqualArrays(var1, var2);
}
+/**
+ * Check if a variable with the given values exists.
+ * @param {Blockly.Workspace|Blockly.VariableMap} container The workspace or
+ * variableMap the checked variable belongs to.
+ * @param {!string} name The expected name of the variable.
+ * @param {!string} type The expected type of the variable.
+ * @param {!string} id The expected id of the variable.
+ */
+function assertVariableValues(container, name, type, id) {
+ var variable = container.getVariableById(id);
+ assertNotNull(variable);
+ assertEquals(name, variable.name);
+ assertEquals(type, variable.type);
+ assertEquals(id, variable.getId());
+}
+
function defineStackBlock() {
Blockly.defineBlocksWithJsonArray([{
"type": "stack_block",
@@ -191,4 +207,3 @@ function createTestBlock() {
}
};
}
-
diff --git a/tests/mocha/variable_map_test.js b/tests/mocha/variable_map_test.js
new file mode 100644
index 000000000..91101f79a
--- /dev/null
+++ b/tests/mocha/variable_map_test.js
@@ -0,0 +1,250 @@
+/**
+ * @license
+ * Copyright 2020 Google LLC
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+suite('Variable Map', function() {
+ setup(function() {
+ this.workspace = new Blockly.Workspace();
+ this.variableMap = new Blockly.VariableMap(this.workspace);
+ });
+
+ teardown(function() {
+ this.workspace.dispose();
+ sinon.restore();
+ });
+
+ suite('createVariable', function() {
+ test('Trivial', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ });
+
+ test('Already exists', function() {
+ // Expect that when the variable already exists, the variableMap_ is unchanged.
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+
+ // Assert there is only one variable in the this.variableMap.
+ var keys = Object.keys(this.variableMap.variableMap_);
+ chai.assert.equal(keys.length, 1);
+ var varMapLength = this.variableMap.variableMap_[keys[0]].length;
+ chai.assert.equal(varMapLength, 1);
+
+ this.variableMap.createVariable('name1', 'type1');
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ // Check that the size of the variableMap_ did not change.
+ keys = Object.keys(this.variableMap.variableMap_);
+ chai.assert.equal(keys.length, 1);
+ varMapLength = this.variableMap.variableMap_[keys[0]].length;
+ chai.assert.equal(varMapLength, 1);
+ });
+
+ test('Name already exists', function() {
+ // Expect that when a variable with the same name but a different type already
+ // exists, the new variable is created.
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+
+ // Assert there is only one variable in the this.variableMap.
+ var keys = Object.keys(this.variableMap.variableMap_);
+ chai.assert.equal(keys.length, 1);
+ var varMapLength = this.variableMap.variableMap_[keys[0]].length;
+ chai.assert.equal(varMapLength, 1);
+
+ this.variableMap.createVariable('name1', 'type2', 'id2');
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ assertVariableValues(this.variableMap, 'name1', 'type2', 'id2');
+ // Check that the size of the variableMap_ did change.
+ keys = Object.keys(this.variableMap.variableMap_);
+ chai.assert.equal(keys.length, 2);
+ });
+
+ test('Null type', function() {
+ this.variableMap.createVariable('name1', null, 'id1');
+ assertVariableValues(this.variableMap, 'name1', '', 'id1');
+ });
+
+ test('Undefined type', function() {
+ this.variableMap.createVariable('name2', undefined, 'id2');
+ assertVariableValues(this.variableMap, 'name2', '', 'id2');
+ });
+
+ test('Null id', function() {
+ sinon.stub(Blockly.utils, "genUid").returns('1');
+ this.variableMap.createVariable('name1', 'type1', null);
+ assertVariableValues(this.variableMap, 'name1', 'type1', '1');
+ });
+
+ test('Undefined id', function() {
+ sinon.stub(Blockly.utils, "genUid").returns('1');
+ this.variableMap.createVariable('name1', 'type1', undefined);
+ assertVariableValues(this.variableMap, 'name1', 'type1', '1');
+ });
+
+ test('Two variables same type', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ this.variableMap.createVariable('name2', 'type1', 'id2');
+
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ assertVariableValues(this.variableMap, 'name2', 'type1', 'id2');
+ });
+
+ test('Two variables same name', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ this.variableMap.createVariable('name1', 'type2', 'id2');
+
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ assertVariableValues(this.variableMap, 'name1', 'type2', 'id2');
+ });
+
+ suite('Error cases', function() {
+ test('Id already exists', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ var variableMap = this.variableMap;
+ chai.assert.throws(function() {
+ variableMap.createVariable('name2', 'type2', 'id1');
+ }, /"id1".*in use/);
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ });
+
+ test('Mismatched id', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ var variableMap = this.variableMap;
+ chai.assert.throws(function() {
+ variableMap.createVariable('name1', 'type1', 'id2');
+ }, /"name1".*in use/);
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ });
+
+ test('Mismatched type', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ var variableMap = this.variableMap;
+ chai.assert.throws(function() {
+ variableMap.createVariable('name1', 'type2', 'id1');
+ });
+ assertVariableValues(this.variableMap, 'name1', 'type1', 'id1');
+ chai.assert.isNull(this.variableMap.getVariableById('id2'));
+ });
+ });
+ });
+
+ suite('getVariable', function() {
+ test('By name and type', function() {
+ var var1 = this.variableMap.createVariable('name1', 'type1', 'id1');
+ var var2 = this.variableMap.createVariable('name2', 'type1', 'id2');
+ var var3 = this.variableMap.createVariable('name3', 'type2', 'id3');
+ var result1 = this.variableMap.getVariable('name1', 'type1');
+ var result2 = this.variableMap.getVariable('name2', 'type1');
+ var result3 = this.variableMap.getVariable('name3', 'type2');
+
+ // Searching by name + type is correct.
+ chai.assert.equal(result1, var1);
+ chai.assert.equal(result2, var2);
+ chai.assert.equal(result3, var3);
+
+ // Searching only by name defaults to the '' type.
+ chai.assert.isNull(this.variableMap.getVariable('name1'));
+ chai.assert.isNull(this.variableMap.getVariable('name2'));
+ chai.assert.isNull(this.variableMap.getVariable('name3'));
+ });
+
+ test('Not found', function() {
+ var result = this.variableMap.getVariable('name1');
+ chai.assert.isNull(result);
+ });
+ });
+
+ suite('getVariableById', function() {
+ test('Trivial', function() {
+ var var1 = this.variableMap.createVariable('name1', 'type1', 'id1');
+ var var2 = this.variableMap.createVariable('name2', 'type1', 'id2');
+ var var3 = this.variableMap.createVariable('name3', 'type2', 'id3');
+ var result1 = this.variableMap.getVariableById('id1');
+ var result2 = this.variableMap.getVariableById('id2');
+ var result3 = this.variableMap.getVariableById('id3');
+
+ chai.assert.equal(result1, var1);
+ chai.assert.equal(result2, var2);
+ chai.assert.equal(result3, var3);
+ });
+
+ test('Not found', function() {
+ var result = this.variableMap.getVariableById('id1');
+ chai.assert.isNull(result);
+ });
+ });
+
+ suite('getVariableTypes', function() {
+ test('Trivial', function() {
+ this.variableMap.createVariable('name1', 'type1', 'id1');
+ this.variableMap.createVariable('name2', 'type1', 'id2');
+ this.variableMap.createVariable('name3', 'type2', 'id3');
+ this.variableMap.createVariable('name4', 'type3', 'id4');
+ var resultArray = this.variableMap.getVariableTypes();
+ // The empty string is always an option.
+ assertArrayEquals(resultArray, ['type1', 'type2', 'type3', '']);
+ });
+
+ test('None', function() {
+ // The empty string is always an option.
+ var resultArray = this.variableMap.getVariableTypes();
+ assertArrayEquals(resultArray, ['']);
+ });
+ });
+
+ suite('getVariablesOfType', function() {
+ test('Trivial', function() {
+ var var1 = this.variableMap.createVariable('name1', 'type1', 'id1');
+ var var2 = this.variableMap.createVariable('name2', 'type1', 'id2');
+ this.variableMap.createVariable('name3', 'type2', 'id3');
+ this.variableMap.createVariable('name4', 'type3', 'id4');
+ var resultArray1 = this.variableMap.getVariablesOfType('type1');
+ var resultArray2 = this.variableMap.getVariablesOfType('type5');
+ assertArrayEquals(resultArray1, [var1, var2]);
+ assertArrayEquals(resultArray2, []);
+ });
+
+ test('Null', function() {
+ var var1 = this.variableMap.createVariable('name1', '', 'id1');
+ var var2 = this.variableMap.createVariable('name2', '', 'id2');
+ var var3 = this.variableMap.createVariable('name3', '', 'id3');
+ this.variableMap.createVariable('name4', 'type1', 'id4');
+ var resultArray = this.variableMap.getVariablesOfType(null);
+ assertArrayEquals(resultArray, [var1, var2, var3]);
+ });
+
+ test('Empty string', function() {
+ var var1 = this.variableMap.createVariable('name1', null, 'id1');
+ var var2 = this.variableMap.createVariable('name2', null, 'id2');
+ var resultArray = this.variableMap.getVariablesOfType('');
+ assertArrayEquals(resultArray, [var1, var2]);
+ });
+
+ test('Deleted', function() {
+ var variable = this.variableMap.createVariable('name1', null, 'id1');
+ this.variableMap.deleteVariable(variable);
+ var resultArray = this.variableMap.getVariablesOfType('');
+ assertArrayEquals(resultArray, []);
+ });
+
+ test('Does not exist', function() {
+ var resultArray = this.variableMap.getVariablesOfType('type1');
+ assertArrayEquals(resultArray, []);
+ });
+ });
+
+ suite('getAllVariables', function() {
+ test('Trivial', function() {
+ var var1 = this.variableMap.createVariable('name1', 'type1', 'id1');
+ var var2 = this.variableMap.createVariable('name2', 'type1', 'id2');
+ var var3 = this.variableMap.createVariable('name3', 'type2', 'id3');
+ var resultArray = this.variableMap.getAllVariables();
+ assertArrayEquals(resultArray, [var1, var2, var3]);
+ });
+
+ test('None', function() {
+ var resultArray = this.variableMap.getAllVariables();
+ assertArrayEquals(resultArray, []);
+ });
+ });
+});