import {LogService} from "../../../../utils/log/log.service";
import {NgRedux} from "@angular-redux/store";
-import {BasicControlGenerator, SDN_C_PRE_LOAD, SUPPLEMENTARY_FILE} from "../../../genericForm/formControlsServices/basic.control.generator";
+import {
+ ControlGeneratorUtil,
+ SDN_C_PRE_LOAD,
+ SUPPLEMENTARY_FILE
+} from "../../../genericForm/formControlsServices/control.generator.util.service";
import {AaiService} from "../../../../services/aaiService/aai.service";
import {HttpClient} from "@angular/common/http";
import {GenericFormService} from "../../../genericForm/generic-form.service";
import {DefaultDataGeneratorService} from "../../../../services/defaultDataServiceGenerator/default.data.generator.service";
import {BasicPopupService} from "../basic.popup.service";
import {VfModuleControlGenerator} from "../../../genericForm/formControlsServices/vfModuleGenerator/vfModule.control.generator";
-import {SdcUiServices} from "onap-ui-angular";
import {FeatureFlagsService} from "../../../../services/featureFlag/feature-flags.service";
import {getTestBed, TestBed} from "@angular/core/testing";
import {UpgradeFormControlNames, VfModuleUpgradePopupService} from "./vfModule.upgrade.popuop.service";
import {GeneralActions} from "../../../../storeUtil/utils/general/general.actions";
import {VfModuleActions} from "../../../../storeUtil/utils/vfModule/vfModule.actions";
import {ServiceActions} from "../../../../storeUtil/utils/service/service.actions";
+import {FormControlModel} from "../../../../models/formControlModels/formControl.model";
+import * as _ from "lodash";
+import {SharedControllersService} from "../../../genericForm/formControlsServices/sharedControlles/shared.controllers.service";
+import {ModalService} from "../../../customModal/services/modal.service";
class MockModalService<T> {}
getState() {
return {
service: {
+ serviceHierarchy: {
+ serviceId: {
+ vfModules: {
+ vfModuleName: {
+ volumeGroupAllowed: true
+ }
+ }
+ }
+ },
serviceInstance : {
serviceId : {
vnfs : {
}}}}}}}}
};
}
-
dispatch() {}
}
let fb: FormBuilder;
let iframeService: IframeService;
let store : NgRedux<AppState>;
+ let _sharedTreeService : SharedTreeService;
beforeAll(done => (async () => {
TestBed.configureTestingModule({
providers: [
VfModuleUpgradePopupService,
- BasicControlGenerator,
+ ControlGeneratorUtil,
+ SharedControllersService,
VfModuleControlGenerator,
DefaultDataGeneratorService,
GenericFormService,
{provide: FeatureFlagsService, useClass: MockFeatureFlagsService},
{provide: NgRedux, useClass: MockReduxStore},
{provide: HttpClient, useClass: MockAppStore},
- {provide: SdcUiServices.ModalService, useClass: MockModalService}
+ {provide: ModalService, useClass: MockModalService}
]
});
await TestBed.compileComponents();
defaultDataGeneratorService = injector.get(DefaultDataGeneratorService);
fb = injector.get(FormBuilder);
iframeService = injector.get(IframeService);
+ _sharedTreeService = injector.get(SharedTreeService);
store = injector.get(NgRedux);
service.uuidData = {
+ vfModule: {
+ data: {}
+ },
modelName: 'vfModuleName',
vFModuleStoreKey: 'vfModuleId'
};
expect(service.getTitle()).toBe("Upgrade Module")
});
- function findControlByName(controls, controlName) {
+ function findControlByName(controls: FormControlModel[], controlName: string) : FormControlModel {
return controls.find((control) => {
return control.controlName === controlName;
});
}
- function getControlByNameAndCheckValue(controlName, expectedValue ) {
+ function getControlByNameAndCheckValue(controlName: string, expectedValue: any, shouldControllerExist: boolean) {
const controls = service.getControls('serviceId', 'vnfStoreKey', 'vfModuleId', true);
const control = findControlByName(controls, controlName);
- expect(control).toBeDefined();
- expect(control.value).toEqual(expectedValue);
+ if(shouldControllerExist){
+ expect(control).toBeDefined();
+ expect(control.value).toEqual(expectedValue);
+ }
+ else{
+ expect(control).toBeUndefined();
+ }
}
- test('get controls should return retainAssignments control with true value', ()=> {
- getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_ASSIGNMENTS, true);
+ test('get controls should return retainAssignments control with false', ()=> {
+ getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_ASSIGNMENTS, false, true);
});
- test('get controls should return retainVolumeGroup control with true value', ()=> {
- getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_VOLUME_GROUPS, true);
+ test('get controls should return retainVolumeGroup control with false', ()=> {
+ getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_VOLUME_GROUPS, false, true);
+ });
+
+ [true, false].forEach(notExistsOnModel => {
+ test(`retainVolumeGroup control is shown when vfModule not from model (notExistsOnModel=${notExistsOnModel})`, () => {
+ let stateCopy = _.cloneDeep(store.getState());
+ stateCopy.service.serviceHierarchy['serviceId'].vfModules['vfModuleName'].volumeGroupAllowed = false;
+ jest.spyOn(store, 'getState').mockReturnValue(stateCopy);
+
+ jest.spyOn(_sharedTreeService, 'isVfModuleCustomizationIdNotExistsOnModel').mockReturnValue(notExistsOnModel);
+
+ getControlByNameAndCheckValue(UpgradeFormControlNames.RETAIN_VOLUME_GROUPS, false, notExistsOnModel);
+ });
});
test('get controls should contain SUPPLEMENTARY_FILE controller', ()=> {
};
form.controls = {
supplementaryFile_hidden_content : {
- value: '{"c": "c", "d": 1}'
+ value: '[{"name": "c", "value": "c"}, {"name": "d", "value": "1"}]'
},
supplementaryFile_hidden : {
value: {
let expectedMergePayload = {
a: "value",
b: "another",
- supplementaryFileContent: {c: "c", d: 1},
+ supplementaryFileContent: [{"name": "c", "value": "c"}, {"name": "d", "value": "1"}],
supplementaryFileName: "name"
};
});
- test( 'get controls should return usePreload with false value', () => {
- getControlByNameAndCheckValue(SDN_C_PRE_LOAD, false);
+ test( 'get controls should return usePreload with true value', () => {
+ getControlByNameAndCheckValue(SDN_C_PRE_LOAD, true, true);
});
});