You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2013/06/27 14:30:39 UTC

svn commit: r1497323 - in /incubator/ambari/trunk/ambari-web/test/models: ./ host_component_test.js host_test.js rack_test.js

Author: yusaku
Date: Thu Jun 27 12:30:39 2013
New Revision: 1497323

URL: http://svn.apache.org/r1497323
Log:
AMBARI-2375. Unit Tests: Added tests to models. Committing missed files. (Andrii Tkach via yusaku)

Added:
    incubator/ambari/trunk/ambari-web/test/models/
    incubator/ambari/trunk/ambari-web/test/models/host_component_test.js
    incubator/ambari/trunk/ambari-web/test/models/host_test.js
    incubator/ambari/trunk/ambari-web/test/models/rack_test.js

Added: incubator/ambari/trunk/ambari-web/test/models/host_component_test.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/test/models/host_component_test.js?rev=1497323&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-web/test/models/host_component_test.js (added)
+++ incubator/ambari/trunk/ambari-web/test/models/host_component_test.js Thu Jun 27 12:30:39 2013
@@ -0,0 +1,79 @@
+/**
+ * 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('models/host_component');
+require('models/host');
+require('router');
+require('models/service/hdfs');
+require('controllers/main/service');
+
+
+describe('App.HostComponent', function () {
+
+
+  var hostComponentData = [
+    {
+      id: 'component1',
+      component_name: 'DATANODE',
+      host_id: 'host1'
+    },
+    {
+      id: 'component2',
+      component_name: 'DATANODE',
+      host_id: 'host3'
+    },
+    {
+      id: 'component3',
+      component_name: 'TASKTRACKER',
+      host_id: 'host2'
+    }
+  ];
+
+  var hdfsData = {
+    id: 'HDFS',
+    service_name: 'HDFS',
+    decommission_data_nodes: ['host1', 'host2']
+  };
+
+
+  //3 hosts are loaded to the model (host1, host2, host3) in models/host_test
+  App.store.load(App.HDFSService, hdfsData);
+  App.store.loadMany(App.HostComponent, hostComponentData);
+
+
+
+  describe('#isDecommissioning', function () {
+
+    it('component1 is DATANODE and on decommissioned host', function () {
+      var hostComponent = App.HostComponent.find().findProperty('id', 'component1');
+      expect(hostComponent.get('isDecommissioning')).to.equal(true);
+    });
+    it('component2 is DATANODE but not on decommissioned host', function () {
+      var hostComponent = App.HostComponent.find().findProperty('id', 'component2');
+      expect(hostComponent.get('isDecommissioning')).to.equal(false);
+    });
+    it('component3 isn\'t DATANODE', function () {
+      var hostComponent = App.HostComponent.find().findProperty('id', 'component3');
+      expect(hostComponent.get('isDecommissioning')).to.equal(false);
+    });
+  });
+
+
+});

Added: incubator/ambari/trunk/ambari-web/test/models/host_test.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/test/models/host_test.js?rev=1497323&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-web/test/models/host_test.js (added)
+++ incubator/ambari/trunk/ambari-web/test/models/host_test.js Thu Jun 27 12:30:39 2013
@@ -0,0 +1,134 @@
+/**
+ * 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('models/host');
+
+describe('App.Host', function () {
+
+  var data = [
+    {
+      id: 'host1',
+      host_name: 'host1',
+      memory: 200000,
+      disk_total: 100.555,
+      disk_free: 90.555,
+      health_status: 'HEALTHY',
+      last_heart_beat_time: (new Date()).getTime() - 18100000
+    },
+    {
+      id: 'host2',
+      host_name: 'host2',
+      memory: 99999,
+      disk_total: 90,
+      disk_free: 90,
+      health_status: 'HEALTHY',
+      last_heart_beat_time: (new Date()).getTime() - 170000
+    },
+    {
+      id: 'host3',
+      host_name: 'host3',
+      memory: 99999,
+      disk_total: 99.999,
+      disk_free: 0,
+      health_status: 'UNKNOWN',
+      last_heart_beat_time: (new Date()).getTime()
+    }
+  ];
+  App.set('testMode', false);
+  App.store.loadMany(App.Host, data);
+
+  describe('#diskUsedFormatted', function () {
+
+    it('host1 - 10GB ', function () {
+      var host = App.Host.find().findProperty('hostName', 'host1');
+      expect(host.get('diskUsedFormatted')).to.equal('10GB');
+    });
+    it('host2 - 0GB', function () {
+      var host = App.Host.find().findProperty('hostName', 'host2');
+      expect(host.get('diskUsedFormatted')).to.equal('0GB');
+    });
+    it('host3 - 100GB', function () {
+      var host = App.Host.find().findProperty('hostName', 'host3');
+      expect(host.get('diskUsedFormatted')).to.equal('100GB');
+    });
+  });
+
+  describe('#diskTotalFormatted', function () {
+
+    it('host1 - 100.56GB ', function () {
+      var host = App.Host.find().findProperty('hostName', 'host1');
+      expect(host.get('diskTotalFormatted')).to.equal('100.56GB');
+    });
+    it('host2 - 90GB', function () {
+      var host = App.Host.find().findProperty('hostName', 'host2');
+      expect(host.get('diskTotalFormatted')).to.equal('90GB');
+    });
+    it('host3 - 100GB', function () {
+      var host = App.Host.find().findProperty('hostName', 'host3');
+      expect(host.get('diskTotalFormatted')).to.equal('100GB');
+    });
+  });
+
+  describe('#diskUsageFormatted', function () {
+
+    it('host1 - 9.94% ', function () {
+      var host = App.Host.find().findProperty('hostName', 'host1');
+      expect(host.get('diskUsageFormatted')).to.equal('9.94%');
+    });
+    it('host2 - 0%', function () {
+      var host = App.Host.find().findProperty('hostName', 'host2');
+      expect(host.get('diskUsageFormatted')).to.equal('0%');
+    });
+    it('host3 - 100%', function () {
+      var host = App.Host.find().findProperty('hostName', 'host3');
+      expect(host.get('diskUsageFormatted')).to.equal('100%');
+    });
+  });
+
+  describe('#isNotHeartBeating', function () {
+
+    it('host1 - true ', function () {
+      var host = App.Host.find().findProperty('hostName', 'host1');
+      expect(host.get('isNotHeartBeating')).to.equal(true);
+    });
+    it('host2 - false', function () {
+      var host = App.Host.find().findProperty('hostName', 'host2');
+      expect(host.get('isNotHeartBeating')).to.equal(false);
+    });
+    it('host3 - false', function () {
+      var host = App.Host.find().findProperty('hostName', 'host3');
+      expect(host.get('isNotHeartBeating')).to.equal(false);
+    });
+  });
+
+  describe('#updateHealthClass', function () {
+
+    it('host1 has status health-status-DEAD-YELLOW', function () {
+      var host = App.Host.find().findProperty('hostName', 'host1');
+      host.updateHealthClass();
+      expect(host.get('healthClass')).to.equal('health-status-DEAD-YELLOW');
+    });
+    it('host3 has status health-status-DEAD-YELLOW', function () {
+      var host = App.Host.find().findProperty('hostName', 'host3');
+      host.updateHealthClass();
+      expect(host.get('healthClass')).to.equal('health-status-DEAD-YELLOW');
+    });
+  });
+});

Added: incubator/ambari/trunk/ambari-web/test/models/rack_test.js
URL: http://svn.apache.org/viewvc/incubator/ambari/trunk/ambari-web/test/models/rack_test.js?rev=1497323&view=auto
==============================================================================
--- incubator/ambari/trunk/ambari-web/test/models/rack_test.js (added)
+++ incubator/ambari/trunk/ambari-web/test/models/rack_test.js Thu Jun 27 12:30:39 2013
@@ -0,0 +1,53 @@
+/**
+ * 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('models/host');
+require('models/rack');
+
+describe('App.Rack', function () {
+
+  var data = {
+    id: 'rack1',
+    name: 'rack1'
+  };
+
+  App.store.load(App.Rack, data);
+
+  describe('#liveHostsCount', function () {
+
+    it('rack1 has two live hosts', function () {
+      var rack = App.Rack.find().findProperty('name', 'rack1');
+      expect(rack.get('liveHostsCount')).to.equal(2);
+    });
+
+    it('rack1 has three live hosts', function () {
+      App.store.load(App.Host, {
+        id: 'host3',
+        host_name: 'host3',
+        health_status: 'HEALTHY'
+      });
+      var rack = App.Rack.find().findProperty('name', 'rack1');
+      rack.set('name', 'rack1');
+      expect(rack.get('liveHostsCount')).to.equal(3);
+    });
+  });
+
+
+});