blob: cb1a9c34b21fdca89df53cc6fd7e2c4ab7405768 [file] [log] [blame]
/*!
* Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
*
* Licensed 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.
*/
import {mapStateToProps} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverview.js';
import {overviewEditorHeaders, selectedButton} from 'sdc-app/onboarding/licenseModel/overview/LicenseModelOverviewConstants.js';
import {LicenseModelOverviewFactory} from 'test-utils/factories/licenseModel/LicenseModelFactories.js';
import { EntitlementPoolStoreFactory as EntitlementPool, EntitlementPoolDataListFactory } from 'test-utils/factories/licenseModel/EntitlementPoolFactories.js';
import { FeatureGroupStoreFactory as FeatureGroup, FeatureGroupDataListFactory} from 'test-utils/factories/licenseModel/FeatureGroupFactories.js';
import {LicenseAgreementStoreFactory as LicenseAgreement, LicenseAgreementDataListFactory} from 'test-utils/factories/licenseModel/LicenseAgreementFactories.js';
import { LicenseKeyGroupStoreFactory as LicenseKeyGroup, LicenseKeyGroupDataListFactory} from 'test-utils/factories/licenseModel/LicenseKeyGroupFactories.js';
describe('License Model Overview: ', function () {
it('should mapper exist', () => {
expect(mapStateToProps).toBeTruthy();
});
const VLM1 = LicenseModelOverviewFactory.build({
featureGroup: {
featureGroupsList: [],
},
entitlementPool: {
entitlementPoolsList: []
},
licenseKeyGroup: {
licenseKeyGroupsList: []
}
});
it('should mapper return vlm overview basic data', () => {
const state = {
licenseModel: VLM1
};
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(false);
expect(props.modalHeader).toEqual(undefined);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.orphanDataList).toEqual([]);
expect(props.selectedTab).toEqual(selectedButton.VLM_LIST_VIEW);
});
it('should mapper return overview data for show LA modal', () => {
const VLM1 = LicenseModelOverviewFactory.build({
licenseAgreement: {
licenseAgreementEditor: {
data: LicenseAgreement.build()
}
},
featureGroup: {
featureGroupsList: [],
},
entitlementPool: {
entitlementPoolsList: []
},
licenseKeyGroup: {
licenseKeyGroupsList: []
}
});
var state = {
licenseModel: VLM1
};
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(true);
expect(props.modalHeader).toEqual(overviewEditorHeaders.LICENSE_AGREEMENT);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.selectedTab).toEqual(selectedButton.VLM_LIST_VIEW);
});
it('should mapper return overview data for show FG modal', () => {
const VLM1 = LicenseModelOverviewFactory.build({
featureGroup: {
featureGroupsList: [],
featureGroupEditor: {
data: FeatureGroup.build()
}
},
entitlementPool: {
entitlementPoolsList: []
},
licenseKeyGroup: {
licenseKeyGroupsList: []
},
licenseModelOverview: {
selectedTab: selectedButton.NOT_IN_USE
}
});
var state = {
licenseModel: VLM1
};
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(true);
expect(props.modalHeader).toEqual(overviewEditorHeaders.FEATURE_GROUP);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.selectedTab).toEqual(selectedButton.NOT_IN_USE);
});
it('should mapper return overview data for show EP modal', () => {
const VLM1 = LicenseModelOverviewFactory.build( {
featureGroup: {
featureGroupsList: [],
},
entitlementPool: {
entitlementPoolsList: [],
entitlementPoolEditor: {
data: EntitlementPool.build()
}
},
licenseKeyGroup: {
licenseKeyGroupsList: []
}
});
var state = {
licenseModel: VLM1
};
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(true);
expect(props.modalHeader).toEqual(overviewEditorHeaders.ENTITLEMENT_POOL);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.selectedTab).toEqual(selectedButton.VLM_LIST_VIEW);
});
it('should mapper return overview data for show LKG modal', () => {
const VLM1 = LicenseModelOverviewFactory.build({
licenseKeyGroup: {
licenseKeyGroupsList: [],
licenseKeyGroupsEditor: {
data: LicenseKeyGroup.build()
}
},
entitlementPool: {
entitlementPoolsList: []
},
featureGroup: {
featureGroupsList: []
},
licenseModelOverview: {
selectedTab: selectedButton.NOT_IN_USE
}
});
var state = {
licenseModel: VLM1
};
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(true);
expect(props.modalHeader).toEqual(overviewEditorHeaders.LICENSE_KEY_GROUP);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.selectedTab).toEqual(selectedButton.NOT_IN_USE);
});
it('should mapper return overview data for Full-hierarchy list view', () => {
let EP1 = EntitlementPool.build();
let LKG1 = LicenseKeyGroup.build();
let FG1 = FeatureGroup.build({
entitlementPoolsIds: [EP1.id],
licenseKeyGroupsIds: [LKG1.id]
});
EP1.referencingFeatureGroups = [FG1.id];
LKG1.referencingFeatureGroups = [FG1.id];
let LA1 = LicenseAgreement.build({
featureGroupsIds: [FG1.id]
});
FG1.referencingLicenseAgreements = LA1.id;
let LA2 = LicenseAgreement.build();
const VLM1 = LicenseModelOverviewFactory.build({
licenseAgreement: {
licenseAgreementList: [LA1, LA2]
},
featureGroup: {
featureGroupsList: [FG1]
},
entitlementPool: {
entitlementPoolsList: [EP1]
},
licenseKeyGroup: {
licenseKeyGroupsList: [LKG1]
},
});
const state = {
licenseModel: VLM1
};
const expectedLicensingDataList = [
LicenseAgreementDataListFactory.build({
...LA1,
children: [
FeatureGroupDataListFactory.build({
...FG1,
children: [
EntitlementPoolDataListFactory.build(EP1),
LicenseKeyGroupDataListFactory.build(LKG1)
]
})
]
}),
LicenseAgreementDataListFactory.build(LA2)
];
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(false);
expect(props.modalHeader).toEqual(undefined);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual(expectedLicensingDataList);
expect(props.selectedTab).toEqual(selectedButton.VLM_LIST_VIEW);
});
it('should mapper return overview data for list view with 2 levels', () => {
let EP1 = EntitlementPool.build();
let LKG1 = LicenseKeyGroup.build();
let FG1 = FeatureGroup.build();
let LA1 = LicenseAgreement.build({
featureGroupsIds: [FG1.id]
});
let LA2 = LicenseAgreement.build();
FG1.referencingLicenseAgreements = [LA1.id];
const VLM1 = LicenseModelOverviewFactory.build({
licenseAgreement: {
licenseAgreementList: [LA1, LA2]
},
featureGroup: {
featureGroupsList: [FG1]
},
entitlementPool: {
entitlementPoolsList: [EP1]
},
licenseKeyGroup: {
licenseKeyGroupsList: [LKG1]
},
});
const state = {
licenseModel: VLM1
};
const expectedLicensingDataList = [
LicenseAgreementDataListFactory.build({
...LA1,
children: [
FeatureGroupDataListFactory.build(FG1)
]
}),
LicenseAgreementDataListFactory.build(LA2)
];
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(false);
expect(props.modalHeader).toEqual(undefined);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual(expectedLicensingDataList);
expect(props.selectedTab).toEqual(selectedButton.VLM_LIST_VIEW);
});
it('should mapper return overview data for Full NOT-IN-USE list view', () => {
let EP1 = EntitlementPool.build();
let LKG1 = LicenseKeyGroup.build();
let FG1 = FeatureGroup.build();
const VLM1 = LicenseModelOverviewFactory.build({
licenseAgreement: { licenseAgreementList: [] },
featureGroup: {
featureGroupsList: [FG1]
},
entitlementPool: {
entitlementPoolsList: [EP1]
},
licenseKeyGroup: {
licenseKeyGroupsList: [LKG1]
},
licenseModelOverview: {
selectedTab: selectedButton.NOT_IN_USE
}
});
const state = {
licenseModel: VLM1
};
const expectedLicensingDataList = [
FeatureGroupDataListFactory.build(FG1),
EntitlementPoolDataListFactory.build(EP1),
LicenseKeyGroupDataListFactory.build(LKG1)
];
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(false);
expect(props.modalHeader).toEqual(undefined);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.orphanDataList).toEqual(expectedLicensingDataList);
expect(props.selectedTab).toEqual(selectedButton.NOT_IN_USE);
});
it('should mapper return overview data for NOT-IN-USE list view (FG with children)', () => {
let EP1 = EntitlementPool.build();
let LKG1 = LicenseKeyGroup.build();
let FG1 = FeatureGroup.build({
entitlementPoolsIds: [EP1.id],
licenseKeyGroupsIds: [LKG1.id]
});
EP1.referencingFeatureGroups = [FG1.id];
LKG1.referencingFeatureGroups = [FG1.id];
const VLM1 = LicenseModelOverviewFactory.build({
licenseAgreement: { licenseAgreementList: [] },
featureGroup: {
featureGroupsList: [FG1]
},
entitlementPool: {
entitlementPoolsList: [EP1]
},
licenseKeyGroup: {
licenseKeyGroupsList: [LKG1]
},
licenseModelOverview: {
selectedTab: selectedButton.NOT_IN_USE
}
});
const state = {
licenseModel: VLM1
};
const expectedLicensingDataList = [
FeatureGroupDataListFactory.build({
...FG1,
children: [
EntitlementPoolDataListFactory.build(EP1),
LicenseKeyGroupDataListFactory.build(LKG1)]
})
];
var props = mapStateToProps(state);
expect(props.isReadOnlyMode).toEqual(true);
expect(props.isDisplayModal).toEqual(false);
expect(props.modalHeader).toEqual(undefined);
expect(props.licenseModelId).toEqual(VLM1.licenseModelEditor.data.id);
expect(props.licensingDataList).toEqual([]);
expect(props.orphanDataList).toEqual(expectedLicensingDataList);
expect(props.selectedTab).toEqual(selectedButton.NOT_IN_USE);
});
});