12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232 |
- /**
- * 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('models/cluster');
- require('controllers/wizard');
- require('controllers/installer');
- describe('App.InstallerController', function () {
- var installerController = App.InstallerController.create();
- after(function () {
- installerController.destroy();
- });
- describe('#init', function () {
- var c;
- beforeEach(function () {
- c = App.InstallerController.create({});
- });
- it('all steps are disabled by default', function () {
- expect(c.get('isStepDisabled.length')).to.be.above(0);
- expect(c.get('isStepDisabled').everyProperty('value', true)).to.be.ok;
- });
- });
- describe('#getCluster', function() {
- it ('Should return merged clusterStatusTemplate', function() {
- installerController.set('clusterStatusTemplate', {
- name: 'template'
- });
- expect(installerController.getCluster()).to.eql({
- name: 'template'
- });
- });
- });
- describe('#getHosts', function() {
- it ('Should return empty array', function() {
- expect(installerController.getHosts()).to.eql([]);
- });
- });
- describe('#loadServices', function() {
- it ('Should resolve nothing', function() {
- var res = installerController.loadServices();
- res.then(function(data){
- expect(data).to.be.undefined;
- });
- });
- });
- describe('#checkRepoURL', function() {
- var stacks = Em.A([
- Em.Object.create({
- isSelected: false
- }),
- Em.Object.create({
- isSelected: true,
- reload: false,
- id: 'nn-cc',
- stackNameVersion: 'nn-cc',
- repositories: Em.A([
- Em.Object.create({
- isSelected: true
- })
- ]),
- operatingSystems: Em.A([
- Em.Object.create({
- isSelected: true,
- repositories: Em.A([
- Em.Object.create({
- errorTitle: '1',
- errorContent: '1',
- validation: ''
- })
- ])
- })
- ])
- })
- ]);
- var wizard = Em.Object.create({
- skipValidationChecked: true
- });
- it ('Should reload installed stacks', function() {
- installerController.set('content.stacks', stacks);
- installerController.checkRepoURL(wizard);
- var expected = [
- {
- "isSelected": false
- },
- {
- "isSelected": true,
- "reload": true,
- "id": "nn-cc",
- "stackNameVersion": 'nn-cc',
- "repositories": [
- {
- "isSelected": true
- }
- ],
- "operatingSystems": [
- {
- "isSelected": true,
- "repositories": [
- {
- "errorTitle": "",
- "errorContent": "",
- "validation": "icon-repeat"
- }
- ]
- }
- ]
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('content.stacks')));
- expect(res).to.be.eql(expected);
- });
- });
- describe('#checkRepoURLSuccessCallback', function() {
- var stacks = Em.A([
- Em.Object.create({
- isSelected: false
- }),
- Em.Object.create({
- isSelected: true,
- reload: false,
- id: 'nn-cc',
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- isSelected: true
- })
- ]),
- operatingSystems: Em.A([
- Em.Object.create({
- isSelected: true,
- id: 1,
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- errorTitle: '1',
- errorContent: '1',
- validation: ''
- })
- ])
- })
- ])
- })
- ]);
- var resolve = false;
- var data = {
- osId: 1,
- repoId: 11,
- dfd: {
- resolve: function() {
- resolve = true;
- }
- }
- };
- it ('Should check stacks for sucess', function() {
- installerController.set('content.stacks', stacks);
- installerController.checkRepoURLSuccessCallback(null,null,data);
- var expected = [
- {
- "isSelected": false
- },
- {
- "isSelected": true,
- "reload": false,
- "id": "nn-cc",
- "repositories": [
- {
- "repoId": 11,
- "isSelected": true
- }
- ],
- "operatingSystems": [
- {
- "isSelected": true,
- "id": 1,
- "repositories": [
- {
- "repoId": 11,
- "errorTitle": "1",
- "errorContent": "1",
- "validation": "icon-ok"
- }
- ]
- }
- ]
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('content.stacks')));
- expect(resolve).to.be.true;
- expect(res).to.be.eql(expected);
- });
- });
- describe('#checkRepoURLErrorCallback', function() {
- var stacks = Em.A([
- Em.Object.create({
- isSelected: false
- }),
- Em.Object.create({
- isSelected: true,
- reload: false,
- id: 'nn-cc',
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- isSelected: true
- })
- ]),
- operatingSystems: Em.A([
- Em.Object.create({
- isSelected: true,
- id: 1,
- repositories: Em.A([
- Em.Object.create({
- repoId: 11,
- errorTitle: '1',
- errorContent: '1',
- validation: ''
- })
- ])
- })
- ])
- })
- ]);
- var resolve = false;
- var data = {
- osId: 1,
- repoId: 11,
- dfd: {
- reject: function() {
- resolve = true;
- }
- }
- };
- it ('Should check stacks for error', function() {
- var req = {
- status: 500,
- statusText: 'error'
- };
- installerController.set('content.stacks', stacks);
- installerController.checkRepoURLErrorCallback(req,{},{},{},data);
- var expected = [
- {
- "isSelected": false
- },
- {
- "isSelected": true,
- "reload": false,
- "id": "nn-cc",
- "repositories": [
- {
- "repoId": 11,
- "isSelected": true
- }
- ],
- "operatingSystems": [
- {
- "isSelected": true,
- "id": 1,
- "repositories": [
- {
- "repoId": 11,
- "errorTitle": "500:error",
- "errorContent": "",
- "validation": "icon-exclamation-sign"
- }
- ]
- }
- ]
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('content.stacks')));
- expect(resolve).to.be.true;
- expect(res).to.be.eql(expected);
- });
- });
- describe('#setLowerStepsDisable', function() {
- beforeEach(function () {
- var steps = Em.A([
- Em.Object.create({
- step: 0,
- value: false
- }),
- Em.Object.create({
- step: 1,
- value: false
- }),
- Em.Object.create({
- step: 2,
- value: false
- }),
- Em.Object.create({
- step: 3,
- value: false
- }),
- Em.Object.create({
- step: 4,
- value: false
- })
- ]);
- installerController.set('isStepDisabled', steps);
- installerController.setLowerStepsDisable(3);
- });
- it ('Should disable lower steps', function() {
- var expected = [
- {
- "step": 0,
- "value": true
- },
- {
- "step": 1,
- "value": true
- },
- {
- "step": 2,
- "value": true
- },
- {
- "step": 3,
- "value": false
- },
- {
- "step": 4,
- "value": false
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('isStepDisabled')));
- expect(res).to.eql(expected);
- });
- });
- describe('#setStepsEnable', function() {
- beforeEach(function () {
- var steps = Em.A([
- Em.Object.create({
- step: 0,
- value: false
- }),
- Em.Object.create({
- step: 1,
- value: false
- }),
- Em.Object.create({
- step: 2,
- value: false
- }),
- Em.Object.create({
- step: 3,
- value: false
- }),
- Em.Object.create({
- step: 4,
- value: false
- })
- ]);
- installerController.set('isStepDisabled', steps);
- installerController.totalSteps = steps.length - 1;
- installerController.set('currentStep',2);
- });
- it ('Should enable next steps', function() {
- var expected = [
- {
- "step": 0,
- "value": false
- },
- {
- "step": 1,
- "value": true
- },
- {
- "step": 2,
- "value": true
- },
- {
- "step": 3,
- "value": true
- },
- {
- "step": 4,
- "value": true
- }
- ];
- var res = JSON.parse(JSON.stringify(installerController.get('isStepDisabled')));
- expect(res).to.eql(expected);
- });
- });
- describe('#loadMap', function() {
- describe('Should load cluster', function() {
- var loadCluster = false;
- var checker = {
- load: function() {
- loadCluster = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['0'][0].callback.call(checker);
- });
- it('cluster info is loaded', function () {
- expect(loadCluster).to.be.true;
- });
- });
- describe('Should load stacks', function() {
- var loadStacks = false;
- var checker = {
- loadStacks: function() {
- return {
- always: function() {
- loadStacks = true;
- }
- };
- }
- };
- beforeEach(function () {
- installerController.loadMap['1'][0].callback.call(checker);
- });
- it('stack info is loaded', function () {
- expect(loadStacks).to.be.true;
- });
- });
- describe ('Should load stacks async', function() {
- var loadStacksVersions = false;
- var checker = {
- loadStacksVersions: function() {
- loadStacksVersions = true;
- }
- };
- it('stack versions are loaded', function () {
- installerController.loadMap['1'][1].callback.call(checker, true).then(function(data){
- expect(data).to.be.true;
- });
- expect(loadStacksVersions).to.be.false;
- });
- });
- describe('Should load installOptions', function() {
- var installOptions = false;
- var checker = {
- load: function() {
- installOptions = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['2'][0].callback.call(checker);
- });
- it('install option are loaded', function () {
- expect(installOptions).to.be.true;
- });
- });
- describe('Should load loadConfirmedHosts', function() {
- var loadConfirmedHosts = false;
- var checker = {
- loadConfirmedHosts: function() {
- loadConfirmedHosts = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['3'][0].callback.call(checker);
- });
- it('confirmed hosts are loaded', function () {
- expect(loadConfirmedHosts).to.be.true;
- });
- });
- describe('Should load loadServices', function() {
- var loadServices = false;
- var checker = {
- loadServices: function() {
- loadServices = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['4'][0].callback.call(checker);
- });
- it('services are loaded', function () {
- expect(loadServices).to.be.true;
- });
- });
- describe('Should load loadServices (2)', function() {
- var setSkipSlavesStep = false;
- var loadMasterComponentHosts = false;
- var loadConfirmedHosts = false;
- var loadRecommendations = false;
- var checker = {
- setSkipSlavesStep: function() {
- setSkipSlavesStep = true;
- },
- loadMasterComponentHosts: function() {
- loadMasterComponentHosts = true;
- },
- loadConfirmedHosts: function() {
- loadConfirmedHosts = true;
- },
- loadRecommendations: function() {
- loadRecommendations = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['5'][0].callback.call(checker);
- });
- it('confirmed hosts are loaded', function() {
- expect(loadConfirmedHosts).to.be.true;
- });
- it('`skipSlavesStep` is loaded', function() {
- expect(setSkipSlavesStep).to.be.true;
- });
- it('master components hosts are loaded', function() {
- expect(loadMasterComponentHosts).to.be.true;
- });
- it('recommendations are loaded', function() {
- expect(loadRecommendations).to.be.true;
- });
- });
- describe ('Should load serviceConfigGroups', function() {
- var loadServiceConfigGroups = false;
- var loadServiceConfigProperties = false;
- var loadCurrentHostGroups = false;
- var loadRecommendationsConfigs = false;
- var loadConfigThemes = false;
- var checker = {
- loadServiceConfigGroups: function() {
- loadServiceConfigGroups = true;
- },
- loadServiceConfigProperties: function() {
- loadServiceConfigProperties = true;
- },
- loadCurrentHostGroups: function() {
- loadCurrentHostGroups = true;
- },
- loadRecommendationsConfigs: function() {
- loadRecommendationsConfigs = true;
- },
- loadConfigThemes: function() {
- loadConfigThemes = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['7'][0].callback.call(checker);
- });
- it('config groups are loaded', function () {
- expect(loadServiceConfigGroups).to.be.true;
- });
- it('config properties are loaded', function () {
- expect(loadServiceConfigProperties).to.be.true;
- });
- it('current host groups are loaded', function () {
- expect(loadCurrentHostGroups).to.be.true;
- });
- it('recommendations are loaded', function () {
- expect(loadRecommendationsConfigs).to.be.true;
- });
- it('config themes are loaded', function () {
- expect(loadConfigThemes).to.be.true;
- });
- });
- describe('Should load clients', function() {
- var loadSlaveComponentHosts = false;
- var loadClients = false;
- var loadRecommendations = false;
- var checker = {
- loadSlaveComponentHosts: function() {
- loadSlaveComponentHosts = true;
- },
- loadClients: function() {
- loadClients = true;
- },
- loadRecommendations: function() {
- loadRecommendations = true;
- }
- };
- beforeEach(function () {
- installerController.loadMap['6'][0].callback.call(checker);
- });
- it('slave components hosts are loaded', function () {
- expect(loadSlaveComponentHosts).to.be.true;
- });
- it('clients are loaded', function () {
- expect(loadClients).to.be.true;
- });
- it('recommendations are loaded', function () {
- expect(loadRecommendations).to.be.true;
- });
- });
- });
- describe('#removeHosts', function() {
- var hostsDb = {
- 'h1': {},
- 'h2': {},
- 'h3': {},
- 'h4': {}
- };
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns(hostsDb);
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should remove hosts from the list', function() {
- var hosts = Em.A([
- {
- name: 'h1'
- },
- {
- name: 'h2'
- },
- {
- name: 'h3'
- }
- ]);
- installerController.removeHosts(hosts);
- expect(hostsDb).to.eql({
- 'h4': {}
- });
- });
- });
- describe('#allHosts', function() {
- it ('Should return hosts', function() {
- var hosts = {
- 'h1': {
- disk_info: Em.A([{
- available: 1,
- size: 10
- }]),
- hostComponents: Em.A([])
- }
- };
- var masterComponentHosts = Em.A([
- {
- hostName: 'h1',
- component: 'component',
- display_name: 'n1'
- }
- ]);
- var slaveComponentHosts = Em.A([
- {
- hosts: Em.A([
- {
- hostName: 'h1'
- }
- ])
- }
- ]);
- installerController.set('content.hosts', hosts);
- installerController.set('content.masterComponentHosts', masterComponentHosts);
- installerController.set('content.slaveComponentHosts', slaveComponentHosts);
- var res = JSON.parse(JSON.stringify(installerController.get('allHosts')));
- expect(res).to.eql([
- {
- "diskInfo": [
- {
- "available": 1,
- "size": 10
- }
- ],
- "diskTotal": 0.0000095367431640625,
- "diskFree": 9.5367431640625e-7,
- "hostComponents": [
- {
- "componentName": "component",
- "displayName": "n1"
- },
- {}
- ]
- }
- ]);
- });
- });
- describe('#loadServiceConfigProperties', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns({
- value: 2
- });
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should load service config property', function() {
- installerController.loadServiceConfigProperties();
- expect(installerController.get('content.serviceConfigProperties')).to.eql({
- "value": 2
- });
- });
- });
- describe('#saveServices', function() {
- it ('Should return correct names', function() {
- var stepController = Em.A([
- Em.Object.create({
- isInstalled: true,
- isSelected: true,
- serviceName: 'i1'
- }),
- Em.Object.create({
- isInstalled: false,
- isSelected: true,
- serviceName: 'i2'
- }),
- Em.Object.create({
- isInstalled: true,
- isSelected: false,
- serviceName: 'i3'
- })
- ]);
- installerController.saveServices(stepController);
- expect(installerController.get('content.selectedServiceNames')).to.eql(['i1','i2']);
- expect(installerController.get('content.installedServiceNames')).to.eql(['i1','i3']);
- });
- });
- describe('#saveClients', function() {
- var stepController;
- beforeEach(function () {
- stepController = Em.Object.create({
- content: Em.A([
- Em.Object.create({
- isInstalled: true,
- isSelected: true,
- serviceName: 'i1',
- serviceComponents: Em.A([
- Em.Object.create({
- isClient: true,
- componentName: 'name',
- displayName: 'dname'
- })
- ])
- }),
- Em.Object.create({
- isInstalled: false,
- isSelected: true,
- serviceName: 'i2',
- serviceComponents: Em.A([
- Em.Object.create({
- isClient: false
- })
- ])
- }),
- Em.Object.create({
- isInstalled: true,
- isSelected: false,
- serviceName: 'i3',
- serviceComponents: Em.A([
- Em.Object.create({
- isClient: false
- })
- ])
- })
- ])
- });
- });
- it ('Should return correct clients names', function() {
- installerController.saveClients(stepController);
- var res = JSON.parse(JSON.stringify(installerController.get('content.clients')));
- expect(res).to.eql([
- {
- "component_name": "name",
- "display_name": "dname",
- "isInstalled": false
- }
- ]);
- });
- });
- describe('#saveMasterComponentHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns({
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- });
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should return hosts', function() {
- var stepController = Em.Object.create({
- selectedServicesMasters: Em.A([
- Em.Object.create({
- display_name: 'n1',
- component_name: 'c1',
- serviceId: 1,
- selectedHost: 'h1'
- })
- ])
- });
- installerController.saveMasterComponentHosts(stepController);
- expect(installerController.get('content.masterComponentHosts')).to.eql([
- {
- "display_name": "n1",
- "component": "c1",
- "serviceId": 1,
- "isInstalled": false,
- "host_id": 11
- }
- ]);
- });
- });
- describe('#loadConfirmedHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperty').returns({
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- });
- });
- afterEach(function () {
- installerController.getDBProperty.restore();
- });
- it ('Should load hosts from db', function() {
- installerController.loadConfirmedHosts();
- expect(installerController.get('content.hosts')).to.eql({
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- });
- });
- });
- describe('#loadMasterComponentHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperties', function() {
- return {
- masterComponentHosts: Em.A([
- {
- hostName: '',
- host_id: 11
- }
- ]),
- hosts: {
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- }
- }
- });
- });
- afterEach(function () {
- installerController.getDBProperties.restore();
- });
- it ('Should load hosts', function() {
- installerController.loadMasterComponentHosts();
- expect(installerController.get('content.masterComponentHosts')).to.eql([
- {
- "hostName": "h1",
- "host_id": 11
- }
- ]);
- });
- });
- describe('#loadSlaveComponentHosts', function() {
- beforeEach(function () {
- sinon.stub(installerController, 'getDBProperties', function() {
- return {
- hosts: {
- 'h1': {
- id: 11
- },
- 'h3': {
- id: 13
- },
- 'h2': {
- id: 12
- }
- },
- slaveComponentHosts: Em.A([
- {
- hosts: Em.A([
- {
- hostName: '',
- host_id: 11
- }
- ])
- }
- ])
- };
- });
- });
- afterEach(function () {
- installerController.getDBProperties.restore();
- });
- it ('Should load slave hosts', function() {
- installerController.loadSlaveComponentHosts();
- expect(installerController.get('content.slaveComponentHosts')).to.eql([
- {
- "hosts": [
- {
- "hostName": "h1",
- "host_id": 11
- }
- ]
- }
- ]);
- });
- });
- describe('#getServerVersionSuccessCallback', function () {
- var cases = [
- {
- osFamily: 'redhat5',
- expected: false
- },
- {
- osFamily: 'redhat6',
- expected: true
- },
- {
- osFamily: 'suse11',
- expected: false
- }
- ],
- title = 'App.isManagedMySQLForHiveEnabled should be {0} for {1}';
- cases.forEach(function (item) {
- it(title.format(item.expected, item.osFamily), function () {
- installerController.getServerVersionSuccessCallback({
- 'RootServiceComponents': {
- 'component_version': '',
- 'properties': {
- 'server.os_family': item.osFamily
- }
- }
- });
- expect(App.get('isManagedMySQLForHiveEnabled')).to.equal(item.expected);
- });
- });
- });
- describe('#validateJDKVersion', function() {
- var tests = [
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.7',
- isSelected: true
- })],
- m: 'JDK 1.8, stack supports 1.6-1.7 popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.8, stack supports 1.7-1.8 procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports 1.6-1.8, popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: null,
- maxJdkVersion: null,
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max and min are null, procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: '1.5',
- maxJdkVersion: null,
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max is missed and min is 1.5, procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.6'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: '1.5',
- maxJdkVersion: null,
- isSelected: true
- })],
- m: 'JDK 1.6, stack supports max is missed and min is 1.5, popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: null,
- maxJdkVersion: '1.5',
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max 1.5 and min is missed, procceed installation without warning'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.5'
- },
- successCallbackCalled: false,
- popupCalled: true,
- stacks: [Em.Object.create({
- minJdkVersion: null,
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.5, stack supports max 1.8 and min is missed, popup should be displayed'
- },
- {
- isCustomJDK: false,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- isSelected: true
- })],
- m: 'JDK 1.8, min, max jdk missed in stack definition, procceed installation without warning'
- },
- {
- isCustomJDK: true,
- ambariProperties: {
- 'java.version': '1.8'
- },
- successCallbackCalled: true,
- popupCalled: false,
- stacks: [Em.Object.create({
- minJdkVersion: '1.6',
- maxJdkVersion: '1.8',
- isSelected: true
- })],
- m: 'JDK 1.8, custom jdk location used, procceed installation without warning'
- }
- ];
- tests.forEach(function(test) {
- describe(test.m, function() {
- var successCallback;
- beforeEach(function () {
- sinon.stub(App.Stack, 'find').returns(test.stacks);
- sinon.stub(App.router, 'get').withArgs('clusterController.isCustomJDK').returns(test.isCustomJDK)
- .withArgs('clusterController.ambariProperties').returns(test.ambariProperties);
- sinon.stub(App, 'showConfirmationPopup', Em.K);
- successCallback = sinon.spy();
- installerController.validateJDKVersion(successCallback);
- });
- afterEach(function () {
- App.router.get.restore();
- App.Stack.find.restore();
- App.showConfirmationPopup.restore();
- });
- it('successCallback is ' + (test.successCallbackCalled ? '' : 'not') + ' called', function () {
- expect(successCallback.called).to.be.equal(test.successCallbackCalled);
- });
- it('App.showConfirmationPopup. is ' + (test.popupCalled ? '' : 'not') + ' called', function () {
- expect(App.showConfirmationPopup.called).to.be.equal(test.popupCalled);
- });
- });
- });
- });
- describe('#postVersionDefinitionFileErrorCallback', function () {
- beforeEach(function () {
- sinon.stub(App, 'showAlertPopup', Em.K);
- });
- afterEach(function () {
- App.showAlertPopup.restore();
- });
- it('should delete VDF-data', function () {
- App.db.setLocalRepoVDFData({});
- expect(App.db.getLocalRepoVDFData()).to.not.be.an.object;
- installerController.postVersionDefinitionFileErrorCallback({}, {}, {}, {}, {dfd: $.Deferred()});
- expect(App.db.getLocalRepoVDFData()).to.be.undefined;
- });
- });
- });
|