http://git-wip-us.apache.org/repos/asf/ambari/blob/1d0fe34b/ambari-web/test/installer/step4_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/installer/step4_test.js 
b/ambari-web/test/installer/step4_test.js
deleted file mode 100644
index a1d9ed5..0000000
--- a/ambari-web/test/installer/step4_test.js
+++ /dev/null
@@ -1,484 +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 Ember = require('ember');
-var App = require('app');
-require('controllers/wizard/step4_controller');
-
-describe('App.WizardStep4Controller', function () {
-
-  var services = [
-    'HDFS', 'MAPREDUCE', 'NAGIOS', 'GANGLIA', 'OOZIE', 'HIVE', 'HBASE', 'PIG', 
'SCOOP', 'ZOOKEEPER', 'HCATALOG',
-    'WEBHCAT', 'YARN', 'MAPREDUCE2', 'FALCON', 'TEZ', 'STORM'
-  ];
-
-  var controller = App.WizardStep4Controller.create();
-  services.forEach(function(serviceName, index){
-    controller.pushObject(Ember.Object.create({
-      'serviceName':serviceName, 'isSelected': true, 'canBeSelected': true, 
'isInstalled': false, 'isDisabled': 'HDFS' === serviceName
-    }));
-  });
-
-  describe('#isSubmitDisabled', function () {
-    it('should return false if at least one selected service is not 
installed', function () {
-      expect(controller.get('isSubmitDisabled')).to.equal(false);
-    });
-    it('should return true if all selected services are already installed', 
function () {
-      controller.setEach('isInstalled', true);
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', false);
-      expect(controller.get('isSubmitDisabled')).to.equal(true);
-    });
-  });
-
-  describe('#isAll', function () {
-    it('should return true if all services are selected', function () {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', true);
-      expect(controller.get('isAll')).to.equal(true);
-    });
-
-    it('should return false if at least one service is not selected', function 
() {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', false);
-      expect(controller.get('isAll')).to.equal(false);
-    });
-  });
-
-  describe('#isMinimum', function () {
-    it('should return true if there are no services selected, except 
disabled', function () {
-      controller.setEach('isSelected', false);
-      expect(controller.get('isMinimum')).to.equal(true);
-    });
-
-    it('should return false if at least one service is selected, except 
disabled', function () {
-      controller.findProperty('serviceName', 'MAPREDUCE').set('isSelected', 
true);
-      expect(controller.get('isMinimum')).to.equal(false);
-    });
-  });
-
-  describe('#selectAll()', function () {
-    it('should select all services', function () {
-      controller.setEach('isSelected', false);
-      controller.selectAll();
-      expect(controller.filterProperty('canBeSelected', 
true).everyProperty('isSelected', true)).to.equal(true);
-    });
-  });
-
-  describe('#selectMinimum()', function () {
-    it('should set isSelected false for all not disabled services', function 
() {
-      controller.setEach('isSelected', true);
-      controller.selectMinimum();
-      expect(controller.findProperty('serviceName', 
'HDFS').get('isSelected')).to.equal(true);
-      expect(controller.filterProperty('isDisabled', 
false).everyProperty('isSelected', false)).to.equal(true);
-    });
-  });
-
-  describe('#needToAddMapReduce()', function () {
-    it('should return true if Pig is selected and MapReduce is not selected', 
function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'PIG').set('isSelected', true);
-      expect(controller.needToAddMapReduce()).to.equal(true);
-    });
-
-    it('should return true if Oozie is selected and MapReduce is not 
selected', function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'OOZIE').set('isSelected', true);
-      expect(controller.needToAddMapReduce()).to.equal(true);
-    });
-
-    it('should return true if Hive is selected and MapReduce is not selected', 
function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'HIVE').set('isSelected', true);
-      expect(controller.needToAddMapReduce()).to.equal(true);
-    });
-
-    it('should return false if MapReduce is selected or Pig, Oozie and Hive 
are not selected', function () {
-      controller.findProperty('serviceName', 'MAPREDUCE').set('isSelected', 
true);
-      expect(controller.needToAddMapReduce()).to.equal(false);
-      controller.setEach('isSelected', false);
-      expect(controller.needToAddMapReduce()).to.equal(false);
-    });
-  });
-
-  describe('#needToAddYarnMapReduce2()', function () {
-    it('should return true if Pig is selected and YARN+MapReduce2 is not 
selected', function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'PIG').set('isSelected', true);
-      expect(controller.needToAddYarnMapReduce2()).to.equal(true);
-    });
-
-    it('should return true if Oozie is selected and YARN+MapReduce2 is not 
selected', function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'OOZIE').set('isSelected', true);
-      expect(controller.needToAddYarnMapReduce2()).to.equal(true);
-    });
-
-    it('should return true if Hive is selected and YARN+MapReduce2 is not 
selected', function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'HIVE').set('isSelected', true);
-      expect(controller.needToAddYarnMapReduce2()).to.equal(true);
-    });
-
-    it('should return false if YARN+MapReduce2 is selected or Pig, Oozie and 
Hive are not selected', function () {
-      controller.findProperty('serviceName', 'YARN').set('isSelected', true);
-      expect(controller.needToAddYarnMapReduce2()).to.equal(false);
-      controller.setEach('isSelected', false);
-      expect(controller.needToAddYarnMapReduce2()).to.equal(false);
-    });
-  });
-
-  describe('#needToAddZooKeeper()', function () {
-    beforeEach(function() {
-      ajax_send = App.ajax.send;
-      App.ajax.send = function() {};
-    });
-
-    afterEach(function() {
-      App.ajax.send = ajax_send;
-    });
-    var originalStackVersion = App.get('currentStackVersion');
-
-    it('should return false if ZOOKEEPER is selected and Hadoop version above 
2', function () {
-      App.set('currentStackVersion', 'HDP-2.1.1');
-      controller.findProperty('serviceName', 'ZOOKEEPER').set('isSelected', 
true);
-      expect(controller.needToAddZooKeeper()).to.equal(false);
-    });
-    it('should return true if ZOOKEEPER is not selected and Hadoop version 
above 2', function () {
-      controller.findProperty('serviceName', 'ZOOKEEPER').set('isSelected', 
false);
-      expect(controller.needToAddZooKeeper()).to.equal(true);
-    });
-    it('should return false if none of the HBASE, HIVE, WEBHCAT, STORM is 
selected and Hadoop version below 2', function () {
-      App.set('currentStackVersion', 'HDP-1.3.0');
-      expect(controller.needToAddZooKeeper()).to.equal(false);
-    });
-    it('should return true if HBASE is not selected and Hadoop version below 
2', function () {
-      controller.findProperty('serviceName', 'HBASE').set('isSelected', true);
-      expect(controller.needToAddZooKeeper()).to.equal(true);
-    });
-    it('should return true if HBASE, HIVE, WEBHCAT, STORM are selected and 
Hadoop version below 2', function () {
-      controller.findProperty('serviceName', 'HIVE').set('isSelected', true);
-      controller.findProperty('serviceName', 'WEBHCAT').set('isSelected', 
true);
-      controller.findProperty('serviceName', 'STORM').set('isSelected', true);
-      expect(controller.needToAddZooKeeper()).to.equal(true);
-      App.set('currentStackVersion', originalStackVersion);
-    });
-  });
-
-  describe('#gangliaOrNagiosNotSelected()', function () {
-    it('should return true if Nagios or Ganglia is not selected', function () {
-      controller.setEach('isSelected', true);
-      controller.findProperty('serviceName', 'NAGIOS').set('isSelected', 
false);
-      expect(controller.gangliaOrNagiosNotSelected()).to.equal(true);
-      controller.setEach('isSelected', true);
-      controller.findProperty('serviceName', 'GANGLIA').set('isSelected', 
false);
-      expect(controller.gangliaOrNagiosNotSelected()).to.equal(true);
-    });
-
-    it('should return false if Nagios and Ganglia is selected', function () {
-      controller.setEach('isSelected', false);
-      controller.findProperty('serviceName', 'GANGLIA').set('isSelected', 
true);
-      controller.findProperty('serviceName', 'NAGIOS').set('isSelected', true);
-      expect(controller.gangliaOrNagiosNotSelected()).to.equal(false);
-    });
-  });
-
-  describe('#needToAddTez()', function () {
-    it('should return false if YARN is present, but not selected', function () 
{
-      controller.findProperty('serviceName', 'YARN').set('isSelected', false);
-      expect(controller.needToAddTez()).to.equal(false);
-    });
-    it('should return true if YARN is selected', function () {
-      controller.findProperty('serviceName', 'YARN').set('isSelected', true);
-      expect(controller.needToAddTez()).to.equal(true);
-    });
-  });
-
-  describe('#needToAddOozie()', function () {
-    it('should return false if FALCON is present, but not selected', function 
() {
-      controller.findProperty('serviceName', 'FALCON').set('isSelected', 
false);
-      expect(controller.needToAddOozie()).to.equal(false);
-    });
-    it('should return true if FALCON is selected', function () {
-      controller.findProperty('serviceName', 'FALCON').set('isSelected', true);
-      expect(controller.needToAddOozie()).to.equal(true);
-    });
-  });
-
-  describe('#noDFSs()', function () {
-    it('should return true if HDFS is not selected and GLUSTERFS is absent', 
function () {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', false);
-      expect(controller.noDFSs()).to.equal(true);
-    });
-    it('should return false if HDFS is selected and GLUSTERFS is absent', 
function () {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', true);
-      expect(controller.noDFSs()).to.equal(false);
-    });
-    it('should return true if HDFS is not selected and GLUSTERFS is not 
selected, but present', function () {
-      controller.pushObject(Ember.Object.create({
-        'serviceName':'GLUSTERFS', 'isSelected': false, 'canBeSelected': true, 
'isInstalled': false, 'isDisabled': false
-      }));
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', false);
-      expect(controller.noDFSs()).to.equal(true);
-    });
-    it('should return false if HDFS is not selected and GLUSTERFS is 
selected', function () {
-      controller.findProperty('serviceName', 'GLUSTERFS').set('isSelected', 
true);
-      expect(controller.noDFSs()).to.equal(false);
-    });
-  });
-
-  describe('#multipleDFSs()', function () {
-    it('should return true if HDFS is selected and GLUSTERFS is selected', 
function () {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', true);
-      controller.findProperty('serviceName', 'GLUSTERFS').set('isSelected', 
true);
-      expect(controller.multipleDFSs()).to.equal(true);
-    });
-    it('should return false if HDFS is not selected and GLUSTERFS is 
selected', function () {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', false);
-      expect(controller.multipleDFSs()).to.equal(false);
-    });
-    it('should return false if HDFS is selected and GLUSTERFS is not 
selected', function () {
-      controller.findProperty('serviceName', 'HDFS').set('isSelected', true);
-      controller.findProperty('serviceName', 'GLUSTERFS').set('isSelected', 
false);
-      expect(controller.multipleDFSs()).to.equal(false);
-    });
-  });
-
-  describe('#checkDependencies()', function () {
-    var testCases = [
-      {
-        title: 'should set HCATALOG and WEBHCAT isSelected to true when HIVE 
is selected',
-        condition: {
-          'HBASE': true,
-          'ZOOKEEPER': true,
-          'HIVE': true,
-          'HCATALOG': true,
-          'WEBHCAT': true
-        },
-        result: {
-          'HCATALOG': true,
-          'WEBHCAT': true
-        }
-      },
-      {
-        title: 'should set HCATALOG and WEBHCAT isSelected to false when HIVE 
is not selected',
-        condition: {
-          'HBASE': true,
-          'ZOOKEEPER': true,
-          'HIVE': false,
-          'HCATALOG': true,
-          'WEBHCAT': true
-        },
-        result: {
-          'HCATALOG': false,
-          'WEBHCAT': false
-        }
-      },
-      {
-        title: 'should set MAPREDUCE2 isSelected to true when YARN is 
selected',
-        condition: {
-          'HBASE': true,
-          'ZOOKEEPER': true,
-          'HIVE': false,
-          'HCATALOG': true,
-          'WEBHCAT': true,
-          'YARN': true,
-          'MAPREDUCE2': true
-        },
-        result: {
-          'MAPREDUCE2': true,
-          'HCATALOG': false,
-          'WEBHCAT': false
-        }
-      },
-      {
-        title: 'should set MAPREDUCE2 isSelected to false when YARN is not 
selected',
-        condition: {
-          'HBASE': true,
-          'ZOOKEEPER': true,
-          'HIVE': true,
-          'HCATALOG': true,
-          'WEBHCAT': true,
-          'YARN': false,
-          'MAPREDUCE2': true
-        },
-        result: {
-          'MAPREDUCE2': false,
-          'HCATALOG': true,
-          'WEBHCAT': true
-        }
-      }
-    ];
-
-    testCases.forEach(function(testCase){
-      it(testCase.title, function () {
-        controller.clear();
-        for(var id in testCase.condition) {
-          controller.pushObject(Ember.Object.create({
-            'serviceName':id, 'isSelected': testCase.condition[id], 
'canBeSelected': true, 'isInstalled': false
-          }));
-        }
-        controller.checkDependencies();
-        for(var service in testCase.result) {
-          expect(controller.findProperty('serviceName', 
service).get('isSelected')).to.equal(testCase.result[service]);
-        }
-      });
-    }, this);
-  });
-
-  describe('#monitoringCheckPopup', function() {
-    it('should show App.ModalPopup', function() {
-      sinon.spy(App.ModalPopup, 'show');
-      controller.monitoringCheckPopup();
-      expect(App.ModalPopup.show.calledOnce).to.equal(true);
-      App.ModalPopup.show.restore();
-    });
-    it('onPrimary should proceed to next step', function() {
-      sinon.stub(App.router, 'send', Em.K);
-      controller.monitoringCheckPopup().onPrimary();
-      expect(App.router.send.calledWith('next')).to.equal(true);
-      App.router.send.restore();
-    });
-  });
-
-  describe('#needToAddServicePopup', function() {
-    Em.A([
-        {
-          m: 'one service',
-          services: {selected: true, serviceName: 's1'},
-          content: [Em.Object.create({serviceName: 's1', isSelected: false})],
-          e: [true]
-        },
-        {
-          m: 'many services',
-          services: [{selected: true, serviceName: 's1'}, {selected: false, 
serviceName: 's2'}],
-          content: [Em.Object.create({serviceName: 's1', isSelected: false}),
-            Em.Object.create({serviceName: 's2', isSelected: true})],
-          e: [true, false]
-        }
-      ]).forEach(function (test) {
-        it(test.m, function () {
-          sinon.stub(controller, 'submit', Em.K);
-          controller.set('content', test.content);
-          controller.needToAddServicePopup(test.services, '').onPrimary();
-          expect(controller.submit.calledOnce).to.equal(true);
-          expect(controller.mapProperty('isSelected')).to.eql(test.e);
-          controller.submit.restore();
-        });
-      });
-  });
-
-  describe('#validateMonitoring', function() {
-    Em.A([
-        {
-          gangliaOrNagiosNotSelected: true,
-          e: {
-            monitoringCheckPopup: true,
-            send: false
-          }
-        },
-        {
-          gangliaOrNagiosNotSelected: false,
-          e: {
-            monitoringCheckPopup: false,
-            send: true
-          }
-        }
-      ]).forEach(function (test) {
-        it(test.m, function () {
-          sinon.stub(controller, 'monitoringCheckPopup', Em.K);
-          sinon.stub(App.router, 'send', Em.K);
-          sinon.stub(controller, 'gangliaOrNagiosNotSelected', function() {
-            return test.gangliaOrNagiosNotSelected;
-          });
-          controller.validateMonitoring();
-          if (test.e.monitoringCheckPopup) {
-           expect(controller.monitoringCheckPopup.calledOnce).to.equal(true);
-          }
-          else {
-            expect(controller.monitoringCheckPopup.called).to.equal(false);
-          }
-          if (test.e.send) {
-            expect(App.router.send.calledWith('next')).to.equal(true);
-          }
-          else {
-            expect(App.router.send.called).to.equal(false);
-          }
-          controller.gangliaOrNagiosNotSelected.restore();
-          controller.monitoringCheckPopup.restore();
-          App.router.send.restore();
-        });
-      });
-  });
-
-  describe('#submit', function() {
-    beforeEach(function() {
-      sinon.stub(controller, 'validateMonitoring', Em.K);
-    });
-    afterEach(function() {
-      controller.validateMonitoring.restore();
-    });
-    it('if not isSubmitDisabled shound\'t do nothing', function() {
-      controller.reopen({isSubmitDisabled: true});
-      controller.submit();
-      expect(controller.validateMonitoring.called).to.equal(false);
-    });
-    it('if isSubmitDisabled and not submitChecks should call 
validateMonitoring', function() {
-      controller.reopen({
-        isSubmitDisabled: false,
-        submitChecks: []
-      });
-      controller.submit();
-      expect(controller.validateMonitoring.calledOnce).to.equal(true);
-    });
-    it('if isSubmitDisabled and some submitChecks true shouldn\'t call 
validateMonitoring', function() {
-      controller.reopen({
-        isSubmitDisabled: false,
-        submitChecks: [
-          {
-            checkCallback: 'needToAddMapReduce',
-            popupParams: [
-              {serviceName: 'MAPREDUCE', selected: true},
-              'mapreduceCheck'
-            ]
-          }
-        ]
-      });
-      sinon.stub(controller, 'needToAddMapReduce', function() {return true;});
-      controller.submit();
-      expect(controller.validateMonitoring.called).to.equal(false);
-      controller.needToAddMapReduce.restore();
-    });
-    it('if isSubmitDisabled and some submitChecks false should call 
validateMonitoring', function() {
-      controller.reopen({
-        isSubmitDisabled: false,
-        submitChecks: [
-          {
-            checkCallback: 'needToAddMapReduce',
-            popupParams: [
-              {serviceName: 'MAPREDUCE', selected: true},
-              'mapreduceCheck'
-            ]
-          }
-        ]
-      });
-      sinon.stub(controller, 'needToAddMapReduce', function() {return false;});
-      controller.submit();
-      expect(controller.validateMonitoring.calledOnce).to.equal(true);
-      controller.needToAddMapReduce.restore();
-    });
-  });
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/1d0fe34b/ambari-web/test/installer/step5_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/installer/step5_test.js 
b/ambari-web/test/installer/step5_test.js
deleted file mode 100644
index 72f347b..0000000
--- a/ambari-web/test/installer/step5_test.js
+++ /dev/null
@@ -1,1040 +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 Ember = require('ember');
-var App = require('app');
-require('controllers/wizard/step5_controller');
-var c;
-describe('App.WizardStep5Controller', function () {
-  beforeEach(function() {
-    c = App.WizardStep5Controller.create();
-  });
-  var controller = App.WizardStep5Controller.create();
-  controller.set('content', {});
-  var cpu = 2, memory = 4;
-
-  var schemes = Em.A([
-    {'description': 'empty condition'},
-    {
-      'description': 'second host if amount more than 1',
-      "else": 1
-    },
-    {
-      'description': 'first host if amount less than 3, third host if amount 
less than 6, fourth host if amount more than 5',
-      "3": 0,
-      "6": 2,
-      "else": 3
-    },
-    {
-      'description': 'second host if amount less than 3, second host if amount 
less than 6, third host if amount less than 31, sixth host if amount more than 
30',
-      "3": 1,
-      "6": 1,
-      "31": 2,
-      "else": 5
-    }
-  ]);
-
-  var test_config = [
-    {
-      title: '1 host',
-      hosts: ['host0'],
-      equals: [0, 0, 0, 0]
-    },
-    {
-      title: '2 hosts',
-      hosts: ['host0', 'host1'],
-      equals: [0, 1, 0, 1]
-    },
-    {
-      title: '3 hosts',
-      hosts: ['host0', 'host1', 'host2'],
-      equals: [0, 1, 2, 1]
-    },
-    {
-      title: '5 hosts',
-      hosts: ['host0', 'host1', 'host2', 'host3', 'host4'],
-      equals: [0, 1, 2, 1]
-    },
-    {
-      title: '6 hosts',
-      hosts: ['host0', 'host1', 'host2', 'host3', 'host4', 'host6'],
-      equals: [0, 1, 3, 2]
-    },
-    {
-      title: '10 hosts',
-      hosts: ['host0', 'host1', 'host2', 'host3', 'host4', 'host5', 'host6', 
'host7', 'host8', 'host9'],
-      equals: [0, 1, 3, 2]
-    },
-    {
-      title: '31 hosts',
-      hosts: ['host0', 'host1', 'host2', 'host3', 'host4', 'host5', 'host6', 
'host7', 'host8', 'host9', 'host10', 'host11', 'host12', 'host13', 'host14', 
'host15', 'host16', 'host17', 'host18', 'host19', 'host20', 'host21', 'host22', 
'host23', 'host24', 'host25', 'host26', 'host27', 'host28', 'host29', 'host30'],
-      equals: [0, 1, 3, 5]
-    }
-  ];
-
-  schemes.forEach(function(scheme, index) {
-    describe('#getHostForComponent() condition: ' + scheme.description, 
function() {
-
-      delete scheme['description'];
-
-      test_config.forEach(function(test) {
-        it(test.title, function () {
-          controller.get('hosts').clear();
-          test.hosts.forEach(function(_host) {
-            controller.get('hosts').pushObject(Em.Object.create({
-              host_name: _host,
-              cpu: cpu,
-              memory: memory
-            }));
-          });
-          expect(controller.getHostForComponent(test.hosts.length, 
scheme).host_name).to.equal(test.hosts[test.equals[index]]);
-        });
-      });
-    });
-  });
-
-  describe('#getZooKeeperServer', function() {
-    it('should be array with three host names if hosts number more than 
three', function() {
-      var hosts = [
-        {host_name: 'host1'},
-        {host_name: 'host2'},
-        {host_name: 'host3'}
-      ];
-
-      controller.set('hosts', hosts);
-      expect(controller.getZooKeeperServer(hosts.length)).to.eql(['host1', 
'host2', 'host3']);
-    });
-
-    it('should be array with one host names if hosts number less than three', 
function() {
-      var hosts = [
-        {host_name: 'host1'},
-        {host_name: 'host2'}
-      ];
-
-      controller.set('hosts', hosts);
-      expect(controller.getZooKeeperServer(hosts.length)).to.eql(['host1']);
-    });
-  });
-
-  describe('#getServerHost', function() {
-    it('should be host name if one host ', function() {
-      var hosts = [
-        {host_name: 'host1'}
-      ];
-
-      controller.set('hosts', hosts);
-      expect(controller.getServerHost(hosts.length)).to.eql('host1');
-    });
-
-    it('should be host name if hosts number more than one', function() {
-      var hosts = [
-        {host_name: 'host1'},
-        {host_name: 'host2'}
-      ];
-
-      controller.set('hosts', hosts);
-      expect(controller.getServerHost(hosts.length)).to.eql('host1');
-    });
-
-    it('should be host name different from localhost if hosts number more than 
one', function() {
-      var hosts = [
-        {host_name: location.hostname},
-        {host_name: 'host2'}
-      ];
-      //first host_name is empty string, because of location.hostname = "" in 
console,
-      //to implement current test case
-
-      controller.set('hosts', hosts);
-      expect(controller.getServerHost(hosts.length)).to.eql('host2');
-    });
-  });
-
-
-  controller.set('content', {});
-
-  describe('#isReassignWizard', function() {
-    it('true if content.controllerName is reassignMasterController', 
function() {
-      controller.set('content.controllerName', 'reassignMasterController');
-      expect(controller.get('isReassignWizard')).to.equal(true);
-    });
-    it('false if content.controllerName is not reassignMasterController', 
function() {
-      controller.set('content.controllerName', 'mainController');
-      expect(controller.get('isReassignWizard')).to.equal(false);
-    });
-  });
-
-  describe('#isAddServiceWizard', function() {
-    it('true if content.controllerName is addServiceController', function() {
-      controller.set('content.controllerName', 'addServiceController');
-      expect(controller.get('isAddServiceWizard')).to.equal(true);
-    });
-    it('false if content.controllerName is not addServiceController', 
function() {
-      controller.set('content.controllerName', 'mainController');
-      expect(controller.get('isAddServiceWizard')).to.equal(false);
-    });
-  });
-
-  describe('#isReassignHive', function() {
-
-    var tests = Em.A([
-      {
-        servicesMasters: Em.A([{component_name: 'HIVE_SERVER'}]),
-        controllerName: 'reassignMasterController',
-        e: true
-      },
-      {
-        servicesMasters: Em.A([{component_name: 'HIVE_SERVER'}]),
-        controllerName: 'addServiceController',
-        e: false
-      },
-      {
-        servicesMasters: Em.A([{component_name: 'ZOOKEEPER_SERVER'}]),
-        controllerName: 'reassignMasterController',
-        e: false
-      },
-      {
-        servicesMasters: Em.A([{component_name: 'ZOOKEEPER_SERVER'}]),
-        controllerName: 'addServiceController',
-        e: false
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.controllerName + ' ' + 
test.servicesMasters.mapProperty('component_name').join(','), function() {
-        controller.set('content.controllerName', test.controllerName);
-        controller.set('servicesMasters', test.servicesMasters);
-        expect(controller.get('isReassignHive')).to.equal(test.e);
-      });
-    });
-
-  });
-
-  describe('#sortHosts', function() {
-
-    var tests = Em.A([
-      {
-        hosts: [
-          Em.Object.create({memory: 4, cpu: 1, host_name: 'host1', id: 1}),
-          Em.Object.create({memory: 3, cpu: 1, host_name: 'host2', id: 2}),
-          Em.Object.create({memory: 2, cpu: 1, host_name: 'host3', id: 3}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host4', id: 4})
-        ],
-        m: 'memory',
-        e: [1,2,3,4]
-      },
-      {
-        hosts: [
-          Em.Object.create({memory: 1, cpu: 4, host_name: 'host1', id: 1}),
-          Em.Object.create({memory: 1, cpu: 3, host_name: 'host2', id: 2}),
-          Em.Object.create({memory: 1, cpu: 2, host_name: 'host3', id: 3}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host4', id: 4})
-        ],
-        m: 'cpu',
-        e: [1,2,3,4]
-      },
-      {
-        hosts: [
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host4', id: 1}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host2', id: 2}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host3', id: 3}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host1', id: 4})
-        ],
-        m: 'host_name',
-        e: [4,2,3,1]
-      },
-      {
-        hosts: [
-          Em.Object.create({memory: 2, cpu: 1, host_name: 'host1', id: 1}),
-          Em.Object.create({memory: 1, cpu: 2, host_name: 'host3', id: 2}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host4', id: 3}),
-          Em.Object.create({memory: 1, cpu: 1, host_name: 'host2', id: 4})
-        ],
-        m: 'mix',
-        e: [1,2,4,3]
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        var hosts = Em.copy(test.hosts);
-        controller.sortHosts(hosts);
-        expect(Em.A(hosts).mapProperty('id')).to.eql(test.e);
-      });
-    });
-
-  });
-
-  describe('#renderHostInfo', function() {
-
-    var tests = Em.A([
-      {
-        hosts: {
-          h1: {memory: 4, cpu: 1, name: 'host1', bootStatus: 'INIT'},
-          h2: {memory: 3, cpu: 1, name: 'host2', bootStatus: 'INIT'},
-          h3: {memory: 2, cpu: 1, name: 'host3', bootStatus: 'INIT'},
-          h4: {memory: 1, cpu: 1, name: 'host4', bootStatus: 'INIT'}
-        },
-        m: 'no one host is REGISTERED',
-        e: []
-      },
-      {
-        hosts: {
-          h1: {memory: 4, cpu: 1, name: 'host1', bootStatus: 'REGISTERED'},
-          h2: {memory: 3, cpu: 1, name: 'host2', bootStatus: 'REGISTERED'},
-          h3: {memory: 2, cpu: 1, name: 'host3', bootStatus: 'REGISTERED'},
-          h4: {memory: 1, cpu: 1, name: 'host4', bootStatus: 'REGISTERED'}
-        },
-        m: 'all hosts are REGISTERED, memory',
-        e: ['host1', 'host2', 'host3', 'host4']
-      },
-      {
-        hosts: {
-          h1: {memory: 1, cpu: 4, name: 'host1', bootStatus: 'REGISTERED'},
-          h2: {memory: 1, cpu: 3, name: 'host2', bootStatus: 'REGISTERED'},
-          h3: {memory: 1, cpu: 2, name: 'host3', bootStatus: 'REGISTERED'},
-          h4: {memory: 1, cpu: 1, name: 'host4', bootStatus: 'REGISTERED'}
-        },
-        m: 'all hosts are REGISTERED, cpu',
-        e: ['host1', 'host2', 'host3', 'host4']
-      },
-      {
-        hosts: {
-          h1: {memory: 1, cpu: 1, name: 'host4', bootStatus: 'REGISTERED'},
-          h2: {memory: 1, cpu: 1, name: 'host2', bootStatus: 'REGISTERED'},
-          h3: {memory: 1, cpu: 1, name: 'host3', bootStatus: 'REGISTERED'},
-          h4: {memory: 1, cpu: 1, name: 'host1', bootStatus: 'REGISTERED'}
-        },
-        m: 'all hosts are REGISTERED, host_name',
-        e: ['host1', 'host2', 'host3', 'host4']
-      },
-      {
-        hosts: {
-          h1: {memory: 2, cpu: 1, name: 'host1', bootStatus: 'REGISTERED'},
-          h2: {memory: 1, cpu: 2, name: 'host3', bootStatus: 'INIT'},
-          h3: {memory: 1, cpu: 1, name: 'host4', bootStatus: 'REGISTERED'},
-          h4: {memory: 1, cpu: 1, name: 'host2', bootStatus: 'INIT'}
-        },
-        m: 'mix',
-        e: ['host1', 'host4']
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        controller.set('content', {hosts: test.hosts});
-        controller.renderHostInfo();
-        var r = controller.get('hosts');
-        expect(Em.A(r).mapProperty('host_name')).to.eql(test.e);
-      });
-    });
-
-  });
-
-  describe('#hasHiveServer', function() {
-
-    var tests = Em.A([
-      {
-        selectedServicesMasters: Em.A([{component_name: 'HIVE_SERVER'}]),
-        controllerName: 'reassignMasterController',
-        e: false
-      },
-      {
-        selectedServicesMasters: Em.A([{component_name: 'HIVE_SERVER'}]),
-        controllerName: 'addServiceController',
-        e: true
-      },
-      {
-        selectedServicesMasters: Em.A([{component_name: 'ANOTHER'}]),
-        controllerName: 'addServiceController',
-        e: false
-      },
-      {
-        selectedServicesMasters: Em.A([{component_name: 'ANOTHER'}]),
-        controllerName: 'reassignMasterController',
-        e: false
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.controllerName + ' ' + 
test.selectedServicesMasters.mapProperty('component_name').join(','), 
function() {
-        controller.set('content.controllerName', test.controllerName);
-        controller.set('selectedServicesMasters', 
test.selectedServicesMasters);
-        expect(controller.get('hasHiveServer')).to.equal(test.e);
-      });
-    });
-
-  });
-
-  describe('#selectHost', function() {
-
-    var tests = Em.A([
-      {componentName: 'KERBEROS_SERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'KERBEROS_SERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'KERBEROS_SERVER', hostsCount: 6, e: 'host4'},
-      {componentName: 'KERBEROS_SERVER', hostsCount: 31, e: 'host6'},
-      {componentName: 'KERBEROS_SERVER', hostsCount: 32, e: 'host6'},
-      {componentName: 'NAMENODE', hostsCount: 1, e: 'host1'},
-      {componentName: 'NAMENODE', hostsCount: 2, e: 'host1'},
-      {componentName: 'SECONDARY_NAMENODE', hostsCount: 1, e: 'host1'},
-      {componentName: 'SECONDARY_NAMENODE', hostsCount: 2, e: 'host2'},
-      {componentName: 'JOBTRACKER', hostsCount: 1, e: 'host1'},
-      {componentName: 'JOBTRACKER', hostsCount: 3, e: 'host2'},
-      {componentName: 'JOBTRACKER', hostsCount: 6, e: 'host2'},
-      {componentName: 'JOBTRACKER', hostsCount: 31, e: 'host3'},
-      {componentName: 'JOBTRACKER', hostsCount: 32, e: 'host3'},
-      {componentName: 'HISTORYSERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'HISTORYSERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'HISTORYSERVER', hostsCount: 6, e: 'host2'},
-      {componentName: 'HISTORYSERVER', hostsCount: 31, e: 'host3'},
-      {componentName: 'HISTORYSERVER', hostsCount: 32, e: 'host3'},
-      {componentName: 'RESOURCEMANAGER', hostsCount: 1, e: 'host1'},
-      {componentName: 'RESOURCEMANAGER', hostsCount: 3, e: 'host2'},
-      {componentName: 'RESOURCEMANAGER', hostsCount: 6, e: 'host2'},
-      {componentName: 'RESOURCEMANAGER', hostsCount: 31, e: 'host3'},
-      {componentName: 'RESOURCEMANAGER', hostsCount: 32, e: 'host3'},
-      {componentName: 'HBASE_MASTER', hostsCount: 1, e: ['host1']},
-      {componentName: 'HBASE_MASTER', hostsCount: 3, e: ['host1']},
-      {componentName: 'HBASE_MASTER', hostsCount: 6, e: ['host3']},
-      {componentName: 'HBASE_MASTER', hostsCount: 31, e: ['host4']},
-      {componentName: 'HBASE_MASTER', hostsCount: 32, e: ['host4']},
-      {componentName: 'OOZIE_SERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'OOZIE_SERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'OOZIE_SERVER', hostsCount: 6, e: 'host3'},
-      {componentName: 'OOZIE_SERVER', hostsCount: 31, e: 'host4'},
-      {componentName: 'OOZIE_SERVER', hostsCount: 32, e: 'host4'},
-      {componentName: 'HIVE_SERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'HIVE_SERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'HIVE_SERVER', hostsCount: 6, e: 'host3'},
-      {componentName: 'HIVE_SERVER', hostsCount: 31, e: 'host5'},
-      {componentName: 'HIVE_SERVER', hostsCount: 32, e: 'host5'},
-      {componentName: 'HIVE_METASTORE', hostsCount: 1, e: 'host1'},
-      {componentName: 'HIVE_METASTORE', hostsCount: 3, e: 'host2'},
-      {componentName: 'HIVE_METASTORE', hostsCount: 6, e: 'host3'},
-      {componentName: 'HIVE_METASTORE', hostsCount: 31, e: 'host5'},
-      {componentName: 'HIVE_METASTORE', hostsCount: 32, e: 'host5'},
-      {componentName: 'WEBHCAT_SERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'WEBHCAT_SERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'WEBHCAT_SERVER', hostsCount: 6, e: 'host3'},
-      {componentName: 'WEBHCAT_SERVER', hostsCount: 31, e: 'host5'},
-      {componentName: 'WEBHCAT_SERVER', hostsCount: 32, e: 'host5'},
-      {componentName: 'APP_TIMELINE_SERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'APP_TIMELINE_SERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'APP_TIMELINE_SERVER', hostsCount: 6, e: 'host2'},
-      {componentName: 'APP_TIMELINE_SERVER', hostsCount: 31, e: 'host3'},
-      {componentName: 'APP_TIMELINE_SERVER', hostsCount: 32, e: 'host3'},
-      {componentName: 'FALCON_SERVER', hostsCount: 1, e: 'host1'},
-      {componentName: 'FALCON_SERVER', hostsCount: 3, e: 'host2'},
-      {componentName: 'FALCON_SERVER', hostsCount: 6, e: 'host3'},
-      {componentName: 'FALCON_SERVER', hostsCount: 31, e: 'host4'},
-      {componentName: 'FALCON_SERVER', hostsCount: 32, e: 'host4'},
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.componentName + ' ' + test.hostsCount, function() {
-        controller.set('hosts', d3.range(1, test.hostsCount + 
1).map(function(i) { return {host_name: 'host' + i.toString()};}));
-        expect(controller.selectHost(test.componentName)).to.eql(test.e);
-      });
-    });
-
-    describe('getServerHost should be called for', function() {
-      
Em.A(['STORM_UI_SERVER','DRPC_SERVER','STORM_REST_API','NIMBUS','GANGLIA_SERVER','NAGIOS_SERVER','HUE_SERVER']).forEach(function(componentName)
 {
-        it(componentName, function() {
-          sinon.spy(controller, 'getServerHost');
-          controller.selectHost(componentName);
-          expect(controller.getServerHost.calledOnce).to.equal(true);
-          controller.getServerHost.restore();
-        });
-      });
-    });
-
-  });
-
-  describe('#last', function() {
-
-    var tests = Em.A([
-      {
-        selectedServicesMasters: Em.A([
-          {component_name: 'c1', indx: 1},
-          {component_name: 'c2', indx: 2},
-          {component_name: 'c1', indx: 2}
-        ]),
-        m: 'Components exists',
-        c: 'c1',
-        e: 2
-      },
-      {
-        selectedServicesMasters: Em.A([
-          {component_name: 'c1', indx: 1},
-          {component_name: 'c2', indx: 2},
-          {component_name: 'c1', indx: 2}
-        ]),
-        m: 'Components don\'t exists',
-        c: 'c3',
-        e: null
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        controller.set('selectedServicesMasters', 
test.selectedServicesMasters);
-        if (!Em.isNone(test.e)) {
-          expect(controller.last(test.c).indx).to.equal(test.e);
-        }
-        else {
-          expect(Em.isNone(controller.last(test.c))).to.equal(true);
-        }
-      })
-    });
-
-  });
-
-  describe('#isSubmitDisabled', function() {
-    it('should be false if it\'s not a isReassignWizard', function() {
-      c.set('controllerName', 'addServiceController');
-      expect(c.get('isSubmitDisabled')).to.equal(false);
-    });
-  });
-
-  describe('#remainingHosts', function() {
-    it('should show count of hosts without masters', function() {
-      c.reopen({masterHostMapping: [{}]});
-      c.set('hosts', [{},{},{}]);
-      expect(c.get('remainingHosts')).to.equal(2);
-    });
-  });
-
-  describe('#clearStep', function() {
-    var tests = Em.A([
-      {p: 'hosts'},
-      {p: 'selectedServicesMasters'},
-      {p: 'servicesMasters'}
-    ]);
-    tests.forEach(function(test) {
-      it('should cleanup ' + test.p, function() {
-        c.set(test.p, [Em.Object.create({}),Em.Object.create({})]);
-        c.clearStep();
-        expect(c.get(test.p).length).to.equal(0);
-      });
-    });
-  });
-
-  describe('#updateComponent', function() {
-    var tests = Em.A([
-      {
-        componentName: 'HBASE_SERVER',
-        services: Em.A([
-          Em.Object.create({isInstalled: true, serviceName: 'HBASE'})
-        ]),
-        selectedServicesMasters: Em.A([
-          Em.Object.create({showAddControl: false, showRemoveControl: true, 
component_name: 'HBASE_SERVER'}),
-          Em.Object.create({showAddControl: true, showRemoveControl: false, 
component_name: 'HBASE_SERVER'})
-        ]),
-        hosts: Em.A([
-          Em.Object.create({})
-        ]),
-        controllerName: 'addServiceController',
-        m: 'service is installed',
-        e: {
-          showAddControl: true,
-          showRemoveControl: false
-        }
-      },
-      {
-        componentName: 'HBASE_SERVER',
-        services: Em.A([
-          Em.Object.create({isInstalled: false, serviceName: 'HBASE'})
-        ]),
-        selectedServicesMasters: Em.A([
-          Em.Object.create({showAddControl: true, showRemoveControl: false, 
component_name: 'HBASE_SERVER'})
-        ]),
-        hosts: Em.A([
-          Em.Object.create({})
-        ]),
-        controllerName: 'addServiceController',
-        m: 'service not installed, but all host already have provided 
component',
-        e: {
-          showAddControl: true,
-          showRemoveControl: false
-        }
-      },
-      {
-        componentName: 'HBASE_SERVER',
-        services: Em.A([
-          Em.Object.create({isInstalled: false, serviceName: 'HBASE'})
-        ]),
-        selectedServicesMasters: Em.A([
-          Em.Object.create({showAddControl: false, showRemoveControl: true, 
component_name: 'HBASE_SERVER'})
-        ]),
-        hosts: Em.A([
-          Em.Object.create({}),
-          Em.Object.create({})
-        ]),
-        controllerName: 'addServiceController',
-        m: 'service not installed, not all host already have provided 
component',
-        e: {
-          showAddControl: true,
-          showRemoveControl: true
-        }
-      },
-      {
-        componentName: 'HBASE_SERVER',
-        services: Em.A([
-          Em.Object.create({isInstalled: false, serviceName: 'HBASE'})
-        ]),
-        selectedServicesMasters: Em.A([
-          Em.Object.create({showAddControl: false, showRemoveControl: true, 
component_name: 'HBASE_SERVER'})
-        ]),
-        hosts: Em.A([
-          Em.Object.create({}),
-          Em.Object.create({})
-        ]),
-        controllerName: 'reassignMasterController',
-        m: 'service not installed, not all host already have provided 
component, but is reassignMasterController',
-        e: {
-          showAddControl: false,
-          showRemoveControl: false
-        }
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        c.reopen({
-          content: Em.Object.create({
-            services: test.services,
-            controllerName: test.controllerName
-          }),
-          selectedServicesMasters: test.selectedServicesMasters
-        });
-        c.updateComponent(test.componentName);
-        Em.keys(test.e).forEach(function(k) {
-          expect(c.last(test.componentName).get(k)).to.equal(test.e[k]);
-        });
-      });
-    });
-  });
-
-  describe('#renderComponents', function() {
-    var tests = Em.A([
-      {
-        masterComponents: Em.A([
-          {component_name: 'ZOOKEEPER_SERVER'}
-        ]),
-        services: Em.A([]),
-        controllerName: 'reassignMasterController',
-        m: 'One component',
-        isHaEnabled: false,
-        component_name: 'ZOOKEEPER_SERVER',
-        e: {
-          selectedServicesMasters: ['ZOOKEEPER_SERVER'],
-          servicesMasters: ['ZOOKEEPER_SERVER'],
-          showRemoveControl: [false],
-          isInstalled: [false],
-          zId: [1]
-        }
-      },
-      {
-        masterComponents: Em.A([
-          {component_name: 'ZOOKEEPER_SERVER'},
-          {component_name: 'SECONDARY_NAMENODE'}
-        ]),
-        services: Em.A([]),
-        controllerName: 'addServiceController',
-        m: 'One component',
-        isHaEnabled: true,
-        component_name: 'ZOOKEEPER_SERVER',
-        e: {
-          selectedServicesMasters: ['ZOOKEEPER_SERVER'],
-          servicesMasters: ['ZOOKEEPER_SERVER'],
-          showRemoveControl: [false],
-          zId: [1]
-        }
-      },
-      {
-        masterComponents: Em.A([
-          {component_name: 'ZOOKEEPER_SERVER'},
-          {component_name: 'ZOOKEEPER_SERVER'}
-        ]),
-        services: Em.A([
-          Em.Object.create({serviceName:'ZOOKEEPER', isInstalled: true})
-        ]),
-        controllerName: 'addServiceController',
-        m: 'Two components, but service is installed',
-        isHaEnabled: false,
-        component_name: 'ZOOKEEPER_SERVER',
-        e: {
-          selectedServicesMasters: ['ZOOKEEPER_SERVER', 'ZOOKEEPER_SERVER'],
-          servicesMasters: ['ZOOKEEPER_SERVER', 'ZOOKEEPER_SERVER'],
-          showRemoveControl: [false, false],
-          zId: [1, 2]
-        }
-      },
-      {
-        masterComponents: Em.A([
-          {component_name: 'ZOOKEEPER_SERVER'},
-          {component_name: 'ZOOKEEPER_SERVER'},
-          {component_name: 'NAMENODE'}
-        ]),
-        services: Em.A([
-        ]),
-        controllerName: 'addServiceController',
-        m: 'Two components, but service is installed',
-        isHaEnabled: false,
-        component_name: 'ZOOKEEPER_SERVER',
-        e: {
-          selectedServicesMasters: ['ZOOKEEPER_SERVER', 'ZOOKEEPER_SERVER', 
'NAMENODE'],
-          servicesMasters: ['ZOOKEEPER_SERVER', 'ZOOKEEPER_SERVER', 
'NAMENODE'],
-          showRemoveControl: [true, true, undefined],
-          zId: [1, 2, 1]
-        }
-      }
-    ]);
-    tests.forEach(function(test) {
-      beforeEach(function() {
-        App.reopen({isHaEnabled: test.isHaEnabled});
-      });
-      it(test.m, function() {
-        App.set('isHaEnabled', test.isHaEnabled);
-        c.reopen({
-          content: Em.Object.create({
-            services: test.services,
-            controllerName: test.controllerName,
-            reassign: {component_name: test.component_name}
-          })
-        });
-        c.renderComponents(test.masterComponents);
-        
expect(c.get('selectedServicesMasters').mapProperty('component_name')).to.eql(test.e.selectedServicesMasters);
-        
expect(c.get('servicesMasters').mapProperty('component_name')).to.eql(test.e.servicesMasters);
-        
expect(c.get('selectedServicesMasters').mapProperty('showRemoveControl')).to.eql(test.e.showRemoveControl);
-        
expect(c.get('selectedServicesMasters').mapProperty('zId')).to.eql(test.e.zId);
-        if (c.get('isReasignController')) {
-          
expect(c.get('servicesMasters').mapProperty('isInstalled')).to.eql(test.e.isInstalled);
-        }
-      });
-    });
-  });
-
-  describe('#updateHiveCoHosts', function() {
-    var tests = Em.A([
-      {
-        selectedServicesMasters: Em.A([
-          Em.Object.create({component_name: 'HIVE_SERVER', selectedHost: 
'h1'}),
-          Em.Object.create({component_name: 'HIVE_METASTORE', selectedHost: 
'h2'}),
-          Em.Object.create({component_name: 'WEBHCAT_SERVER', selectedHost: 
'h3'})
-        ]),
-        servicesMasters: Em.A([
-          Em.Object.create({component_name: 'HIVE_SERVER', selectedHost: 'h1'})
-        ]),
-        isReassignHive: false,
-        m: 'should set new host for both',
-        e: ['h1','h1','h1']
-      },
-      {
-        selectedServicesMasters: Em.A([
-          Em.Object.create({component_name: 'HIVE_SERVER', selectedHost: 
'h1'}),
-          Em.Object.create({component_name: 'HIVE_METASTORE', selectedHost: 
'h2'}),
-          Em.Object.create({component_name: 'WEBHCAT_SERVER', selectedHost: 
'h3'})
-        ]),
-        servicesMasters: Em.A([
-          Em.Object.create({component_name: 'HIVE_METASTORE', selectedHost: 
'h1'})
-        ]),
-        isReassignHive: false,
-        m: 'should set new host for WEBHCAT_SERVER',
-        e: ['h1','h2','h1']
-      },
-      {
-        selectedServicesMasters: Em.A([
-          Em.Object.create({component_name: 'HIVE_METASTORE', selectedHost: 
'h2'}),
-          Em.Object.create({component_name: 'WEBHCAT_SERVER', selectedHost: 
'h3'})
-        ]),
-        servicesMasters: Em.A([
-          Em.Object.create({component_name: 'HIVE_METASTORE', selectedHost: 
'h1'})
-        ]),
-        isReassignHive: false,
-        m: 'missing HIVE_SERVER',
-        e: ['h2','h3']
-      }
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        c.set('selectedServicesMasters', test.selectedServicesMasters);
-        c.set('servicesMasters', test.servicesMasters);
-        c.reopen({isReassignHive: test.isReassignHive});
-        c.updateHiveCoHosts();
-        
expect(c.get('selectedServicesMasters').mapProperty('selectedHost')).to.eql(test.e);
-      });
-    });
-
-  });
-
-  describe('#assignHostToMaster', function() {
-    var tests = Em.A([
-      {
-        componentName: 'c1',
-        selectedHost: 'h2',
-        zId: '1',
-        e: {
-          indx: 0
-        }
-      },
-      {
-        componentName: 'c2',
-        selectedHost: 'h3',
-        zId: '2',
-        e: {
-          indx: 3
-        }
-      },
-      {
-        componentName: 'c3',
-        selectedHost: 'h1',
-        e: {
-          indx: 2
-        }
-      },
-      {
-        componentName: 'c2',
-        selectedHost: 'h4',
-        e: {
-          indx: 1
-        }
-      }
-    ]),
-    selectedServicesMasters = Em.A([
-      Em.Object.create({component_name: 'c1', zId: '1', selectedHost: 'h1'}),
-      Em.Object.create({component_name: 'c2', zId: '1', selectedHost: 'h1'}),
-      Em.Object.create({component_name: 'c3', zId: '1', selectedHost: 'h3'}),
-      Em.Object.create({component_name: 'c2', zId: '2', selectedHost: 'h2'})
-    ]);
-
-    tests.forEach(function(test) {
-      it(test.componentName + ' ' + test.selectedHost + ' ' + test.zId, 
function() {
-        c.set('selectedServicesMasters', selectedServicesMasters);
-        c.assignHostToMaster(test.componentName, test.selectedHost, test.zId);
-        
expect(c.get('selectedServicesMasters').objectAt(test.e.indx).get('selectedHost')).to.equal(test.selectedHost);
-      })
-    });
-  });
-
-  describe('#submit', function() {
-    beforeEach(function() {
-      sinon.spy(App.router, 'send');
-    });
-    afterEach(function() {
-      App.router.send.restore();
-    });
-    it('should go next if not isSubmitDisabled', function() {
-      c.reopen({isSubmitDisabled: false});
-      c.submit();
-      expect(App.router.send.calledWith('next')).to.equal(true);
-    });
-    it('shouldn\'t go next if isSubmitDisabled', function() {
-      c.reopen({isSubmitDisabled: true});
-      c.submit();
-      expect(App.router.send.called).to.equal(false);
-    });
-  });
-
-  describe('#removeComponent', function() {
-    var tests = Em.A([
-      {
-        componentName: 'c1',
-        zId: 1,
-        selectedServicesMasters: Em.A([]),
-        hosts: [],
-        m: 'empty selectedServicesMasters',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        zId: 1,
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'HBASE_SERVER'})
-        ]),
-        hosts: [],
-        m: 'no such components',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        zId: 1,
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER'})
-        ]),
-        hosts: [],
-        m: 'component is only 1',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        zId: 2,
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 2, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false})
-        ]),
-        hosts: [{},{}],
-        m: 'two components, add allowed, remove not allowed',
-        e: true,
-        showAddControl: true,
-        showRemoveControl: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        zId: 2,
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 2, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false})
-        ]),
-        hosts: [{}],
-        m: 'two components, add not allowed, remove not allowed',
-        e: true,
-        showAddControl: false,
-        showRemoveControl: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        zId: 2,
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 2, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 3, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: true})
-        ]),
-        hosts: [{},{}],
-        m: 'three components, add not allowed, remove allowed',
-        e: true,
-        showAddControl: false,
-        showRemoveControl: true
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        zId: 2,
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 2, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 3, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: true})
-        ]),
-        hosts: [{},{}, {}],
-        m: 'three components, add allowed, remove allowed',
-        e: true,
-        showAddControl: true,
-        showRemoveControl: true
-      }
-    ]);
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        c.set('selectedServicesMasters', test.selectedServicesMasters);
-        c.set('hosts', test.hosts);
-        expect(c.removeComponent(test.componentName, 
test.zId)).to.equal(test.e);
-        if(test.e) {
-          
expect(c.get('selectedServicesMasters.lastObject.showRemoveControl')).to.equal(test.showRemoveControl);
-          
expect(c.get('selectedServicesMasters.lastObject.showAddControl')).to.equal(test.showAddControl);
-        }
-      })
-    });
-  });
-
-  describe('#addComponent', function() {
-    var tests = Em.A([
-      {
-        componentName: 'c1',
-        selectedServicesMasters: Em.A([]),
-        hosts: [],
-        m: 'empty selectedServicesMasters',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'HBASE_SERVER'})
-        ]),
-        hosts: [],
-        m: 'no such components',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER'})
-        ]),
-        hosts: [],
-        m: 'one component, 0 hosts',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 2, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false})
-        ]),
-        hosts: [Em.Object.create({}), Em.Object.create({})],
-        m: 'two components, two hosts',
-        e: false
-      },
-      {
-        componentName: 'ZOOKEPEER_SERVER',
-        selectedServicesMasters: Em.A([
-          Em.Object.create({zId: 1, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false}),
-          Em.Object.create({zId: 2, component_name: 'ZOOKEPEER_SERVER', 
showAddControl: false, showRemoveControl: false})
-        ]),
-        hosts: [Em.Object.create({}), Em.Object.create({}), 
Em.Object.create({})],
-        m: 'two components, 3 hosts',
-        e: true
-      }
-    ]);
-    tests.forEach(function(test) {
-      it(test.m, function() {
-        c.set('selectedServicesMasters', test.selectedServicesMasters);
-        c.set('hosts', test.hosts);
-        expect(c.addComponent(test.componentName)).to.equal(test.e);
-      });
-    });
-  });
-
-  describe('#loadStep', function() {
-    var methods = Em.A(['clearStep', 'renderHostInfo', 'renderComponents', 
'loadComponents']);
-    describe('should call several methods', function() {
-      beforeEach(function() {
-        methods.forEach(function(m) {
-          sinon.spy(c, m);
-        });
-        c.reopen({content: {services: Em.A([])}});
-      });
-      afterEach(function() {
-        methods.forEach(function(m) {
-          c[m].restore();
-        });
-      });
-      methods.forEach(function(m) {
-        it(m, function() {
-          c.loadStep();
-          expect(c[m].calledOnce).to.equal(true);
-        });
-      });
-    });
-    it('should update HBASE if App.supports.multipleHBaseMasters is true', 
function() {
-      App.set('supports.multipleHBaseMasters', true);
-      sinon.spy(c, 'updateComponent');
-      c.reopen({content: {services: Em.A([])}});
-      c.loadStep();
-      expect(c.updateComponent.calledTwice).to.equal(true);
-      c.updateComponent.restore();
-    });
-  });
-
-});
\ No newline at end of file

Reply via email to