[SDC-29] rebase continue work to align source
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / utils / validation / DistributionValidationUtils.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.ci.tests.utils.validation;
22
23 import static org.testng.AssertJUnit.assertNotNull;
24
25 import java.io.IOException;
26 import java.text.ParseException;
27 import java.util.HashMap;
28 import java.util.List;
29 import java.util.Map;
30 import java.util.Map.Entry;
31
32 import org.openecomp.sdc.be.model.Service;
33 import org.openecomp.sdc.ci.tests.utils.DistributionUtils;
34 import org.openecomp.sdc.ci.tests.utils.general.AtomicOperationUtils;
35 import org.openecomp.sdc.common.datastructure.AuditingFieldsKeysEnum;
36
37 public class DistributionValidationUtils {
38
39         public static Map<String, String> verifyDistributedArtifactDownloadUsingDB(String distributionID, Map<String, String> expectedArtifactsMapOfDistributedService, List<String> distributionStatusEnumList) throws Exception {
40                 
41                 String action = "DStatus";
42                 int timer = 0;
43                 int timeWaitPerArtifcat = 3;
44                 if(expectedArtifactsMapOfDistributedService.size() != 0){
45                         timer = (expectedArtifactsMapOfDistributedService.size()/10*15 + expectedArtifactsMapOfDistributedService.size() * timeWaitPerArtifcat * distributionStatusEnumList.size() + 30) * 1000 ;
46                 }
47                 for (String distributionStatusList : distributionStatusEnumList){
48                         for (Entry<String, String> url : expectedArtifactsMapOfDistributedService.entrySet()){
49                                 Map <AuditingFieldsKeysEnum, String> body = new HashMap<>();
50                         body.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_ID, distributionID);
51                         body.put(AuditingFieldsKeysEnum.AUDIT_DISTRIBUTION_RESOURCE_URL, url.getValue());
52                         body.put(AuditingFieldsKeysEnum.AUDIT_STATUS, distributionStatusList);
53                         Map<String, String> actualAuditRecord = new HashMap<String, String>();
54                                 actualAuditRecord = AuditValidationUtils.retrieveAuditMessagesByPattern(action, body, true);
55                                 while (timer != 0) {
56                                         if(actualAuditRecord.size() == 0 ){
57                                                 Thread.sleep(1000);
58                                                 actualAuditRecord = AuditValidationUtils.retrieveAuditMessagesByPattern(action, body, true);
59                                                 timer-=1000;
60                                                 if(timer == 0 && actualAuditRecord.size() == 0){
61                                                         assertNotNull("audit record did not found in DB for artifact url: " + url.getValue(), null);
62                                                 }
63                                         }else{
64                                                 timer = timer - timeWaitPerArtifcat * 1000;
65                                                 break;
66                                         }
67                                         
68                                 }
69                         }
70                 }
71                 return null;
72         }
73
74         public static void validateDistributedArtifactsByAudit(Service service, List<String> distributionStatusList) throws Exception, IOException, ParseException {
75                 String distributionID;
76                 AtomicOperationUtils.distributeService(service, true);
77                 distributionID = DistributionUtils.getLatestServiceDistributionObject(service).getDistributionID();
78                 if(distributionID != null){
79                         Map<String, String> expectedArtifactsMapOfDistributedService = DistributionUtils.getArtifactsMapOfDistributedService(service);
80                         DistributionValidationUtils.verifyDistributedArtifactDownloadUsingDB(distributionID, expectedArtifactsMapOfDistributedService, distributionStatusList);
81                 }
82                 else{
83                         assertNotNull("distributionID is null", distributionID);
84                 }
85         }
86 }