1 /* Copyright (c) 2019 AT&T Intellectual Property. #
\r
3 # Licensed under the Apache License, Version 2.0 (the "License"); #
\r
4 # you may not use this file except in compliance with the License. #
\r
5 # You may obtain a copy of the License at #
\r
7 # http://www.apache.org/licenses/LICENSE-2.0 #
\r
9 # Unless required by applicable law or agreed to in writing, software #
\r
10 # distributed under the License is distributed on an "AS IS" BASIS, #
\r
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
\r
12 # See the License for the specific language governing permissions and #
\r
13 # limitations under the License. #
\r
14 ##############################################################################*/
\r
17 import { DefinitionInstance } from "./definition-instance.class";
\r
18 import { element } from "@angular/core/src/render3/instructions";
\r
20 export class TestDefinition {
\r
23 public testName: String;
\r
24 public testDescription: String;
\r
25 public groupId: String;
\r
26 public processDefinitionKey: String;
\r
28 public bpmnInstances: DefinitionInstance[];
\r
30 public currentVersion; // int Array index of the bpmnInstances
\r
31 public currentVersionName;
\r
32 public currentInstance: DefinitionInstance;
\r
34 constructor(testDefinition: TestDefinition = null){
\r
36 this.setAll(testDefinition);
\r
44 this.testDescription = '';
\r
46 this.processDefinitionKey = '';
\r
47 this.bpmnInstances = [
\r
48 this.newInstance() as DefinitionInstance
\r
50 this.currentInstance = this.bpmnInstances[0];
\r
51 this.currentVersion = 0;
\r
57 testName: this.testName,
\r
58 testDescription: this.testDescription,
\r
59 processDefinitionKey: this.processDefinitionKey,
\r
60 bpmnInstances: this.bpmnInstances,
\r
61 currentVersion: this.currentVersion
\r
65 switchVersion(version: String = null){
\r
69 this.bpmnInstances.forEach((elem, val) => {
\r
70 if(elem['version'] == version){
\r
71 this.currentVersion = val;
\r
72 this.currentInstance = this.bpmnInstances[val];
\r
73 this.currentVersionName = this.currentInstance.version;
\r
77 //get latest version
\r
78 this.currentVersion = this.bpmnInstances.length - 1;
\r
79 this.currentInstance = this.bpmnInstances[this.currentVersion];
\r
80 this.currentVersionName = this.currentInstance.version;
\r
85 return this.currentVersion;
\r
92 this.testName = td.testName;
\r
93 this.testDescription = td.testDescription;
\r
94 this.groupId = td.groupId;
\r
95 this.processDefinitionKey = td.processDefinitionKey;
\r
96 this.setBpmnInstances(td.bpmnInstances);
\r
98 this.bpmnInstances.forEach((elem, val) => {
\r
99 if(!elem.dataTestHeads)
\r
100 this.bpmnInstances[val].dataTestHeads = [];
\r
108 setName(testName: String){
\r
109 this.testName = testName;
\r
112 setDescription(testDescription: String){
\r
113 this.testDescription = testDescription;
\r
116 setGroupId(groupId: String){
\r
117 this.groupId = groupId;
\r
120 setProcessDefinitionKey(processDefinitionKey: String){
\r
121 this.processDefinitionKey = processDefinitionKey;
\r
124 setBpmnInstances(instances: DefinitionInstance[] = []){
\r
125 // this.bpmnInstances = [];
\r
126 // for(let i = instances.length - 1; i >= 0; i--){
\r
127 // this.bpmnInstances.push(instances[i]);
\r
129 this.bpmnInstances = instances;
\r
132 setNewVersion(newVersion: number = null){
\r
133 if(newVersion == null){
\r
134 newVersion = this.bpmnInstances.length;
\r
136 if(this.setVersion(newVersion) == -1){
\r
137 this.setNewVersion(++newVersion);
\r
142 setVersion(version){
\r
144 this.bpmnInstances.forEach((elem, val) => {
\r
147 if(elem.version == version && this.currentVersion != val ){
\r
151 this.currentInstance.version = version;
\r
155 addBpmnInstance(instance = null){
\r
158 instance = this.newInstance();
\r
160 let alreadyIn = false;
\r
161 this.bpmnInstances.forEach((elem, val) => {
\r
162 if(elem.version == instance.version && val != 0){
\r
167 this.bpmnInstances.push(instance);
\r
168 this.setNewVersion()
\r
173 removeBpmnInstance(version){
\r
174 this.bpmnInstances.forEach((elem, val) =>{
\r
175 if(elem['version'] == version){
\r
176 this.bpmnInstances.splice(val, 1);
\r
188 return this.testName;
\r
192 return this.testDescription;
\r
196 return this.groupId;
\r
199 getProcessDefinitionKey(){
\r
200 return this.processDefinitionKey;
\r
203 getBpmnInstances(version: String = null){
\r
205 return this.bpmnInstances;
\r
207 this.bpmnInstances.forEach((elem, val) => {
\r
208 if(elem['version'] == version){
\r
215 return new DefinitionInstance();
\r