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