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

Reply via email to