Daniel@0: "use strict"; Daniel@0: Daniel@0: describe("ContextModule.ConfigGrid", function() { Daniel@0: Daniel@0: var testEntityConfigs = null; Daniel@0: var testViewConfigs = null; Daniel@0: var testIrrelevantEntityConfigs = null; Daniel@0: var testIrrelevantViewConfigs = null; Daniel@0: Daniel@0: beforeEach(function() { Daniel@0: testEntityConfigs = [ Daniel@0: new App.ContextModule.Config({parameters: {x: 10, y: "test"}}), Daniel@0: new App.ContextModule.Config({parameters: {x: 10, y: "test"}}), Daniel@0: new App.ContextModule.Config({parameters: {x: 20}}), Daniel@0: ]; Daniel@0: Daniel@0: testViewConfigs = [ Daniel@0: new App.ContextModule.Config({parameters: {x: 10, y: "test"}}), Daniel@0: new App.ContextModule.Config({parameters: {x: 10, y: "test"}}), Daniel@0: new App.ContextModule.Config({parameters: {x: 20}}), Daniel@0: ]; Daniel@0: Daniel@0: testIrrelevantEntityConfigs = [ Daniel@0: new App.ContextModule.Config({parameters: {x: 10, y: "test"}}), Daniel@0: ]; Daniel@0: testIrrelevantViewConfigs = [ Daniel@0: new App.ContextModule.Config({parameters: {x: 10, y: "test"}}), Daniel@0: ]; Daniel@0: }); Daniel@0: Daniel@0: it("is promptly created", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: expect(testedConfigGrid).not.toBe(null); Daniel@0: Daniel@0: expect(testedConfigGrid.entityConfigs).not.toBe(null); Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(0); Daniel@0: Daniel@0: expect(testedConfigGrid.viewConfigs).not.toBe(null); Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(0); Daniel@0: Daniel@0: expect(testedConfigGrid.getType()).toBe(undefined); Daniel@0: }); Daniel@0: Daniel@0: it("is promptly created with type", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid("abc"); Daniel@0: Daniel@0: expect(testedConfigGrid).not.toBe(null); Daniel@0: Daniel@0: expect(testedConfigGrid.getType()).toBe("abc"); Daniel@0: }); Daniel@0: Daniel@0: it("can add parameter bags", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[0]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[1]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[2]); Daniel@0: Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[0]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[1]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2]); Daniel@0: Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(3); Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(3); Daniel@0: Daniel@0: // Can't add what's already there Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[2]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2]); Daniel@0: Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(3); Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(3); Daniel@0: }); Daniel@0: Daniel@0: it("can add parameter bags at a particular place", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[0]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[1]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[2], {at: 0}); Daniel@0: Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[0]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[1]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2], {at: 1}); Daniel@0: Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(3); Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(3); Daniel@0: Daniel@0: expect(testedConfigGrid.entityConfigs.at(0)).toEqual(testEntityConfigs[2]); Daniel@0: expect(testedConfigGrid.entityConfigs.at(1)).toEqual(testEntityConfigs[0]); Daniel@0: expect(testedConfigGrid.entityConfigs.at(2)).toEqual(testEntityConfigs[1]); Daniel@0: Daniel@0: expect(testedConfigGrid.viewConfigs.at(0)).toEqual(testViewConfigs[0]); Daniel@0: expect(testedConfigGrid.viewConfigs.at(1)).toEqual(testViewConfigs[2]); Daniel@0: expect(testedConfigGrid.viewConfigs.at(2)).toEqual(testViewConfigs[1]); Daniel@0: }); Daniel@0: Daniel@0: it("can reset", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[0]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[1]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[2]); Daniel@0: Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[0]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[1]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2]); Daniel@0: Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(3); Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(3); Daniel@0: Daniel@0: testedConfigGrid.entityConfigs.reset(); Daniel@0: testedConfigGrid.viewConfigs.reset(); Daniel@0: Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(0); Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(0); Daniel@0: Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[0]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[1]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[2]); Daniel@0: Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[0]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[1]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2]); Daniel@0: }); Daniel@0: Daniel@0: it("retreives neighbour entityConfigs and viewConfigs", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[0]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[1]); Daniel@0: testedConfigGrid.entityConfigs.add(testEntityConfigs[2]); Daniel@0: Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[0]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[1]); Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2]); Daniel@0: Daniel@0: expect(testedConfigGrid.getPrevEntityNeighbour(testEntityConfigs[0])).toBe(undefined); Daniel@0: expect(testedConfigGrid.getPrevEntityNeighbour(testEntityConfigs[1])).toEqual(testEntityConfigs[0]); Daniel@0: expect(testedConfigGrid.getPrevEntityNeighbour(testEntityConfigs[2])).toEqual(testEntityConfigs[1]); Daniel@0: expect(testedConfigGrid.getNextEntityNeighbour(testEntityConfigs[0])).toEqual(testEntityConfigs[1]); Daniel@0: expect(testedConfigGrid.getNextEntityNeighbour(testEntityConfigs[1])).toEqual(testEntityConfigs[2]); Daniel@0: expect(testedConfigGrid.getNextEntityNeighbour(testEntityConfigs[2])).toBe(undefined); Daniel@0: Daniel@0: expect(function(){testedConfigGrid.getPrevEntityNeighbour(testIrrelevantEntityConfigs[0]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid.getNextEntityNeighbour(testIrrelevantEntityConfigs[0]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid.getPrevEntityNeighbour(testViewConfigs[0]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid.getNextEntityNeighbour(testViewConfigs[0]);}).toThrow(); Daniel@0: Daniel@0: expect(testedConfigGrid.getPrevViewNeighbour(testViewConfigs[0])).toEqual(undefined); Daniel@0: expect(testedConfigGrid.getPrevViewNeighbour(testViewConfigs[1])).toEqual(testViewConfigs[0]); Daniel@0: expect(testedConfigGrid.getPrevViewNeighbour(testViewConfigs[2])).toEqual(testViewConfigs[1]); Daniel@0: expect(testedConfigGrid.getNextViewNeighbour(testViewConfigs[0])).toEqual(testViewConfigs[1]); Daniel@0: expect(testedConfigGrid.getNextViewNeighbour(testViewConfigs[1])).toEqual(testViewConfigs[2]); Daniel@0: expect(testedConfigGrid.getNextViewNeighbour(testViewConfigs[2])).toEqual(undefined); Daniel@0: Daniel@0: expect(function(){testedConfigGrid.getPrevViewNeighbour(testIrrelevantViewConfigs[0]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid.getNextViewNeighbour(testIrrelevantViewConfigs[0]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid.getPrevViewNeighbour(testEntityConfigs[0]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid.getNextViewNeighbour(testEntityConfigs[0]);}).toThrow(); Daniel@0: }); Daniel@0: Daniel@0: it("relocates entityConfigs and viewConfigs", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: _.each([ Daniel@0: { Daniel@0: configCollection: testedConfigGrid.entityConfigs, Daniel@0: relocateFunctionName: "relocateEntityConfig", Daniel@0: relevantConfigs: testEntityConfigs, Daniel@0: irrelevantConfigs: testIrrelevantEntityConfigs, Daniel@0: }, Daniel@0: { Daniel@0: configCollection: testedConfigGrid.viewConfigs, Daniel@0: relocateFunctionName: "relocateViewConfig", Daniel@0: relevantConfigs: testViewConfigs, Daniel@0: irrelevantConfigs: testIrrelevantViewConfigs Daniel@0: } Daniel@0: ], function(currentDimension) { Daniel@0: Daniel@0: currentDimension.configCollection.add(currentDimension.relevantConfigs[0]); Daniel@0: currentDimension.configCollection.add(currentDimension.relevantConfigs[1]); Daniel@0: currentDimension.configCollection.add(currentDimension.relevantConfigs[2]); Daniel@0: expect(currentDimension.configCollection.size()).toEqual(3); Daniel@0: Daniel@0: // index Daniel@0: testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.relevantConfigs[1], 0); Daniel@0: expect(currentDimension.configCollection.at(0)).toEqual(currentDimension.relevantConfigs[1]); Daniel@0: expect(currentDimension.configCollection.at(1)).toEqual(currentDimension.relevantConfigs[0]); Daniel@0: expect(currentDimension.configCollection.at(2)).toEqual(currentDimension.relevantConfigs[2]); Daniel@0: Daniel@0: // config Daniel@0: testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.relevantConfigs[1], currentDimension.relevantConfigs[2]); Daniel@0: expect(currentDimension.configCollection.at(0)).toEqual(currentDimension.relevantConfigs[0]); Daniel@0: expect(currentDimension.configCollection.at(1)).toEqual(currentDimension.relevantConfigs[1]); Daniel@0: expect(currentDimension.configCollection.at(2)).toEqual(currentDimension.relevantConfigs[2]); Daniel@0: Daniel@0: // config cid Daniel@0: testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.relevantConfigs[2], currentDimension.relevantConfigs[0].getClientId()); Daniel@0: expect(currentDimension.configCollection.at(0)).toEqual(currentDimension.relevantConfigs[2]); Daniel@0: expect(currentDimension.configCollection.at(1)).toEqual(currentDimension.relevantConfigs[0]); Daniel@0: expect(currentDimension.configCollection.at(2)).toEqual(currentDimension.relevantConfigs[1]); Daniel@0: Daniel@0: // exceptional cases Daniel@0: expect(function(){testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.irrelevantConfigs[1], 0);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid[currentDimension.relocateFunctionName](relevantConfigs[1], currentDimension.irrelevantConfigs[1]);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.relevantConfigs[1], -1);}).toThrow(); Daniel@0: expect(function(){testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.relevantConfigs[1], 4);}).toThrow(); Daniel@0: Daniel@0: // index - last Daniel@0: testedConfigGrid[currentDimension.relocateFunctionName](currentDimension.relevantConfigs[1], 3); Daniel@0: expect(currentDimension.configCollection.at(0)).toEqual(currentDimension.relevantConfigs[2]); Daniel@0: expect(currentDimension.configCollection.at(1)).toEqual(currentDimension.relevantConfigs[0]); Daniel@0: expect(currentDimension.configCollection.at(2)).toEqual(currentDimension.relevantConfigs[1]); Daniel@0: Daniel@0: // clone of a config Daniel@0: var clone = new App.ContextModule.Config(currentDimension.relevantConfigs[1].serialize()); Daniel@0: expect(function(){testedConfigGrid[currentDimension.relocateFunctionName](clone, 0);}).toThrow(); Daniel@0: }); Daniel@0: }); Daniel@0: Daniel@0: xit("works with selectedEntityConfigClientId and selectedViewConfigClientId", function() { Daniel@0: }); Daniel@0: Daniel@0: xit("performs combined actions: addEntityAndSelectIt, addViewAndSelectIt", function() { Daniel@0: }); Daniel@0: Daniel@0: xit("performs combined actions: removeEntityAndSelectNeighbour, removeViewAndSelectNeighbour", function() { Daniel@0: }); Daniel@0: Daniel@0: it("serializes and unserializes itself", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: var originalSerializedObject = { Daniel@0: entityConfigs: [ Daniel@0: testEntityConfigs[1].serialize(), Daniel@0: testEntityConfigs[2].serialize(), Daniel@0: testEntityConfigs[0].serialize(), Daniel@0: ], Daniel@0: viewConfigs: [ Daniel@0: testViewConfigs[0].serialize(), Daniel@0: testViewConfigs[1].serialize() Daniel@0: ], Daniel@0: }; Daniel@0: testedConfigGrid.unserialize(originalSerializedObject); Daniel@0: Daniel@0: expect(testedConfigGrid.entityConfigs.size()).toEqual(3); Daniel@0: expect(testedConfigGrid.viewConfigs.size()).toEqual(2); Daniel@0: Daniel@0: expect(testedConfigGrid.entityConfigs.at(0).getClientId()).toEqual(testEntityConfigs[1].getClientId()); Daniel@0: expect(testedConfigGrid.entityConfigs.at(1).getClientId()).toEqual(testEntityConfigs[2].getClientId()); Daniel@0: expect(testedConfigGrid.entityConfigs.at(2).getClientId()).toEqual(testEntityConfigs[0].getClientId()); Daniel@0: Daniel@0: expect(testedConfigGrid.viewConfigs.at(0).getClientId()).toEqual(testViewConfigs[0].getClientId()); Daniel@0: expect(testedConfigGrid.viewConfigs.at(1).getClientId()).toEqual(testViewConfigs[1].getClientId()); Daniel@0: Daniel@0: expect(testedConfigGrid.serialize()).toEqual(originalSerializedObject); Daniel@0: Daniel@0: testedConfigGrid.relocateEntityConfig(testedConfigGrid.entityConfigs.at(2), 0); Daniel@0: testedConfigGrid.entityConfigs.remove(testedConfigGrid.entityConfigs.at(2)); Daniel@0: testedConfigGrid.entityConfigs.add(testIrrelevantEntityConfigs[0]); Daniel@0: Daniel@0: testedConfigGrid.viewConfigs.add(testViewConfigs[2]); Daniel@0: testedConfigGrid.relocateViewConfig(testedConfigGrid.viewConfigs.at(2), 0); Daniel@0: testedConfigGrid.relocateViewConfig(testedConfigGrid.viewConfigs.at(1), 3); Daniel@0: testedConfigGrid.viewConfigs.add(testIrrelevantViewConfigs[0]); Daniel@0: Daniel@0: var newSerializedObject = { Daniel@0: entityConfigs: [ Daniel@0: testEntityConfigs[0].serialize(), Daniel@0: testEntityConfigs[1].serialize(), Daniel@0: testIrrelevantEntityConfigs[0].serialize() Daniel@0: ], Daniel@0: viewConfigs: [ Daniel@0: testViewConfigs[2].serialize(), Daniel@0: testViewConfigs[1].serialize(), Daniel@0: testViewConfigs[0].serialize(), Daniel@0: testIrrelevantViewConfigs[0].serialize() Daniel@0: ], Daniel@0: }; Daniel@0: expect(testedConfigGrid.serialize()).toEqual(newSerializedObject); Daniel@0: }); Daniel@0: Daniel@0: it("unserializes itself from faulty serialized objects", function() { Daniel@0: var faultySerializedObjects = [ Daniel@0: null, Daniel@0: undefined, Daniel@0: 42, Daniel@0: "test", Daniel@0: {entityConfigs: 42}, Daniel@0: {viewConfigs: [testViewConfigs[1].serialize()], "foo": "bar"}, Daniel@0: ]; Daniel@0: Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: _.each(faultySerializedObjects, function(faultySerializedObject) { Daniel@0: expect(function() { Daniel@0: testedConfigGrid.unserialize(faultySerializedObject); Daniel@0: }).not.toThrow(); Daniel@0: }); Daniel@0: }); Daniel@0: Daniel@0: it("triggers events when real changes occur", function() { Daniel@0: var testedConfigGrid = new App.ContextModule.ConfigGrid(); Daniel@0: Daniel@0: _.each([ Daniel@0: { Daniel@0: configCollection: testedConfigGrid.entityConfigs, Daniel@0: relocateFunctionName: "relocateEntityConfig", Daniel@0: relevantConfigs: testEntityConfigs, Daniel@0: irrelevantConfigs: testIrrelevantEntityConfigs, Daniel@0: Daniel@0: changeLayoutEventName: "change_layout", Daniel@0: changeConfigEventPrefix: "change_entity:", Daniel@0: changeConfigNeighboursPrefix: "change_entity_neighbours:", Daniel@0: }, Daniel@0: { Daniel@0: configCollection: testedConfigGrid.viewConfigs, Daniel@0: relocateFunctionName: "relocateViewConfig", Daniel@0: relevantConfigs: testViewConfigs, Daniel@0: irrelevantConfigs: testIrrelevantViewConfigs, Daniel@0: Daniel@0: changeLayoutEventName: "change_layout", Daniel@0: changeConfigEventPrefix: "change_view:", Daniel@0: changeConfigNeighboursPrefix: "change_view_neighbours:", Daniel@0: } Daniel@0: ], function(currentDimension) { Daniel@0: Daniel@0: var spyNames = [ Daniel@0: "change", Daniel@0: "changeCollection", Daniel@0: "changeConfig0", Daniel@0: "changeConfig1", Daniel@0: "changeConfig2", Daniel@0: "changeConfigNeighbours0", Daniel@0: "changeConfigNeighbours1", Daniel@0: "changeConfigNeighbours2" Daniel@0: ]; Daniel@0: var spy = jasmine.createSpyObj("listener", spyNames); Daniel@0: Daniel@0: testedConfigGrid.on("change", spy.change, spy); Daniel@0: testedConfigGrid.on(currentDimension.changeLayoutEventName, spy.changeCollection, spy); Daniel@0: testedConfigGrid.on(currentDimension.changeConfigEventPrefix + currentDimension.relevantConfigs[0].getClientId(), spy.changeConfig0, spy); Daniel@0: testedConfigGrid.on(currentDimension.changeConfigEventPrefix + currentDimension.relevantConfigs[1].getClientId(), spy.changeConfig1, spy); Daniel@0: testedConfigGrid.on(currentDimension.changeConfigEventPrefix + currentDimension.relevantConfigs[2].getClientId(), spy.changeConfig2, spy); Daniel@0: Daniel@0: testedConfigGrid.on(currentDimension.changeConfigNeighboursPrefix + currentDimension.relevantConfigs[0].getClientId(), spy.changeConfigNeighbours0, spy); Daniel@0: testedConfigGrid.on(currentDimension.changeConfigNeighboursPrefix + currentDimension.relevantConfigs[1].getClientId(), spy.changeConfigNeighbours1, spy); Daniel@0: testedConfigGrid.on(currentDimension.changeConfigNeighboursPrefix + currentDimension.relevantConfigs[2].getClientId(), spy.changeConfigNeighbours2, spy); Daniel@0: Daniel@0: var expectSpyCallCount = function() { Daniel@0: _.each(arguments, function(arg, i) { Daniel@0: //console.log("___", i, "--->", spy[spyNames[i]].calls.count(), arg); Daniel@0: expect(spy[spyNames[i]].calls.count()).toEqual(arg); Daniel@0: }); Daniel@0: for (var i = arguments.length; i < spyNames.length; i++) { Daniel@0: expect(spy[spyNames[i]].calls.count()).toEqual(0); Daniel@0: } Daniel@0: }; Daniel@0: var resetSpyCallCount = function() { Daniel@0: _.each(spyNames, function(spyName) { Daniel@0: spy[spyName].calls.reset(); Daniel@0: }); Daniel@0: }; Daniel@0: expectSpyCallCount(0); Daniel@0: resetSpyCallCount(); Daniel@0: Daniel@0: testedConfigGrid.unserialize(null); Daniel@0: resetSpyCallCount(); Daniel@0: Daniel@0: // Unserialize the whole grid Daniel@0: var defaultSerializedState = { Daniel@0: entityConfigs: [ Daniel@0: testEntityConfigs[0].serialize(), Daniel@0: testEntityConfigs[1].serialize(), Daniel@0: testEntityConfigs[2].serialize(), Daniel@0: ], Daniel@0: viewConfigs: [ Daniel@0: testViewConfigs[0].serialize(), Daniel@0: testViewConfigs[1].serialize(), Daniel@0: testViewConfigs[2].serialize(), Daniel@0: ], Daniel@0: }; Daniel@0: testedConfigGrid.unserialize(defaultSerializedState); Daniel@0: expectSpyCallCount(1, 1); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: testedConfigGrid.unserialize(defaultSerializedState); Daniel@0: expectSpyCallCount(0, 0); Daniel@0: Daniel@0: // Modify parameters Daniel@0: resetSpyCallCount(); Daniel@0: expectSpyCallCount(0); Daniel@0: Daniel@0: currentDimension.configCollection.at(1).updateParameter("my", 1); Daniel@0: expectSpyCallCount(1, 0, Daniel@0: 0, 1, 0, Daniel@0: 1, 0, 1); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: currentDimension.configCollection.at(2).planParameterUpdate("my", 1); Daniel@0: expectSpyCallCount(1, 0, Daniel@0: 0, 0, 1, Daniel@0: 0, 1, 0); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: currentDimension.configCollection.remove(currentDimension.configCollection.at(2)); Daniel@0: expect(currentDimension.configCollection.size()).toEqual(2); Daniel@0: expectSpyCallCount(1, 1, Daniel@0: 0, 0, 0, Daniel@0: 0, 1, 0); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: testedConfigGrid.unserialize(defaultSerializedState); Daniel@0: expectSpyCallCount(1, 1, Daniel@0: 0, 1, 0, Daniel@0: 1, 1, 0); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: Daniel@0: expect(function() { Daniel@0: testedConfigGrid.relocateEntityConfig(testEntityConfigs[2], 0); Daniel@0: }).toThrow(); Daniel@0: expect(function() { Daniel@0: testedConfigGrid.relocateViewConfig(testViewConfigs[2], 0); Daniel@0: }).toThrow(); Daniel@0: Daniel@0: testedConfigGrid.relocateEntityConfig(testedConfigGrid.entityConfigs.at(1), 0); Daniel@0: testedConfigGrid.relocateViewConfig(testedConfigGrid.viewConfigs.at(1), 0); Daniel@0: expectSpyCallCount(2, 2, Daniel@0: 0, 0, 0, Daniel@0: 1, 1, 1); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: testedConfigGrid.unserialize(defaultSerializedState); Daniel@0: expectSpyCallCount(1, 1, Daniel@0: 0, 0, 0, Daniel@0: 1, 1, 1); Daniel@0: Daniel@0: resetSpyCallCount(); Daniel@0: currentDimension.configCollection.add(currentDimension.irrelevantConfigs[0], {at: 0}); Daniel@0: expectSpyCallCount(1, 1, Daniel@0: 0, 0, 0, Daniel@0: 1, 0, 0); Daniel@0: }); Daniel@0: }); Daniel@0: });