6594049fc55b527d0678c981db526be39ab64bd8
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / dataProvider / OnbordingDataProviders.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 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.dataProvider;
22
23 import org.openecomp.sdc.ci.tests.datatypes.enums.XnfTypeEnum;
24 import org.openecomp.sdc.ci.tests.utilities.FileHandling;
25 import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtils;
26 import org.testng.annotations.DataProvider;
27
28 import java.util.ArrayList;
29 import java.util.Collections;
30 import java.util.List;
31
32 public class OnbordingDataProviders {
33
34     private static final int NUMBER_OF_RANDOMLY_ONBOARD_VNF = 3;
35     protected static String filepath = FileHandling.getVnfRepositoryPath();
36
37     //  -----------------------dataProviders-----------------------------------------
38     @DataProvider(name = "randomVNF_List", parallel = false)
39     private static Object[][] randomVnfList() throws Exception {
40         int randomElementNumber = NUMBER_OF_RANDOMLY_ONBOARD_VNF; //how many VNFs to onboard randomly
41         List<String> fileNamesFromFolder = OnboardingUtils.getVnfNamesFileListExcludeToscaParserFailure();
42         List<String> newRandomFileNamesFromFolder = getRandomElements(randomElementNumber, fileNamesFromFolder);
43         System.out.println(String.format("There are %s zip file(s) to test", newRandomFileNamesFromFolder.size()));
44         return provideData(newRandomFileNamesFromFolder, filepath);
45     }
46
47     @DataProvider(name = "VNF_List", parallel = true)
48     private static Object[][] VnfList() throws Exception {
49
50         List<String> fileNamesFromFolder = OnboardingUtils.getXnfNamesFileList(XnfTypeEnum.VNF);
51
52         System.out.println(String.format("There are %s zip file(s) to test", fileNamesFromFolder.size()));
53         return provideData(fileNamesFromFolder, filepath);
54     }
55
56     @DataProvider(name = "updateList")
57     private static Object[][] updateList() throws Exception {
58
59         Object[][] objectArr = new Object[2][];
60
61         Object[][] filteredArObject = null;
62
63         objectArr[0] = new Object[]{"1-2016-20-visbc3vf-(VOIP)_v2.1.zip", "2-2016-20-visbc3vf-(VOIP)_v2.1_RenameResourceToShay.zip"};
64         objectArr[1] = new Object[]{"1-2017-404_vUSP_vCCF_AIC3.0-(VOIP)_v6.0.zip", "2-2017-404_vUSP_vCCF_AIC3.0-(VOIP)_v6.0_Added2TestParameters.zip"};
65
66         filteredArObject = OnboardingUtils.filterObjectArrWithExcludedVnfs(objectArr);
67
68         return filteredArObject;
69
70
71     }
72
73     //  -----------------------factories-----------------------------------------
74 //      @Factory(dataProvider = "VNF_List")
75 //      public Object[] OnbordingDataProviders(String filepath, String vnfFile){
76 //              return new Object[] { new ToscaValidationTest(filepath, vnfFile)};
77 //      }
78
79
80     //  -----------------------methods-----------------------------------------
81     static Object[][] provideData(List<String> fileNamesFromFolder, String filepath) {
82
83         Object[][] arObject = new Object[fileNamesFromFolder.size()][];
84         int index = 0;
85         for (Object obj : fileNamesFromFolder) {
86             arObject[index++] = new Object[]{filepath, obj};
87         }
88         return arObject;
89     }
90
91     static List<String> getRandomElements(int randomElementNumber, List<String> fileNamesFromFolder) {
92         if (fileNamesFromFolder.size() == 0 || fileNamesFromFolder.size() < randomElementNumber) {
93             return null;
94         } else {
95             List<Integer> indexList = new ArrayList<>();
96             List<String> newRandomFileNamesFromFolder = new ArrayList<>();
97             for (int i = 0; i < fileNamesFromFolder.size(); i++) {
98                 indexList.add(i);
99             }
100             Collections.shuffle(indexList);
101             Integer[] randomArray = indexList.subList(0, randomElementNumber).toArray(new Integer[randomElementNumber]);
102             for (Integer integer : randomArray) {
103                 newRandomFileNamesFromFolder.add(fileNamesFromFolder.get(integer));
104             }
105             return newRandomFileNamesFromFolder;
106         }
107     }
108
109
110 //      private static String[][] arrangeFilesVersionPairs(List<String> filesArr) {
111 //              String[][] filesArrangeByPairs = null;
112 //
113 //              List<String> versionOneFiles= null;
114 //              List<String> versionTowFiles= null;
115 //
116 //              for ( String fileName : filesArr )
117 //              {
118 //                      if(fileName.startsWith("1-"))
119 //                      {
120 //                              versionOneFiles.add(fileName);
121 //                      }
122 //                      else if(fileName.startsWith("2-"))
123 //                      {
124 //                              versionTowFiles.add(fileName);
125 //                      }
126 //              }
127 //
128 //              Collections.sort(versionOneFiles);
129 //              Collections.sort(versionTowFiles);
130 //
131 //              for (int i=0 ; i<versionOneFiles.size() ; i++ )
132 //              {
133 //                      for (int j=0 ; j<versionTowFiles.size() ; j++ )
134 //                      {
135 //
136 //                      }
137 //              }
138 //
139 //              return filesArrangeByPairs;
140 //      }
141
142 }