summaryrefslogtreecommitdiffstats
path: root/openecomp-ui/test-utils/factories/softwareProduct
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-ui/test-utils/factories/softwareProduct')
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductAttachmentsFactories.js106
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js35
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js34
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js32
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js260
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsStorageFactory.js34
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductCreationFactories.js33
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js34
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js63
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductFactory.js47
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductNetworkFactory.js25
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductProcessFactories.js73
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductQSchemaFactory.js131
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/VSPCategoriesFactory.js40
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js30
-rw-r--r--openecomp-ui/test-utils/factories/softwareProduct/VspQdataFactory.js55
16 files changed, 1032 insertions, 0 deletions
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductAttachmentsFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductAttachmentsFactories.js
new file mode 100644
index 0000000000..eb010da790
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductAttachmentsFactories.js
@@ -0,0 +1,106 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import randomstring from 'randomstring';
+
+export const VSPAttachmentsErrorFactory = new Factory()
+ .attrs({
+ level: 'WARNING'
+ })
+ .sequence('message', index => `error no. ${index}`);
+
+export const VSPHeatFactory = new Factory()
+ .attrs({
+ fileName: () => `${randomstring.generate()}.yaml`,
+ env: {
+ fileName: () => `${randomstring.generate()}.env`
+ },
+ errors: Factory.buildList(VSPAttachmentsErrorFactory)
+ });
+
+export const VSPAttachmentTreeNodeFactory = new Factory()
+ .attrs({
+ name: 'HEAT',
+ type: 'heat'
+ });
+
+export const VSPAttachmentTreeNodeWithChildrenFactory = new Factory()
+ .extend(VSPAttachmentTreeNodeFactory)
+ .attrs({
+ expanded: true,
+ children: []
+ });
+
+export const VSPAttachmentDetailedError = new Factory()
+ .attrs({
+ level: 'WARNING',
+ errorMessage: 'Resource is not defined as output and thus cannot be Shared. resource id - network_4',
+ name: () => `${randomstring.generate()}.yaml`,
+ hasParent: false,
+ parentName: 'HEAT',
+ type: 'heat'
+ });
+
+export const HeatSetupModuleBase = new Factory()
+ .option('name', 0)
+ .attr('name', ['name'], (name) => {
+ return name ? randomstring.generate(5) : '';
+ })
+ .attrs({
+ isBase: false,
+ yaml: () => {return 'yaml_' + randomstring.generate(5) + '.yaml';},
+ env: () => {return 'env_' + randomstring.generate(5) + '.env';},
+ vol: () => {return 'vol_' + randomstring.generate(5) + '.vol';},
+ volEnv: () => {return 'volEnv_' + randomstring.generate(5) + '.env';}
+ });
+
+export const heatSetupManifest = new Factory()
+ .attrs({
+ modules: [
+ {
+ name: 'BASE_sdjflsjldfsd',
+ isBase: true,
+ yaml: 'yaml_filename9.yaml',
+ env: 'env_filename8.env',
+ vol: 'vol_filename5.vol',
+ volEnv: 'vol_env_filename1.8.vol',
+
+ },
+ {
+ name: 'MODULE_asdkjfhkajsf',
+ isBase: false,
+ yaml: 'yaml_filename.yaml',
+ env: 'env_filename.env',
+ vol: 'vol_filename.vol',
+ volEnv: 'vol_env_filename.vol',
+
+ }
+ ],
+ unassigned: [
+ 'hot-nimbus-oam-volumes_v1.0.env',
+ 'hot-nimbus-oam_v1.0.env',
+ 'hot-nimbus-oam-volumes_v1.1.env',
+ 'hot-nimbus-oam-volumes_v2.0.env',
+ 'vol_filename2.vol',
+ 'hot-nimbus-oam-volumes_v4.0.env',
+ 'hot-nimbus-oam-volumes_v5.0.env',
+ 'hot-nimbus-oam_v6.0.env',
+ 'hot-nimbus-oam-volumes_v7.0.env',
+ 'vol_filename1.vol'
+ ],
+ artifacts: ['hot-nimbus-oam_v3.0.env'],
+ nested: ['nested-ppd_v1.1.yaml', 'nested-ppd_v1.0.yaml', 'nested-ppd_v8.0.yaml']
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js
new file mode 100644
index 0000000000..58e5db7a7d
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsComputeFactory.js
@@ -0,0 +1,35 @@
+/*!
+ * 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 {Factory} from 'rosie';
+
+export default new Factory()
+ .attrs({
+ 'vmSizing':{
+ 'numOfCPUs': 3,
+ 'fileSystemSizeGB': 888
+ },
+ 'numOfVMs':{
+ 'minimum':2
+ }
+ });
+
+
+export const VSPComponentsComputeDataMapFactory = new Factory()
+ .attrs({
+ 'vmSizing/numOfCPUs' : 3,
+ 'vmSizing/fileSystemSizeGB': 888,
+ 'numOfVMs/minimum':2
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js
new file mode 100644
index 0000000000..a98249bf14
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsFactories.js
@@ -0,0 +1,34 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import randomstring from 'randomstring';
+
+export const VSPComponentsFactory = new Factory()
+ .option('componentName', 'comp')
+ .option('componentType', 'server')
+ .attr('displayName', ['componentName', 'componentType'], (componentName, componentType) => `${componentName}_${componentType}`)
+ .attr('name', ['displayName'], displayName => `com.ecomp.d2.resource.vfc.nodes.heat.${displayName}`)
+ .attr('id', () => randomstring.generate())
+ .attr('description', 'description');
+
+export const VSPComponentsGeneralFactory = new Factory()
+ .attrs({
+ hypervisor: {
+ containerFeatureDescription: 'aaaUpdated',
+ drivers: 'bbbUpdated',
+ hypervisor: 'cccUpdated'
+ }
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
new file mode 100644
index 0000000000..6bfa091fd3
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsMonitoringFactories.js
@@ -0,0 +1,32 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import randomstring from 'randomstring';
+
+export const VSPComponentsMonitoringRestFactory = new Factory()
+ .option('snmpTrapFlag', false)
+ .option('snmpPollFlag', false)
+ .attr('snmpTrap', ['snmpTrapFlag'], snmpTrapFlag => snmpTrapFlag ? randomstring.generate() : undefined)
+ .attr('snmpPoll', ['snmpPollFlag'], snmpPollFlag => snmpPollFlag ? randomstring.generate() : undefined);
+
+export const VSPComponentsMonitoringViewFactory = new Factory()
+ .extend(VSPComponentsMonitoringRestFactory)
+ .after(monitoring => {
+ monitoring['trapFilename'] = monitoring['snmpTrap'];
+ monitoring['pollFilename'] = monitoring['snmpPoll'];
+ delete monitoring['snmpTrap'];
+ delete monitoring['snmpPoll'];
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js
new file mode 100644
index 0000000000..f08d282131
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsNetworkFactories.js
@@ -0,0 +1,260 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import randomstring from 'randomstring';
+import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+
+export const VSPComponentsNicFactory = new Factory()
+ .attrs({
+ name: () => randomstring.generate(),
+ description: () => randomstring.generate(),
+ networkId: 'network',
+ })
+ .attr('networkName', ['name'], name => `n${name}`);
+
+export const VSPComponentsNicWithIdFactory = new Factory()
+ .extend(VSPComponentsNicFactory)
+ .extend(IdMixin);
+
+export const VSPComponentsNetworkFactory = new Factory()
+ .attrs({
+ nicEditor: {},
+ nicList: []
+ });
+
+export const VSPComponentsNetworkQDataFactory = new Factory()
+ .attrs({
+ protocols: {
+ protocolWithHighestTrafficProfile: 'UDP',
+ protocols: ['UDP']
+ },
+ ipConfiguration: {
+ ipv4Required: true
+ }
+ });
+
+export const VSPComponentsNetworkDataMapFactory = new Factory()
+ .attrs({
+ 'protocols/protocolWithHighestTrafficProfile' : 'UDP',
+ 'protocols/protocols' : ['UDP'],
+ 'ipConfiguration/ipv4Required' : true
+ });
+
+export const VSPComponentsNicFactoryGenericFieldInfo = new Factory()
+ .attrs({
+ 'description' : {
+ isValid: true,
+ errorText: '',
+ validations: []
+ },
+ 'name' : {
+ isValid: true,
+ errorText: '',
+ validations: []
+ }
+ });
+
+export const VSPComponentsNicFactoryQGenericFieldInfo = new Factory()
+ .attrs({
+ 'protocols/protocols': {
+ isValid: true,
+ errorText: '',
+ 'enum': [
+ {
+ 'enum': 'TCP',
+ title: 'TCP'
+ },
+ {
+ 'enum': 'UDP',
+ title: 'UDP'
+ },
+ {
+ 'enum': 'SCTP',
+ title: 'SCTP'
+ },
+ {
+ 'enum': 'IPsec',
+ title: 'IPsec'
+ }
+ ],
+ items: {
+ type: 'string',
+ 'enum': [
+ '',
+ 'TCP',
+ 'UDP',
+ 'SCTP',
+ 'IPsec'
+ ],
+ 'default': ''
+ },
+ minItems: 1,
+ validations: []
+ },
+ 'protocols/protocolWithHighestTrafficProfile': {
+ isValid: true,
+ errorText: '',
+ validations: []
+ },
+ 'ipConfiguration/ipv4Required': {
+ isValid: true,
+ errorText: '',
+ type: 'boolean',
+ 'default': true,
+ validations: []
+ },
+ 'ipConfiguration/ipv6Required': {
+ isValid: true,
+ errorText: '',
+ type: 'boolean',
+ 'default': false,
+ validations: []
+ },
+ 'network/networkDescription': {
+ isValid: true,
+ errorText: '',
+ type: 'string',
+ validations: [
+ {
+ type: 'pattern',
+ data: '[A-Za-z]+'
+ },
+ {
+ type: 'maxLength',
+ data: 300
+ }
+ ]
+ },
+ 'sizing/describeQualityOfService': {
+ isValid: true,
+ errorText: '',
+ type: 'string',
+ validations: []
+ },
+ 'sizing/inflowTrafficPerSecond/packets/peak': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/inflowTrafficPerSecond/packets/avg': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/inflowTrafficPerSecond/bytes/peak': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/inflowTrafficPerSecond/bytes/avg': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/outflowTrafficPerSecond/packets/peak': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/outflowTrafficPerSecond/packets/avg': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/outflowTrafficPerSecond/bytes/peak': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/outflowTrafficPerSecond/bytes/avg': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/flowLength/packets/peak': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/flowLength/packets/avg': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/flowLength/bytes/peak': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/flowLength/bytes/avg': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/acceptableJitter/mean': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/acceptableJitter/max': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/acceptableJitter/variable': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: []
+ },
+ 'sizing/acceptablePacketLoss': {
+ isValid: true,
+ errorText: '',
+ type: 'number',
+ validations: [
+ {
+ type: 'minimum',
+ data: 0
+ },
+ {
+ type: 'maximum',
+ data: 100
+ }
+ ]
+ }
+ });
+
+export const VSPComponentsVersionControllerFactory = new Factory()
+ .attrs({
+ version: { id: '1.1', label: '1.1'},
+ viewableVersions: [{id: '1.0', label: '1.0'}, {id: '1.1', label: '1.1'}, {id: '1.2', label: '1.2'}],
+ status: 'locked',
+ isCheckedOut: true
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsStorageFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsStorageFactory.js
new file mode 100644
index 0000000000..2691da2288
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductComponentsStorageFactory.js
@@ -0,0 +1,34 @@
+/*!
+ * 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 {Factory} from 'rosie';
+
+export default new Factory()
+ .attrs({
+ 'backup':{
+ 'backupType':'OnSite',
+ 'backupSolution':76333
+ },
+ 'snapshotBackup':{
+ 'snapshotFrequency':2
+ }
+ });
+
+export const VSPComponentsStorageDataMapFactory = new Factory()
+ .attrs({
+ 'backup/backupType' : 'OnSite',
+ 'backup/backupSolution' : 76333,
+ 'snapshotBackup/snapshotFrequency' : 2
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductCreationFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductCreationFactories.js
new file mode 100644
index 0000000000..d8ae58d105
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductCreationFactories.js
@@ -0,0 +1,33 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import {CategoryWithSubFactory} from './VSPCategoriesFactory';
+import {FinalizedLicenseModelFactory} from '../licenseModel/LicenseModelFactories';
+import randomstring from 'randomstring';
+
+export const SoftwareProductCreationFactory = new Factory()
+ .attrs({
+ name: () => randomstring.generate(),
+ description: () => randomstring.generate(),
+ vendorId: () => FinalizedLicenseModelFactory.build().id,
+ subCategory: () => CategoryWithSubFactory.build({}, {quantity: 3}).subcategories[0],
+ });
+
+export const SoftwareProductCreationFactoryWithSelectedVendor = new Factory()
+ .extend(SoftwareProductCreationFactory)
+ .attrs({
+ selectedVendorId: FinalizedLicenseModelFactory.build().id,
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js
new file mode 100644
index 0000000000..6521c58a35
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductDependenciesFactories.js
@@ -0,0 +1,34 @@
+/*!
+ * 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 { Factory } from 'rosie';
+import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+import randomstring from 'randomstring';
+import {relationTypes} from 'sdc-app/onboarding/softwareProduct/dependencies/SoftwareProductDependenciesConstants.js';
+
+const SoftwareProductDependenciesBaseFactory = new Factory()
+ .attrs({ sourceId: () => randomstring.generate(),
+ targetId: () => randomstring.generate(),
+ relationType: relationTypes.DEPENDS_ON
+ });
+
+export const SoftwareProductDependenciesResponseFactory = new Factory()
+ .extend(SoftwareProductDependenciesBaseFactory);
+
+export const SoftwareProductDependenciesStoreFactory = new Factory()
+.extend(SoftwareProductDependenciesBaseFactory)
+.extend(IdMixin)
+.attrs({ hasCycle: false });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js
new file mode 100644
index 0000000000..5c5936155e
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductEditorFactories.js
@@ -0,0 +1,63 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+import randomstring from 'randomstring';
+import VersionControllerUtilsFactory from 'test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js';
+
+Factory.define('VSPBaseFactory')
+ .attrs(
+ {
+ name: 'VSP2',
+ description: 'sdsd',
+ category: 'resourceNewCategory.application l4+',
+ subCategory: 'resourceNewCategory.application l4+.media servers',
+ vendorName: 'V1 ',
+ vendorId: () => randomstring.generate(33),
+ licensingVersion: {id: '1', label: '1'},
+ licensingData: {},
+ icon: 'icon',
+ version: {id: '1', label: '1'}
+ }
+);
+
+Factory.define('LicensingDataMixin')
+ .attrs({
+ licensingData: {
+ licenseAgreement: () => randomstring.generate(33),
+ featureGroups: [
+ () => randomstring.generate(33)
+ ]
+ }
+ });
+
+export const VSPEditorFactory = new Factory()
+ .extend('VSPBaseFactory')
+ .extend(VersionControllerUtilsFactory)
+ .extend(IdMixin);
+
+export const VSPEditorPostFactory = new Factory()
+ .extend('VSPBaseFactory');
+
+export const VSPEditorFactoryWithLicensingData = new Factory()
+ .extend('VSPBaseFactory')
+ .extend(VersionControllerUtilsFactory)
+ .extend('LicensingDataMixin')
+ .extend(IdMixin);
+
+export const VSPEditorPostFactoryWithLicensingData = new Factory()
+ .extend('VSPBaseFactory')
+ .extend('LicensingDataMixin');
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductFactory.js
new file mode 100644
index 0000000000..86a8276beb
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductFactory.js
@@ -0,0 +1,47 @@
+/*!
+ * 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 {Factory} from 'rosie';
+
+export const SoftwareProductFactory = new Factory()
+ .attrs({
+ softwareProductAttachments: {},
+ softwareProductCreation: {},
+ softwareProductEditor: {},
+ softwareProductProcesses: {
+ processesList: [],
+ processesEditor: {},
+ processToDelete: false
+ },
+ softwareProductNetworks: {
+ networksList: []
+ },
+ softwareProductComponents: {
+ componentsList: [],
+ componentEditor: {},
+ componentProcesses: {
+ processesList: [],
+ processesEditor: {},
+ processToDelete: false
+ },
+ network: {
+ nicList: [],
+ nicEditor: {}
+ }
+ },
+ monitoring: {},
+ softwareProductCategories: [],
+ softwareProductQuestionnaire: {}
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductNetworkFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductNetworkFactory.js
new file mode 100644
index 0000000000..08b4daa973
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductNetworkFactory.js
@@ -0,0 +1,25 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import IdMixin from 'test-utils/factories/mixins/IdMixin';
+import RandomNameMixin from 'test-utils/factories/mixins/RandomNameMixin';
+
+export default new Factory()
+ .extend(RandomNameMixin)
+ .extend(IdMixin)
+ .attrs({
+ dhcp: true
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductProcessFactories.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductProcessFactories.js
new file mode 100644
index 0000000000..26ac49dbe5
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductProcessFactories.js
@@ -0,0 +1,73 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import IdMixin from 'test-utils/factories/mixins/IdMixin.js';
+
+Factory.define('VSPProcessBaseFactory')
+ .attrs({
+ name: 'Pr1',
+ description: 'string',
+ type: ''
+ });
+
+Factory.define('VSPProcessBaseFactoryWithType')
+ .attrs({
+ name: 'Pr1',
+ description: 'string',
+ type: 'Other'
+ });
+
+
+Factory.define('VSPProcessBaseFactoryWithNullType')
+ .attrs({
+ name: 'Pr1',
+ description: 'string',
+ type: null
+ });
+
+Factory.define('FormDataMixin')
+ .option('artifactName', 'artifact')
+ .attr('formData', ['artifactName'], artifactName => ({name: artifactName}));
+
+
+export const VSPProcessPostFactory = new Factory()
+ .extend('VSPProcessBaseFactory');
+
+export const VSPProcessStoreFactory = new Factory()
+ .extend('VSPProcessBaseFactoryWithNullType')
+ .extend(IdMixin);
+
+
+export const VSPProcessPostFactoryWithType = new Factory()
+ .extend('VSPProcessBaseFactoryWithType');
+
+export const VSPProcessStoreFactoryWithType = new Factory()
+ .extend('VSPProcessBaseFactoryWithType')
+ .extend(IdMixin);
+
+
+export const VSPProcessPostWithFormDataFactory = new Factory()
+ .extend(VSPProcessPostFactoryWithType)
+ .extend('FormDataMixin');
+
+export const VSPProcessStoreWithFormDataFactory = new Factory()
+ .extend(VSPProcessStoreFactoryWithType)
+ .extend('FormDataMixin');
+
+
+export const VSPProcessStoreWithArtifactNameFactory = new Factory()
+ .extend(VSPProcessStoreFactoryWithType)
+ .attr('artifactName', 'artifact');
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductQSchemaFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductQSchemaFactory.js
new file mode 100644
index 0000000000..bb640cfd89
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/SoftwareProductQSchemaFactory.js
@@ -0,0 +1,131 @@
+/*!
+ * 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 {Factory} from 'rosie';
+
+const parsePropertiesForSchema = (obj) => {
+ let schemaProperties = {};
+
+ Object.keys(obj).forEach(prop => {
+ let type = typeof obj[prop];
+ if (type === undefined){throw new Error('Schema property cannot be undefined');}
+ if (type === 'object'){
+ if (Array.isArray(obj[prop])) {
+ schemaProperties[prop] = {type: 'array'};
+ } else if (Object.is(obj[prop], null)){
+ throw new Error('Schema property cannot be null');
+ } else {
+ schemaProperties[prop] = {properties: parsePropertiesForSchema(obj[prop]), type: 'object'};
+ }
+ } else {
+ schemaProperties[prop] = {type};
+ }
+ });
+
+ return schemaProperties;
+};
+
+export default new Factory()
+ .after(schema => {
+ const propertiesForSchema = parsePropertiesForSchema(schema);
+ for (let attribute in schema) {
+ delete schema[attribute];
+ }
+ schema.$schema = 'http://json-schema.org/draft-04/schema#';
+ schema.type = 'object';
+ schema.properties = propertiesForSchema;
+ });
+
+
+export const SchemaGenericFieldInfoFactory = new Factory()
+ .attrs({
+ 'general/affinityData': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'string',
+ 'enum': [{'enum': 'Affinity', 'title': 'Affinity'}, {
+ 'enum': 'Anti Affinity',
+ 'title': 'Anti Affinity'
+ }, {'enum': 'None', 'title': 'None'}],
+ 'default': '',
+ 'validations': []
+ },
+ 'general/availability/useAvailabilityZonesForHighAvailability': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'boolean',
+ 'default': false,
+ 'validations': []
+ },
+ 'general/regionsData/multiRegion': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'boolean',
+ 'default': false,
+ 'validations': []
+ },
+ 'general/regionsData/regions': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'enum': [{'enum': 'Alphareta', 'title': 'Alphareta'}, {
+ 'enum': 'Birmingham',
+ 'title': 'Birmingham'
+ }, {'enum': 'Dallas', 'title': 'Dallas'}, {
+ 'enum': 'Fairfield CA',
+ 'title': 'Fairfield CA'
+ }, {'enum': 'Hayward CA', 'title': 'Hayward CA'}, {'enum': 'Lisle', 'title': 'Lisle'}, {
+ 'enum': 'Mission',
+ 'title': 'Mission'
+ }, {'enum': 'San Diego', 'title': 'San Diego'}, {'enum': 'Secaucus', 'title': 'Secaucus'}],
+ 'items': {
+ 'type': 'string',
+ 'enum': ['', 'Alphareta', 'Birmingham', 'Dallas', 'Fairfield CA', 'Hayward CA', 'Lisle', 'Mission', 'San Diego', 'Secaucus'],
+ 'default': ''
+ },
+ 'validations': []
+ },
+ 'general/storageDataReplication/storageReplicationAcrossRegion': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'boolean',
+ 'default': false,
+ 'validations': []
+ },
+ 'general/storageDataReplication/storageReplicationSize': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'number',
+ 'exclusiveMaximum': true,
+ 'validations': [{'type': 'maximumExclusive', 'data': 100}]
+ },
+ 'general/storageDataReplication/storageReplicationFrequency': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'number',
+ 'validations': [{'type': 'minimum', 'data': 5}]
+ },
+ 'general/storageDataReplication/storageReplicationSource': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'string',
+ 'validations': [{'type': 'maxLength', 'data': 300}]
+ },
+ 'general/storageDataReplication/storageReplicationDestination': {
+ 'hasErrors': false,
+ 'errorText': '',
+ 'type': 'string',
+ 'validations': [{'type': 'maxLength', 'data': 300}]
+ }
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/VSPCategoriesFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/VSPCategoriesFactory.js
new file mode 100644
index 0000000000..eabd02df7b
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/VSPCategoriesFactory.js
@@ -0,0 +1,40 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import randomstring from 'randomstring';
+
+Factory.define('baseCategory')
+ .attrs({
+ name: () => randomstring.generate(),
+ normalizedName: () => randomstring.generate(),
+ uniqueId: () => randomstring.generate()
+ });
+
+export const CategoryFactory = new Factory()
+ .extend('baseCategory');
+
+export const CategoryWithSubFactory = new Factory()
+ .extend('baseCategory')
+ .option('quantity', 0)
+ .attr('subcategories', ['quantity'], (quantity) => {
+ var subs = [];
+ for (let i = 1; i <= quantity; i++) {
+ subs.push({
+ uniqueId: randomstring.generate()
+ });
+ }
+ return subs;
+ });
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js
new file mode 100644
index 0000000000..8c9640714d
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/VersionControllerUtilsFactory.js
@@ -0,0 +1,30 @@
+/*!
+ * 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 {Factory} from 'rosie';
+import {statusEnum} from 'nfvo-components/panel/versionController/VersionControllerConstants.js';
+
+export default new Factory()
+ .attrs({
+ version: { id: '1.2', label: '1.2'},
+ viewableVersions: [{id: '1.0', label: '1.0'}, {id: '1.1', label: '1.1'}, {id: '1.2', label: '1.2'}],
+ status: statusEnum.CHECK_OUT_STATUS,
+ lockingUser: 'current'
+ }).after(function(inst) {
+ if (inst.status !== statusEnum.CHECK_OUT_STATUS) {
+ delete inst.lockingUser;
+ }
+ });
+
diff --git a/openecomp-ui/test-utils/factories/softwareProduct/VspQdataFactory.js b/openecomp-ui/test-utils/factories/softwareProduct/VspQdataFactory.js
new file mode 100644
index 0000000000..66c08dac49
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/softwareProduct/VspQdataFactory.js
@@ -0,0 +1,55 @@
+/*!
+ * 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 {Factory} from 'rosie';
+
+export default new Factory()
+ .attrs({
+ 'general': {
+ 'regionsData': {
+ 'regions': '',
+ 'multiRegion': ''
+ },
+ 'storageDataReplication': {
+ 'storageReplicationAcrossRegion': '',
+ 'storageReplicationSize': '',
+ 'storageReplicationFrequency': '',
+ 'storageReplicationSource': '',
+ 'storageReplicationDestination': ''
+ },
+ 'availability': {
+ 'useAvailabilityZonesForHighAvailability': ''
+ },
+ 'affinityData': {
+ 'affinityGrouping': '',
+ 'antiAffinityGrouping': ''
+ }
+ }
+ });
+
+export const VspDataMapFactory = new Factory()
+ .attrs({
+ 'general/regionsData/regions': '',
+ 'general/regionsData/multiRegion': '',
+ 'general/storageDataReplication/storageReplicationAcrossRegion' : '',
+ 'general/storageDataReplication/storageReplicationSize' : '',
+ 'general/storageDataReplication/storageReplicationFrequency' : '',
+ 'general/storageDataReplication/storageReplicationSource' : '',
+ 'general/storageDataReplication/storageReplicationDestination' : '',
+ 'general/availability/useAvailabilityZonesForHighAvailability' : '',
+ 'general/affinityData/affinityGrouping' : '',
+ 'general/affinityData/antiAffinityGrouping' : ''
+ });
+