package ru.stqa.trainings.testng.tricky4.sample37;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.testng.annotations.Factory;
import org.testng.annotations.Listeners;
import ru.stqa.trainings.testng.simple5.sample22.DataProviders;
@Listeners(OrderByPriority.class)
public class MyFactory {
@Factory
public Object[] tf() throws IOException {
List<Object> tests = new ArrayList<Object>();
List<String[]> data = loadUserFromResource("/user.data");
int p = 0;
for (String[] dataItem : data) {
CreateUser create = new CreateUser(dataItem[0], dataItem[1]);
create.setPriority(p++);
tests.add(create);
DeleteUser delete = new DeleteUser(dataItem[0]);
delete.setPriority(p++);
tests.add(delete);
}
return (Object[]) tests.toArray(new Object[tests.size()]);
}
public List<String[]> loadUserFromResource(String resource) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(
DataProviders.class.getResourceAsStream(resource)));
List<String[]> userData = new ArrayList<String[]>();
String line = in.readLine();
while (line != null) {
userData.add(line.split(";"));
line = in.readLine();
}
in.close();
return userData;
}
}