Sync Integ to Master
[sdc.git] / test-apis-ci / src / main / java / org / openecomp / sdc / ci / tests / dataProviders / OnbordingDataProviders.java
1 package org.openecomp.sdc.ci.tests.dataProviders;
2
3 import org.openecomp.sdc.ci.tests.utils.general.FileHandling;
4 import org.openecomp.sdc.ci.tests.utils.general.OnboardingUtils;
5 import org.testng.annotations.DataProvider;
6
7
8 import java.util.ArrayList;
9 import java.util.Collections;
10 import java.util.List;
11
12 import static org.testng.Assert.assertFalse;
13
14 public class OnbordingDataProviders {
15
16         protected static String filepath = FileHandling.getVnfRepositoryPath();
17         
18 //      -----------------------dataProviders-----------------------------------------   
19         @DataProvider(name = "randomVNF_List", parallel = false)
20         private static final Object[][] randomVnfList() throws Exception {
21                 int randomElementNumber = 3; //how many VNFs to onboard randomly
22                 List<String> fileNamesFromFolder = OnboardingUtils.getVnfNamesFileListExcludeToscaParserFailure();
23                 List<String> newRandomFileNamesFromFolder = getRandomElements(randomElementNumber, fileNamesFromFolder);
24                 if(newRandomFileNamesFromFolder == null){
25                         assertFalse(true,"Requered number of VNF files not exists under " + filepath);
26                 }
27                 System.out.println(String.format("There are %s zip file(s) to test", newRandomFileNamesFromFolder.size()));
28                 return provideData(newRandomFileNamesFromFolder, filepath);
29         }
30         
31         @DataProvider(name = "VNF_List" , parallel = true)
32         private static final Object[][] VnfList() throws Exception {
33                 
34                 List<String> fileNamesFromFolder = OnboardingUtils.getVnfNamesFileList();
35                 
36                 System.out.println(String.format("There are %s zip file(s) to test", fileNamesFromFolder.size()));
37                 return provideData(fileNamesFromFolder, filepath);
38         }
39         
40 //      -----------------------factories-----------------------------------------
41
42
43         
44         
45 //      -----------------------methods-----------------------------------------
46         public static Object[][] provideData(List<String> fileNamesFromFolder, String filepath) {
47                 
48                 Object[][] arObject = new Object[fileNamesFromFolder.size()][];
49                 int index = 0;
50                 for (Object obj : fileNamesFromFolder) {
51                         arObject[index++] = new Object[] { filepath, obj };
52                 }
53                 return arObject;
54         }
55         
56         public static List<String> getRandomElements(int randomElementNumber, List<String> fileNamesFromFolder) {
57                 if(fileNamesFromFolder.size() == 0 || fileNamesFromFolder.size() < randomElementNumber){
58                         return null;
59                 }else{
60                         List<Integer> indexList = new ArrayList<>();
61                         List<String> newRandomFileNamesFromFolder = new ArrayList<>(); 
62                         for(int i = 0; i < fileNamesFromFolder.size(); i++){
63                                 indexList.add(i);
64                         }
65                         Collections.shuffle(indexList);
66                         Integer[] randomArray = indexList.subList(0, randomElementNumber).toArray(new Integer[randomElementNumber]);
67                         for(int i = 0; i < randomArray.length; i++){
68                                 newRandomFileNamesFromFolder.add(fileNamesFromFolder.get(randomArray[i]));
69                         }
70                         return newRandomFileNamesFromFolder;
71                 }
72         }
73         
74         
75         
76         
77 }