[SDC-29] Amdocs OnBoard 1707 initial commit.

Change-Id: Ie4d12a3f574008b792899b368a0902a8b46b5370
Signed-off-by: AviZi <avi.ziv@amdocs.com>
diff --git a/openecomp-ui/test-utils/factories/flows/FlowsFactories.js b/openecomp-ui/test-utils/factories/flows/FlowsFactories.js
new file mode 100644
index 0000000..f487ee7
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/flows/FlowsFactories.js
@@ -0,0 +1,118 @@
+/*!
+ * 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 SequenceDiagramFactory from './SequenceDiagramFactory.js';
+import ParticipantFactory from './ParticipantFactory.js';
+import UUID from 'uuid-js';
+
+const serviceIDByArtifactType = {
+	NETWORK_CALL_FLOW: '338d75f0-aec8-4eb4-89c9-8733fcd9bf3b',
+	WORKFLOW: '338d75f0-aec8-4eb4-89c9-8733fcd9bf3b',
+	PUPPET: '0280b577-2c7b-426e-b7a2-f0dc16508c37'
+};
+
+const defaultServiceId = '338d75f0-aec8-4eb4-89c9-8733fcd9bf3b';
+
+Factory.define('FlowBaseFactory')
+	.attrs({
+		artifactName: 'zizizi',
+		artifactType: 'WORKFLOW',
+		description: 'aslkjdfl asfdasdf',
+	});
+
+Factory.define('FlowBaseWithServiceIdFactory')
+	.extend('FlowBaseFactory')
+	.attr(
+		'serviceID', ['artifactType'], artifactType => serviceIDByArtifactType[artifactType] || defaultServiceId
+	);
+
+Factory.define('FlowBaseWithUniqueIdFactory')
+	.extend('FlowBaseFactory')
+	.attr('uniqueId', ['artifactType', 'artifactName'], (artifactType, artifactName) => `${serviceIDByArtifactType[artifactType] || defaultServiceId}.${artifactName}`);
+
+Factory.define('FlowBaseFetchAndDeleteFactory')
+	.extend('FlowBaseWithServiceIdFactory')
+	.extend('FlowBaseWithUniqueIdFactory')
+	.attrs({
+		participants: []
+	});
+
+Factory.define('FlowBaseWithEsIdFactory')
+	.extend('FlowBaseWithUniqueIdFactory')
+	.attr('esId', ['uniqueId'], uniqueId => uniqueId);
+
+export const FlowBasicFactory = new Factory()
+	.extend('FlowBaseFactory').attrs({uniqueId: () => UUID.create(4)});
+
+export const FlowCreateFactory = new Factory()
+	.extend('FlowBaseWithServiceIdFactory');
+
+export const FlowPostRequestFactory = new Factory()
+	.extend('FlowBaseFactory')
+	.attrs({
+		artifactGroupType: 'INFORMATIONAL',
+		payloadData: 'eyJWRVJTSU9OIjp7Im1ham9yIjoxLCJtaW5vciI6MH0sImRlc2NyaXB0aW9uIjoiYXNsa2pkZmwgYXNmZGFzZGYifQ=='
+	})
+	.attr('artifactLabel', ['artifactName'], name => name);
+
+Factory.define('FlowPostResponeAndUpdateBaseFactory')
+	.extend('FlowBaseFactory')
+	.extend('FlowBaseWithUniqueIdFactory')
+	.extend('FlowBaseWithEsIdFactory')
+	.attrs({
+		artifactGroupType: 'INFORMATIONAL',
+		artifactUUID: () => UUID.create(4),
+		artifactVersion: '1',
+		creationDate: 1470144601623,
+		lastUpdateDate: 1470144601623,
+		mandatory: false,
+		timeout: 0,
+		artifactChecksum: 'NjBmYjc4NGM5MWIwNmNkMDhmMThhMDAwYmQxYjBiZTU='
+	})
+	.attr('artifactLabel', ['artifactName'], name => name)
+	.attr('artifactDisplayName', ['artifactName'], name => name);
+
+export const FlowPostResponseFactory = new Factory()
+	.extend('FlowPostResponeAndUpdateBaseFactory')
+	.attrs({
+		attUidLastUpdater: 'cs0008',
+		payloadUpdateDate: 1470144602131,
+		serviceApi: false,
+		updaterFullName: 'Carlos Santana',
+		artifactCreator: 'cs0008'
+	});
+
+export const FlowUpdateRequestFactory = new Factory()
+	.extend('FlowPostResponeAndUpdateBaseFactory')
+	.extend('FlowBaseFetchAndDeleteFactory')
+	.extend('FlowBaseWithEsIdFactory')
+	.attrs({
+		heatParameters: [],
+		participants: ParticipantFactory.buildList(10)
+	})
+	.attr('sequenceDiagramModel', ['participants'], participants => SequenceDiagramFactory.build({}, {participants}));
+
+export const FlowFetchRequestFactory = new Factory()
+	.extend('FlowBaseFetchAndDeleteFactory');
+
+export const FlowDeleteRequestFactory = new Factory()
+	.extend('FlowBaseFetchAndDeleteFactory');
+
+export const FlowFetchResponseFactory = new Factory()
+	.extend('FlowBaseFactory')
+	.attrs({
+		base64Contents: 'eyJWRVJTSU9OIjp7Im1ham9yIjoxLCJtaW5vciI6MH0sImRlc2NyaXB0aW9uIjoiYXNsa2pkZmwgYXNmZGFzZGYifQ=='
+	});
diff --git a/openecomp-ui/test-utils/factories/flows/ParticipantFactory.js b/openecomp-ui/test-utils/factories/flows/ParticipantFactory.js
new file mode 100644
index 0000000..2e74649
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/flows/ParticipantFactory.js
@@ -0,0 +1,20 @@
+/*!
+ * 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()
+	.attr('name', 'participantName')
+	.sequence('id', index => index.toString());
diff --git a/openecomp-ui/test-utils/factories/flows/SequenceDiagramFactory.js b/openecomp-ui/test-utils/factories/flows/SequenceDiagramFactory.js
new file mode 100644
index 0000000..7662f5b
--- /dev/null
+++ b/openecomp-ui/test-utils/factories/flows/SequenceDiagramFactory.js
@@ -0,0 +1,50 @@
+/*!
+ * 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 UUID from 'uuid-js';
+
+Factory.define('LifeLineFactory')
+	.attr('name', 'participantName')
+	.sequence('id', index => index.toString())
+	.sequence('index')
+	.sequence('x', index => 175 + (index - 1) * 400);
+
+Factory.define('StepMessageFactory')
+	.attrs({
+		name: '[Unnamed Message]',
+		type: 'request',
+		from: '1',
+		to: '2',
+	})
+	.attr('id', () => UUID.create(4))
+	.sequence('index');
+
+Factory.define('StepFactory')
+	.attr('message', () => Factory.build('StepMessageFactory'));
+
+export default new Factory()
+	.option('participants', [])
+	.option('stepsCount', 2)
+	.attr('diagram', ['participants', 'stepsCount'], (participants, stepsCount) => ({
+		metadata: {
+			'id': '338d75f0-aec8-4eb4-89c9-8733fcd9bf3b.zizizi',
+			'name': 'zizizi',
+			'ref': 'BLANK'
+		},
+		lifelines: participants.map(participant => Factory.build('LifeLineFactory', participant)),
+		steps: Factory.buildList('StepFactory', stepsCount)
+	})
+);