blob: 938e4f4bf2d9f9bd57ebf1a4cf12dcab9be46f42 [file] [log] [blame]
/**
* 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/highAvailability/hawq/removeStandby/step3_controller');
describe('App.RemoveHawqStandbyWizardController', function () {
var controller;
beforeEach(function() {
controller = App.RemoveHawqStandbyWizardController.create();
});
describe('#loadMap', function() {
describe('#step1', function() {
beforeEach(function() {
sinon.stub(controller, 'load');
});
afterEach(function() {
controller.load.restore();
});
it('load should be called', function() {
controller.loadMap['1'][0].callback.apply(controller);
expect(controller.load.calledWith('cluster')).to.be.true;
});
});
describe('#step2', function() {
beforeEach(function() {
sinon.stub(controller, 'loadHawqHosts');
sinon.stub(controller, 'loadServicesFromServer');
sinon.stub(controller, 'loadMasterComponentHosts').returns({done: Em.clb})
});
afterEach(function() {
controller.loadHawqHosts.restore();
controller.loadServicesFromServer.restore();
controller.loadMasterComponentHosts.restore();
});
it('loadHawqHosts should be called', function() {
controller.loadMap['2'][0].callback.apply(controller);
expect(controller.loadHawqHosts.calledOnce).to.be.true;
});
it('loadServicesFromServer should be called', function() {
controller.loadMap['2'][0].callback.apply(controller);
expect(controller.loadServicesFromServer.calledOnce).to.be.true;
});
it('loadMasterComponentHosts should be called', function() {
controller.loadMap['2'][0].callback.apply(controller);
expect(controller.loadMasterComponentHosts.calledOnce).to.be.true;
});
});
describe('#step3', function() {
beforeEach(function() {
sinon.stub(controller, 'loadTasksStatuses');
sinon.stub(controller, 'loadTasksRequestIds');
sinon.stub(controller, 'loadRequestIds');
sinon.stub(controller, 'loadConfigs');
});
afterEach(function() {
controller.loadTasksStatuses.restore();
controller.loadTasksRequestIds.restore();
controller.loadRequestIds.restore();
controller.loadConfigs.restore();
});
it('loadTasksStatuses should be called', function() {
controller.loadMap['3'][0].callback.apply(controller);
expect(controller.loadTasksStatuses.calledOnce).to.be.true;
});
it('loadTasksRequestIds should be called', function() {
controller.loadMap['3'][0].callback.apply(controller);
expect(controller.loadTasksRequestIds.calledOnce).to.be.true;
});
it('loadRequestIds should be called', function() {
controller.loadMap['3'][0].callback.apply(controller);
expect(controller.loadRequestIds.calledOnce).to.be.true;
});
it('loadConfigs should be called', function() {
controller.loadMap['3'][0].callback.apply(controller);
expect(controller.loadConfigs.calledOnce).to.be.true;
});
});
});
describe('#init', function() {
beforeEach(function() {
sinon.stub(controller, 'clearStep');
});
afterEach(function() {
controller.clearStep.restore();
});
it('clearStep should be called', function() {
controller.init();
expect(controller.clearStep.calledOnce).to.be.true;
});
});
describe('#clearStep', function() {
it('isFinished should be false', function() {
controller.clearStep();
expect(controller.get('isFinished')).to.be.false;
});
});
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('#saveHawqHosts', function() {
beforeEach(function() {
sinon.stub(controller, 'setDBProperty');
});
afterEach(function() {
controller.setDBProperty.restore();
});
it('setDBProperty should be called', function() {
controller.saveHawqHosts(['host1']);
expect(controller.setDBProperty.calledWith('hawqHosts', ['host1'])).to.be.true;
});
it('should set hawqHosts', function() {
controller.saveHawqHosts(['host1']);
expect(controller.get('content.hawqHosts')).to.be.eql(['host1']);
});
});
describe('#loadHawqHosts', function() {
beforeEach(function() {
sinon.stub(controller, 'getDBProperty').returns(['host1']);
});
afterEach(function() {
controller.getDBProperty.restore();
});
it('should set hawqHosts', function() {
controller.loadHawqHosts();
expect(controller.get('content.hawqHosts')).to.be.eql(['host1']);
});
});
describe('#saveConfigs', function() {
beforeEach(function() {
sinon.stub(controller, 'setDBProperty');
});
afterEach(function() {
controller.setDBProperty.restore();
});
it('setDBProperty should be called', function() {
controller.saveConfigs([{}]);
expect(controller.setDBProperty.calledWith('configs', [{}])).to.be.true;
});
it('should set configs', function() {
controller.saveConfigs([{}]);
expect(controller.get('content.configs')).to.be.eql([{}]);
});
});
describe('#loadConfigs', function() {
beforeEach(function() {
sinon.stub(controller, 'getDBProperty').returns([{}]);
});
afterEach(function() {
controller.getDBProperty.restore();
});
it('should set configs', function() {
controller.loadConfigs();
expect(controller.get('content.configs')).to.be.eql([{}]);
});
});
describe('#clearAllSteps', function() {
beforeEach(function() {
sinon.stub(controller, 'clearInstallOptions');
sinon.stub(controller, 'getCluster').returns({clusterName: 'c1'})
});
afterEach(function() {
controller.clearInstallOptions.restore();
controller.getCluster.restore();
});
it('clearInstallOptions should be called', function() {
controller.clearAllSteps();
expect(controller.clearInstallOptions.calledOnce).to.be.true;
});
it('cluster should be set', function() {
controller.clearAllSteps();
expect(controller.get('content.cluster')).to.be.eql({clusterName: 'c1'});
});
});
describe('#finish', function() {
var mock = {
updateAll: sinon.spy()
};
beforeEach(function() {
sinon.stub(controller, 'resetDbNamespace');
sinon.stub(App.router, 'get').returns(mock);
});
afterEach(function() {
controller.resetDbNamespace.restore();
App.router.get.restore();
});
it('resetDbNamespace should be called', function() {
controller.finish();
expect(controller.resetDbNamespace.calledOnce).to.be.true;
});
it('isFinished should be true', function() {
controller.finish();
expect(controller.get('isFinished')).to.be.true;
});
it('updateAll should be called', function() {
controller.finish();
expect(mock.updateAll.called).to.be.true;
});
});
});