blob: 7a8b2702e68a0894c590a2226c531a1ca18cf56e [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');
describe('BulkOperationsController', function () {
var hostController;
describe('#bulkOperation', function() {
beforeEach(function() {
hostController = App.BulkOperationsController.create({});
sinon.stub(hostController, 'bulkOperationForHostsRestart', Em.K);
sinon.stub(hostController, 'bulkOperationForHosts', Em.K);
sinon.stub(hostController, 'bulkOperationForHostsReinstall', Em.K);
sinon.stub(hostController, 'bulkOperationForHostComponentsRestart', Em.K);
sinon.stub(hostController, 'bulkOperationForHostComponentsDecommission', Em.K);
sinon.stub(hostController, 'bulkOperationForHostComponents', Em.K);
sinon.stub(hostController, 'bulkOperationForHostComponentsAdd', Em.K);
sinon.stub(hostController, 'bulkOperationForHostsPassiveState', Em.K);
});
afterEach(function() {
hostController.bulkOperationForHosts.restore();
hostController.bulkOperationForHostsRestart.restore();
hostController.bulkOperationForHostsReinstall.restore();
hostController.bulkOperationForHostComponentsRestart.restore();
hostController.bulkOperationForHostComponentsDecommission.restore();
hostController.bulkOperationForHostComponents.restore();
hostController.bulkOperationForHostComponentsAdd.restore();
hostController.bulkOperationForHostsPassiveState.restore();
});
it('RESTART for hosts', function() {
var operationData = {
action: 'RESTART'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostsRestart.calledOnce).to.equal(true);
});
it('START for hosts', function() {
var operationData = {
action: 'STARTED'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHosts.calledOnce).to.equal(true);
});
it('STOP for hosts', function() {
var operationData = {
action: 'INSTALLED'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHosts.calledOnce).to.equal(true);
});
it('REINSTALL for hosts', function() {
var operationData = {
action: 'REINSTALL'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostsReinstall.calledOnce).to.equal(true);
});
it('PASSIVE_STATE for hosts', function() {
var operationData = {
action: 'PASSIVE_STATE'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostsPassiveState.calledOnce).to.equal(true);
});
it('RESTART for hostComponents', function() {
var operationData = {
action: 'RESTART',
componentNameFormatted: 'DataNodes'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostComponentsRestart.calledOnce).to.equal(true);
});
it('START for hostComponents', function() {
var operationData = {
action: 'STARTED',
componentNameFormatted: 'DataNodes'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostComponents.calledOnce).to.equal(true);
});
it('STOP for hostComponents', function() {
var operationData = {
action: 'INSTALLED',
componentNameFormatted: 'DataNodes'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostComponents.calledOnce).to.equal(true);
});
it('ADD for hostComponents', function() {
var operationData = {
action: 'ADD',
componentNameFormatted: 'DataNodes'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostComponentsAdd.calledOnce).to.equal(true);
});
it('DECOMMISSION for hostComponents', function() {
var operationData = {
action: 'DECOMMISSION',
componentNameFormatted: 'DataNodes'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostComponentsDecommission.calledOnce).to.equal(true);
});
it('RECOMMISSION for hostComponents', function() {
var operationData = {
action: 'DECOMMISSION_OFF',
componentNameFormatted: 'DataNodes'
};
hostController.bulkOperation(operationData, []);
expect(hostController.bulkOperationForHostComponentsDecommission.calledOnce).to.equal(true);
});
});
describe('#warnBeforeDecommissionSuccess()', function () {
var mock = {
showHbaseActiveWarning: Em.K,
checkRegionServerState: Em.K
};
beforeEach(function () {
hostController = App.BulkOperationsController.create({});
sinon.stub(App.router, 'get', function () {
return mock;
});
sinon.spy(mock, 'showHbaseActiveWarning');
sinon.spy(mock, 'checkRegionServerState');
});
afterEach(function () {
App.router.get.restore();
mock.showHbaseActiveWarning.restore();
mock.checkRegionServerState.restore();
});
it('items length more than 0', function () {
hostController.warnBeforeDecommissionSuccess({items: [1]}, {}, {});
expect(mock.showHbaseActiveWarning.calledOnce).to.be.true;
});
it('items length equal 0', function () {
hostController.warnBeforeDecommissionSuccess({items: []}, {}, {hostNames: 'host1'});
expect(mock.checkRegionServerState.calledWith('host1')).to.be.true;
});
});
});