package net.sf.jxls;
import junit.framework.TestCase;
import net.sf.jxls.bean.Department;
import net.sf.jxls.bean.Employee;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.poi.ss.usermodel.Workbook;
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
/**
* @author Leonid Vysochyn
*/
public abstract class BaseTest extends TestCase {
protected final Log log = LogFactory.getLog(getClass());
List itEmployees = new ArrayList();
String[] itEmployeeNames = new String[] {"Elsa", "Oleg", "Neil", "Maria", "John"};
String[] hrEmployeeNames = new String[] {"Olga", "Helen", "Keith", "Cat"};
String[] baEmployeeNames = new String[] {"Denise", "LeAnn", "Natali"};
String[] mgrEmployeeNames = new String[] {"Sean", "John", "Joerg"};
Double[] itPayments = new Double[] {new Double(1500), new Double(2300), new Double(2500), new Double(1700), new Double(2800)};
Double[] hrPayments = new Double[] {new Double(1400), new Double(2100), new Double(1800), new Double(1900)};
Double[] baPayments = new Double[] {new Double(2400), new Double(2200), new Double(2600)};
Double[] mgrPayments = new Double[] {null, new Double(6000), null};
Double[] itBonuses = new Double[] {new Double(0.15), new Double(0.25), new Double(0.00), new Double(0.15), new Double(0.20)};
Double[] hrBonuses = new Double[] {new Double(0.20), new Double(0.10), new Double(0.15), new Double(0.15)};
Double[] baBonuses = new Double[] {new Double(0.20), new Double(0.15), new Double(0.10)};
Double[] mgrBonuses = new Double[] {new Double(0.20), null, new Double(0.20)};
Integer[] itAges = new Integer[] {new Integer(34), new Integer(30), new Integer(25), new Integer(25), new Integer(35)};
Integer[] hrAges = new Integer[] {new Integer(26), new Integer(28), new Integer(26), new Integer(26)};
Integer[] baAges = new Integer[] {new Integer(30), new Integer(30), new Integer(30)};
Integer[] mgrAges = new Integer[] {null, new Integer(35), null};
List departments = new ArrayList();
Department mgrDepartment, itDepartment;
protected void setUp() throws Exception {
super.setUp();
Department department = new Department("IT");
for(int i = 0; i < itEmployeeNames.length; i++){
Employee employee = new Employee(itEmployeeNames[i], itAges[i], itPayments[i], itBonuses[i]);
employee.setNotes( generateNotes(employee.getName()) );
department.addEmployee( employee );
itEmployees.add( employee );
}
itDepartment = department;
departments.add( department );
department = new Department("HR");
for(int i = 0; i < hrEmployeeNames.length; i++){
department.addEmployee( new Employee(hrEmployeeNames[i], hrAges[i], hrPayments[i], hrBonuses[i]) );
}
departments.add( department );
department = new Department("BA");
for(int i = 0; i < baEmployeeNames.length; i++){
department.addEmployee( new Employee(baEmployeeNames[i], baAges[i], baPayments[i], baBonuses[i]) );
}
departments.add( department );
department = new Department("MGR");
for(int i = 0; i < mgrEmployeeNames.length; i++){
department.addEmployee( new Employee(mgrEmployeeNames[i], mgrAges[i], mgrPayments[i], mgrBonuses[i]) );
}
mgrDepartment = department;
}
protected List generateNotes(String name) {
Random r = new Random( System.currentTimeMillis() );
int n = 1 + r.nextInt(7);
List notes = new ArrayList();
for(int i = 0 ; i < n; i++){
notes.add("Note " + i + " for " + name);
}
return notes;
}
protected void saveWorkbook(Workbook resultWorkbook, String fileName) throws IOException {
OutputStream os = new BufferedOutputStream(new FileOutputStream(fileName));
resultWorkbook.write(os);
os.flush();
os.close();
}
}