Browse Source

AMBARI-2672. Add Heatmaps Unit tests. (Aleksandr Kovalenko via yusaku)

Yusaku Sako 12 years ago
parent
commit
aa97384e4e

+ 2 - 1
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');

+ 19 - 30
ambari-web/test/controllers/main/admin/security/add/step3_test.js → ambari-web/test/controllers/main/admin/security/add/step4_test.js

@@ -18,57 +18,46 @@
 
 
 var App = require('app');
-require('controllers/main/admin/security/add/step3');
+require('controllers/main/admin/security/add/step4');
 require('utils/polling');
 require('models/cluster_states');
 
-describe('App.MainAdminSecurityAddStep3Controller', function () {
+describe('App.MainAdminSecurityAddStep4Controller', function () {
 
   /**
    * Test object
    */
-  var controller = App.MainAdminSecurityAddStep3Controller.create();
-
+  var controller = App.MainAdminSecurityAddStep4Controller.create();
 
   describe('#moveToNextStage()', function () {
     controller.reopen({
-      startStage: function(){},
-      saveStages: function(){}
+      saveStages: function(){},
+      enableSubmit: function(){},
+      loadClusterConfigs: 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();
+    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('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();
 
+    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);
+    });
   });
 });

+ 105 - 0
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');
+    })
+  });
+});
+