Updated Branches: refs/heads/trunk 6a7855c83 -> aa97384e4
AMBARI-2672. Add Heatmaps Unit tests. (Aleksandr Kovalenko via yusaku) Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/aa97384e Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/aa97384e Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/aa97384e Branch: refs/heads/trunk Commit: aa97384e4e65d668a4d513ac818f023385a8b66e Parents: 6a7855c Author: Yusaku Sako <[email protected]> Authored: Wed Jul 17 11:28:15 2013 -0700 Committer: Yusaku Sako <[email protected]> Committed: Wed Jul 17 11:28:15 2013 -0700 ---------------------------------------------------------------------- ambari-web/app/assets/test/tests.js | 3 +- .../main/admin/security/add/step3_test.js | 74 ------------- .../main/admin/security/add/step4_test.js | 63 +++++++++++ .../controllers/main/charts/heatmap_test.js | 105 +++++++++++++++++++ 4 files changed, 170 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aa97384e/ambari-web/app/assets/test/tests.js ---------------------------------------------------------------------- diff --git a/ambari-web/app/assets/test/tests.js b/ambari-web/app/assets/test/tests.js index d19ba77..a1e3731 100644 --- a/ambari-web/app/assets/test/tests.js +++ b/ambari-web/app/assets/test/tests.js @@ -21,7 +21,8 @@ require('test/controllers/global/cluster_controller_test'); require('test/controllers/main/app_contoller_test'); require('test/controllers/main/admin/cluster_test'); require('test/controllers/main/admin/security/add/step2_test'); -require('test/controllers/main/admin/security/add/step3_test'); +require('test/controllers/main/admin/security/add/step4_test'); +require('test/controllers/main/charts/heatmap_test'); require('test/controllers/main/charts/heatmap_metrics/heatmap_metric_test'); require('test/controllers/main/service/reassign_controller_test'); require('test/controllers/main/dashboard_test'); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aa97384e/ambari-web/test/controllers/main/admin/security/add/step3_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/security/add/step3_test.js b/ambari-web/test/controllers/main/admin/security/add/step3_test.js deleted file mode 100644 index 9f898a8..0000000 --- a/ambari-web/test/controllers/main/admin/security/add/step3_test.js +++ /dev/null @@ -1,74 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - -var App = require('app'); -require('controllers/main/admin/security/add/step3'); -require('utils/polling'); -require('models/cluster_states'); - -describe('App.MainAdminSecurityAddStep3Controller', function () { - - /** - * Test object - */ - var controller = App.MainAdminSecurityAddStep3Controller.create(); - - - describe('#moveToNextStage()', function () { - controller.reopen({ - startStage: function(){}, - saveStages: function(){} - }); - App.clusterStatus.reopen({ - setClusterStatus: function(){} - }); - - it('first stage is started', function(){ - controller.set('stages', [ - App.Poll.create({stage: 'stage1', isStarted: false, isCompleted: false}), - App.Poll.create({stage: 'stage2', isStarted: false, isCompleted: false}), - App.Poll.create({stage: 'stage3', isStarted: false, isCompleted: false}) - ]); - controller.moveToNextStage(); - - expect(controller.get('stages').findProperty('stage', 'stage1').get('isStarted')).to.equal(true); - }); - it('second stage is started', function(){ - controller.set('stages', [ - App.Poll.create({stage: 'stage1', isStarted: true, isCompleted: true}), - App.Poll.create({stage: 'stage2', isStarted: false, isCompleted: false}), - App.Poll.create({stage: 'stage3', isStarted: false, isCompleted: false}) - ]); - controller.moveToNextStage(); - - expect(controller.get('stages').findProperty('stage', 'stage2').get('isStarted')).to.equal(true); - }); - it('third stage is started', function(){ - controller.set('stages', [ - App.Poll.create({stage: 'stage1', isStarted: true, isCompleted: true}), - App.Poll.create({stage: 'stage2', isStarted: true, isCompleted: true}), - App.Poll.create({stage: 'stage3', isStarted: false, isCompleted: false}) - ]); - controller.moveToNextStage(); - - expect(controller.get('stages').findProperty('stage', 'stage3').get('isStarted')).to.equal(true); - }); - - }); -}); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aa97384e/ambari-web/test/controllers/main/admin/security/add/step4_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/admin/security/add/step4_test.js b/ambari-web/test/controllers/main/admin/security/add/step4_test.js new file mode 100644 index 0000000..0096bfb --- /dev/null +++ b/ambari-web/test/controllers/main/admin/security/add/step4_test.js @@ -0,0 +1,63 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +var App = require('app'); +require('controllers/main/admin/security/add/step4'); +require('utils/polling'); +require('models/cluster_states'); + +describe('App.MainAdminSecurityAddStep4Controller', function () { + + /** + * Test object + */ + var controller = App.MainAdminSecurityAddStep4Controller.create(); + + describe('#moveToNextStage()', function () { + controller.reopen({ + saveStages: function(){}, + enableSubmit: function(){}, + loadClusterConfigs: function(){} + }); + App.clusterStatus.reopen({ + setClusterStatus: function(){} + }); + + controller.set('stages', [ + App.Poll.create({stage: 'stage2', isStarted: false, isPolling: true, isCompleted: false, start: function(){}}), + App.Poll.create({stage: 'stage3', isStarted: false, isPolling: false, isCompleted: false, start: function(){}}), + App.Poll.create({stage: 'stage4', isStarted: false, isPolling: true, isCompleted: false, start: function(){}}) + ]); + + it('stage2 is started', function(){ + controller.moveToNextStage(controller.get('stages').findProperty('stage', 'stage2')); + expect(controller.get('stages').findProperty('stage', 'stage2').get('isStarted')).to.equal(true); + }); + + it('stage3 is started', function(){ + controller.moveToNextStage(controller.get('stages').findProperty('stage', 'stage3')); + expect(controller.get('stages').findProperty('stage', 'stage3').get('isStarted')).to.equal(true); + }); + + it('stage4 is started', function(){ + controller.moveToNextStage(controller.get('stages').findProperty('stage', 'stage4')); + expect(controller.get('stages').findProperty('stage', 'stage4').get('isStarted')).to.equal(true); + }); + }); +}); http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/aa97384e/ambari-web/test/controllers/main/charts/heatmap_test.js ---------------------------------------------------------------------- diff --git a/ambari-web/test/controllers/main/charts/heatmap_test.js b/ambari-web/test/controllers/main/charts/heatmap_test.js new file mode 100644 index 0000000..2e51333 --- /dev/null +++ b/ambari-web/test/controllers/main/charts/heatmap_test.js @@ -0,0 +1,105 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +var App = require('app'); +require('controllers/main/charts/heatmap'); + +describe('MainChartsHeatmapController', function () { + + describe('#validation()', function () { + var controller = App.MainChartsHeatmapController.create({ + allMetrics: [], + selectedMetric: Ember.Object.create({maximumValue: 100}) + }); + it('should set maximumValue if inputMaximum consists only of digits', function () { + controller.set("inputMaximum", 5); + expect(controller.get('selectedMetric.maximumValue')).to.equal(5); + }) + it('should not set maximumValue if inputMaximum consists not only of digits', function () { + controller.set("inputMaximum", 'qwerty'); + expect(controller.get('selectedMetric.maximumValue')).to.equal(5); + }) + it('should not set maximumValue if inputMaximum consists not only of digits', function () { + controller.set("inputMaximum", '100%'); + expect(controller.get('selectedMetric.maximumValue')).to.equal(5); + }) + it('should set maximumValue if inputMaximum consists only of digits', function () { + controller.set("inputMaximum", 1000); + expect(controller.get('selectedMetric.maximumValue')).to.equal(1000); + }) + }); + + describe('#showHeatMapMetric()', function () { + var controller = App.MainChartsHeatmapController.create({ + allMetrics: [], + selectedMetric: Ember.Object.create({maximumValue: 100}), + loadMetrics: function () { + } + }); + controller.set("selectedMetric", 100); + it('should not set selectedMetric event.context if it is not defined', function () { + controller.showHeatMapMetric({}); + expect(controller.get('selectedMetric')).to.equal(100); + }) + it('should set selectedMetric event.context if it is defined', function () { + controller.showHeatMapMetric({context: 5}); + expect(controller.get('selectedMetric')).to.equal(5); + }) + }); + + describe('#loadMetrics()', function () { + var controller = App.MainChartsHeatmapController.create({ + testPassed: false, + allMetrics: [], + inputMaximum: 10 + }); + controller.set('selectedMetric', Ember.Object.create({ + maximumValue: 100, + refreshHostSlots: function () { + controller.set('testPassed', true); + } + })) + controller.loadMetrics(); + it('should set inputMaximum as selectedMetric.maximumValue', function () { + expect(controller.get('inputMaximum')).to.equal(100); + }) + it('should call refreshHostSlots from selectedMetric', function () { + expect(controller.get('testPassed')).to.equal(true); + }) + }); + + describe('#rackClass', function () { + var controller = App.MainChartsHeatmapController.create({ + allMetrics: [], + cluster: {racks: [1]} + }); + it('should return "span12" for 1 cluster rack', function () { + expect(controller.get('rackClass')).to.equal('span12'); + }) + it('should return "span6" for 2 cluster racks', function () { + controller.set('cluster', {racks: [1, 2]}); + expect(controller.get('rackClass')).to.equal('span6'); + }) + it('should return "span4" for 3 cluster racks', function () { + controller.set('cluster', {racks: [1, 2, 3]}); + expect(controller.get('rackClass')).to.equal('span4'); + }) + }); +}); +
