Repository: ambari
Updated Branches:
  refs/heads/trunk 6277a648c -> b511b5b22


http://git-wip-us.apache.org/repos/asf/ambari/blob/b511b5b2/ambari-web/test/controllers/main/admin/highAvailability/nameNode/wizard_controller_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/controllers/main/admin/highAvailability/nameNode/wizard_controller_test.js
 
b/ambari-web/test/controllers/main/admin/highAvailability/nameNode/wizard_controller_test.js
new file mode 100644
index 0000000..577f07b
--- /dev/null
+++ 
b/ambari-web/test/controllers/main/admin/highAvailability/nameNode/wizard_controller_test.js
@@ -0,0 +1,418 @@
+/**
+ * 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');
+var testHelpers = require('test/helpers');
+
+
+describe('App.HighAvailabilityWizardController', function() {
+  var controller;
+
+  beforeEach(function() {
+    controller = App.HighAvailabilityWizardController.create();
+  });
+
+  describe('#setCurrentStep', function() {
+    beforeEach(function() {
+      sinon.stub(App.clusterStatus, 'setClusterStatus');
+    });
+    afterEach(function() {
+      App.clusterStatus.setClusterStatus.restore();
+    });
+
+    it('App.clusterStatus.setClusterStatus should be called', function() {
+      controller.setCurrentStep();
+      expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
+    });
+  });
+
+  describe('#getCluster', function() {
+    beforeEach(function() {
+      sinon.stub(App.router, 'getClusterName').returns('c1');
+    });
+    afterEach(function() {
+      App.router.getClusterName.restore();
+    });
+
+    it('should return cluster object', function() {
+      controller.set('clusterStatusTemplate', {});
+      expect(controller.getCluster()).to.be.eql({
+        name: 'c1'
+      });
+    });
+  });
+
+  describe('#saveClusterStatus', function() {
+    beforeEach(function() {
+      sinon.stub(controller, 'save');
+    });
+    afterEach(function() {
+      controller.save.restore();
+    });
+
+    it('cluster status should be saved', function() {
+      controller.set('content.cluster', {});
+      controller.saveClusterStatus({requestId: [1], oldRequestsId: []});
+      expect(controller.get('content.cluster')).to.be.eql({
+        requestId: [1],
+        oldRequestsId: [1]
+      });
+      expect(controller.save.calledWith('cluster')).to.be.true;
+    });
+  });
+
+  describe('#saveHdfsUser', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardHdfsUser');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardHdfsUser.restore();
+    });
+
+    it('App.db.setHighAvailabilityWizardHdfsUser should be called', function() 
{
+      controller.set('content.hdfsUser', 'hdfs');
+      controller.saveHdfsUser();
+      
expect(App.db.setHighAvailabilityWizardHdfsUser.calledWith('hdfs')).to.be.true;
+    });
+  });
+
+  describe('#saveTasksStatuses', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardTasksStatuses');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardTasksStatuses.restore();
+    });
+
+    it('App.db.setHighAvailabilityWizardHdfsUser should be called', function() 
{
+      controller.saveTasksStatuses([{}]);
+      
expect(App.db.setHighAvailabilityWizardTasksStatuses.calledWith([{}])).to.be.true;
+      expect(controller.get('content.tasksStatuses')).to.be.eql([{}]);
+    });
+  });
+
+  describe('#saveConfigTag', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardConfigTag');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardConfigTag.restore();
+    });
+
+    it('App.db.setHighAvailabilityWizardConfigTag should be called', 
function() {
+      var tag = {name: 'tag1', value: 'val'};
+      controller.saveConfigTag(tag);
+      
expect(App.db.setHighAvailabilityWizardConfigTag.calledWith(tag)).to.be.true;
+      expect(controller.get('content.tag1')).to.be.equal(tag.value);
+    });
+  });
+
+  describe('#saveHdfsClientHosts', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardHdfsClientHosts');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardHdfsClientHosts.restore();
+    });
+
+    it('App.db.setHighAvailabilityWizardHdfsClientHosts should be called', 
function() {
+      controller.saveHdfsClientHosts(['host1']);
+      
expect(App.db.setHighAvailabilityWizardHdfsClientHosts.calledWith(['host1'])).to.be.true;
+      
expect(controller.get('content.hdfsClientHostNames')).to.be.eql(['host1']);
+    });
+  });
+
+  describe('#saveServiceConfigProperties', function() {
+    beforeEach(function() {
+      sinon.stub(controller, 'setDBProperty');
+    });
+    afterEach(function() {
+      controller.setDBProperty.restore();
+    });
+
+    it('setDBProperty should be called', function() {
+      var ctrl = Em.Object.create({
+        serverConfigData: {
+          items: [
+            {
+              type: 'f1',
+              properties: {
+                'xasecure.audit.destination.hdfs.dir': ''
+              }
+            }
+          ]
+        },
+        stepConfigs: [
+          Em.Object.create({
+            configs: [
+              Em.Object.create({
+                filename: 'f1',
+                name: 'xasecure.audit.destination.hdfs.dir',
+                value: 'val1'
+              }),
+              Em.Object.create({
+                filename: 'f1',
+                name: 'p2',
+                value: 'val2'
+              })
+            ]
+          })
+        ]
+      });
+      controller.saveServiceConfigProperties(ctrl);
+      
expect(JSON.stringify(ctrl.get('serverConfigData'))).to.be.equal(JSON.stringify({
+        items: [
+          {
+            type: 'f1',
+            properties: {
+              'xasecure.audit.destination.hdfs.dir': 'val1',
+              p2: 'val2'
+            }
+          }
+        ]
+      }));
+      
expect(controller.get('content.serviceConfigProperties')).to.be.eql(ctrl.get('serverConfigData'));
+      expect(controller.setDBProperty.calledWith('serviceConfigProperties', 
ctrl.get('serverConfigData'))).to.be.true;
+    });
+  });
+
+  describe('#loadHdfsClientHosts', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 
'getHighAvailabilityWizardHdfsClientHosts').returns(['host1']);
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardHdfsClientHosts.restore();
+    });
+
+    it('hdfsClientHostNames should be array of hosts', function() {
+      controller.loadHdfsClientHosts();
+      
expect(controller.get('content.hdfsClientHostNames')).to.be.eql(['host1']);
+    });
+  });
+
+  describe('#loadConfigTag', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'getHighAvailabilityWizardConfigTag').returns('val');
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardConfigTag.restore();
+    });
+
+    it('tag value should be "val"', function() {
+      controller.loadConfigTag('tag1');
+      expect(controller.get('content.tag1')).to.be.equal('val');
+    });
+  });
+
+  describe('#loadHdfsUser', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'getHighAvailabilityWizardHdfsUser').returns('hdfs');
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardHdfsUser.restore();
+    });
+
+    it('hdfsUser value should be "hdfs"', function() {
+      controller.loadHdfsUser();
+      expect(controller.get('content.hdfsUser')).to.be.equal('hdfs');
+    });
+  });
+
+  describe('#loadTasksStatuses', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 
'getHighAvailabilityWizardTasksStatuses').returns([{}]);
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardTasksStatuses.restore();
+    });
+
+    it('tasksStatuses value should be set', function() {
+      controller.loadTasksStatuses();
+      expect(controller.get('content.tasksStatuses')).to.be.eql([{}]);
+    });
+  });
+
+  describe('#loadServiceConfigProperties', function() {
+    beforeEach(function() {
+      sinon.stub(controller, 'getDBProperty').returns([{}]);
+    });
+    afterEach(function() {
+      controller.getDBProperty.restore();
+    });
+
+    it('serviceConfigProperties value should be set', function() {
+      controller.loadServiceConfigProperties();
+      
expect(controller.get('content.serviceConfigProperties')).to.be.eql([{}]);
+    });
+  });
+
+  describe('#saveRequestIds', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardRequestIds');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardRequestIds.restore();
+    });
+
+    it('setHighAvailabilityWizardRequestIds should be called', function() {
+      controller.saveRequestIds([1]);
+      expect(controller.get('content.requestIds')).to.be.eql([1]);
+      
expect(App.db.setHighAvailabilityWizardRequestIds.calledWith([1])).to.be.true;
+    });
+  });
+
+  describe('#loadRequestIds', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'getHighAvailabilityWizardRequestIds').returns([1]);
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardRequestIds.restore();
+    });
+
+    it('requestIds should be set', function() {
+      controller.loadRequestIds();
+      expect(controller.get('content.requestIds')).to.be.eql([1]);
+    });
+  });
+
+  describe('#saveNameServiceId', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardNameServiceId');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardNameServiceId.restore();
+    });
+
+    it('setHighAvailabilityWizardNameServiceId should be called', function() {
+      controller.saveNameServiceId('ha');
+      expect(controller.get('content.nameServiceId')).to.be.equal('ha');
+      
expect(App.db.setHighAvailabilityWizardNameServiceId.calledWith('ha')).to.be.true;
+    });
+  });
+
+  describe('#loadNameServiceId', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 
'getHighAvailabilityWizardNameServiceId').returns('ha');
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardNameServiceId.restore();
+    });
+
+    it('nameServiceId value should be set', function() {
+      controller.loadNameServiceId();
+      expect(controller.get('content.nameServiceId')).to.be.equal('ha');
+    });
+  });
+
+  describe('#saveTasksRequestIds', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 'setHighAvailabilityWizardTasksRequestIds');
+    });
+    afterEach(function() {
+      App.db.setHighAvailabilityWizardTasksRequestIds.restore();
+    });
+
+    it('setHighAvailabilityWizardTasksRequestIds should be called', function() 
{
+      controller.saveTasksRequestIds([1]);
+      expect(controller.get('content.tasksRequestIds')).to.be.eql([1]);
+      
expect(App.db.setHighAvailabilityWizardTasksRequestIds.calledWith([1])).to.be.true;
+    });
+  });
+
+  describe('#loadTasksRequestIds', function() {
+    beforeEach(function() {
+      sinon.stub(App.db, 
'getHighAvailabilityWizardTasksRequestIds').returns([1]);
+    });
+    afterEach(function() {
+      App.db.getHighAvailabilityWizardTasksRequestIds.restore();
+    });
+
+    it('tasksRequestIds value should be set', function() {
+      controller.loadTasksRequestIds();
+      expect(controller.get('content.tasksRequestIds')).to.be.eql([1]);
+    });
+  });
+
+  describe('#clearAllSteps', function() {
+    beforeEach(function() {
+      sinon.stub(controller, 'clearInstallOptions');
+      sinon.stub(controller, 'getCluster').returns({name: 'c1'});
+    });
+    afterEach(function() {
+      controller.clearInstallOptions.restore();
+      controller.getCluster.restore();
+    });
+
+    it('clearInstallOptions should be called', function() {
+      controller.clearAllSteps();
+      expect(controller.clearInstallOptions.calledOnce).to.be.true;
+      expect(controller.get('content.cluster')).to.be.eql({name: 'c1'});
+    });
+  });
+
+  describe('#clearTasksData', function() {
+    beforeEach(function() {
+      sinon.stub(controller, 'saveTasksStatuses');
+      sinon.stub(controller, 'saveRequestIds');
+      sinon.stub(controller, 'saveTasksRequestIds');
+      controller.clearTasksData();
+    });
+    afterEach(function() {
+      controller.saveRequestIds.restore();
+      controller.saveTasksStatuses.restore();
+      controller.saveTasksRequestIds.restore();
+    });
+
+    it('saveTasksStatuses should be called', function() {
+      expect(controller.saveTasksStatuses.calledWith(undefined)).to.be.true;
+    });
+
+    it('saveRequestIds should be called', function() {
+      expect(controller.saveRequestIds.calledWith(undefined)).to.be.true;
+    });
+
+    it('saveTasksRequestIds should be called', function() {
+      expect(controller.saveTasksRequestIds.calledWith(undefined)).to.be.true;
+    });
+  });
+
+  describe('#finish', function() {
+    var mock = {
+      updateAll: Em.K
+    };
+    beforeEach(function() {
+      sinon.spy(mock, 'updateAll');
+      sinon.stub(App.router, 'get').returns(mock);
+      sinon.stub(controller, 'resetDbNamespace');
+      controller.finish();
+    });
+    afterEach(function() {
+      mock.updateAll.restore();
+      App.router.get.restore();
+      controller.resetDbNamespace.restore();
+    });
+
+    it('resetDbNamespace should be called', function() {
+      expect(controller.resetDbNamespace.calledOnce).to.be.true;
+    });
+
+    it('updateAll should be called', function() {
+      expect(mock.updateAll.calledOnce).to.be.true;
+    });
+  });
+});

Reply via email to