blob: 6d0481e9b28f2ae1bcccf67239e500862e3a2e4c [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');
var misc = require('utils/misc');
var view;
describe('App.MainHostServiceMenuView', function () {
beforeEach(function () {
view = App.MainHostServiceMenuView.create({
host: Em.Object.create(),
controller: Em.Object.create({
connectOutlet: Em.K
})
});
});
describe("#content", function() {
beforeEach(function() {
sinon.stub(App, 'get').returns([]);
sinon.stub(App.StackService, 'find').returns([]);
sinon.stub(misc, 'sortByOrder', function(stackServices, services) {
return services;
});
});
afterEach(function() {
App.StackService.find.restore();
misc.sortByOrder.restore();
App.get.restore();
});
it("no hostComponents", function() {
view.set('host', Em.Object.create({
hostComponents: null
}));
view.propertyDidChange('content');
expect(view.get('content')).to.be.empty;
});
it("hostComponents without service", function() {
view.set('host', Em.Object.create({
hostComponents: [
Em.Object.create({
service: null
})
]
}));
view.propertyDidChange('content');
expect(view.get('content')).to.be.empty;
});
it("hostComponents with service", function() {
view.set('host', Em.Object.create({
hostComponents: [
Em.Object.create({
service: Em.Object.create({
serviceName: 'S1'
})
})
]
}));
view.propertyDidChange('content');
expect(view.get('content').mapProperty('serviceName')).to.eql(['S1']);
});
it("hostComponents with the same services", function() {
view.set('host', Em.Object.create({
hostComponents: [
Em.Object.create({
service: Em.Object.create({
serviceName: 'S1'
})
}),
Em.Object.create({
service: Em.Object.create({
serviceName: 'S1'
})
})
]
}));
view.propertyDidChange('content');
expect(view.get('content').mapProperty('serviceName')).to.eql(['S1']);
});
});
describe("#showHostService()", function() {
beforeEach(function() {
sinon.stub(view.get('controller'), 'connectOutlet');
});
afterEach(function() {
view.get('controller').connectOutlet.restore()
});
it("service is absent", function() {
view.showHostService({contexts: []});
expect(view.get('controller').connectOutlet.called).to.be.false;
});
it("service is present", function() {
view.showHostService({contexts: [{serviceName: 'S1'}]});
expect(view.get('controller').connectOutlet.calledWith('service_config_outlet', 'mainHostServiceConfigs', {serviceName: 'S1', host: Em.Object.create()})).to.be.true;
});
});
describe("#didInsertElement()", function() {
beforeEach(function() {
sinon.stub(view, 'showHostService');
});
afterEach(function() {
view.showHostService.restore();
});
it("showHostService should be called", function() {
view.didInsertElement();
expect(view.showHostService.calledWith({contexts: [undefined]})).to.be.true;
});
});
});