package model.manager.exports.columns; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import model.manager.DrugManager; import model.manager.PatientManager; import model.manager.excel.conversion.exceptions.ReportException; import model.manager.exports.DataExporter; import model.manager.exports.PatientExportObject; import model.nonPersistent.EntitySet; import org.apache.commons.io.FileUtils; import org.celllife.idart.database.hibernate.Drug; import org.celllife.idart.database.hibernate.Packages; import org.celllife.idart.database.hibernate.Patient; import org.celllife.idart.database.hibernate.util.HibernateUtil; import org.celllife.idart.misc.iDARTUtil; import org.celllife.idart.test.HibernateTest; import org.testng.Assert; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; public class SimpleColumnsEnumTest extends HibernateTest { @SuppressWarnings("unchecked") @Test(dataProvider = "columnProvider") public void testColumn(SimpleColumnsEnum column, String expected) throws ReportException, IOException { PatientExportObject ro = new PatientExportObject(); ro.setAllPatients(false); int patid = PatientManager.getPatient(getSession(), "simplecolenumtest").getId(); ro.setPatientSet(new EntitySet(Arrays.asList(patid))); ro.addSimpleColumn(column); DataExporter exporter = new DataExporter(HibernateUtil .getNewSession()); exporter.generateExport(ro, "testExport.csv"); List<String> lines = FileUtils.readLines(new File("testExport.csv")); Assert.assertEquals(lines.get(1), expected); } @DataProvider(name = "columnProvider") public Object[][] getColumnsWithValues() { return new Object[][] { { SimpleColumnsEnum.accountStatus, "true" }, { SimpleColumnsEnum.address, "12 Gabriel Road 8001 Cape Town" }, { SimpleColumnsEnum.cellphone, "0784568956" }, { SimpleColumnsEnum.clinic, "Main Clinic" }, { SimpleColumnsEnum.dateOfBirth, "1980-08-20" }, { SimpleColumnsEnum.expectedRunoutDate, "2008-08-09" }, { SimpleColumnsEnum.firstNames, "First Name13" }, { SimpleColumnsEnum.homePhone, "556 5555" }, { SimpleColumnsEnum.lastCollectedDate, "2008-07-10" }, { SimpleColumnsEnum.lastCollectedDrugs, "D4T 30 (30); 3TC 150 (30); EFV 600 (30);" }, { SimpleColumnsEnum.lastName, "Last Name17" }, { SimpleColumnsEnum.patientId, "simplecolenumtest" }, { SimpleColumnsEnum.province, "Western Cape3" }, { SimpleColumnsEnum.sex, "M" }, }; } @Test public void checkAllValuesBeingTested() { Object[][] columnsBeingTested = getColumnsWithValues(); SimpleColumnsEnum[] columnsInEnum = SimpleColumnsEnum.all; Assert.assertEquals(columnsInEnum.length, columnsBeingTested.length); } public void createTestData(){ startTransaction(); Patient p = utils.createPatient("simplecolenumtest"); p.setAddress1("12 Gabriel Road"); p.setAddress2("8001"); p.setAddress3("Cape Town"); p.setCellphone("0784568956"); p.setDateOfBirth(iDARTUtil.parse(Date.class, "20 Aug 1980")); p.setFirstNames("First Name13"); p.setHomePhone("556 5555"); p.setLastname("Last Name17"); p.setProvince("Western Cape3"); p.setSex('M'); List<Drug> drugs = new ArrayList<Drug>(); drugs.add(DrugManager.getDrug(getSession(), "[D4T] Stavudine 30mg")); drugs.add(DrugManager.getDrug(getSession(), "[3TC] Lamivudine 150mg")); drugs.add(DrugManager.getDrug(getSession(), "[EFV] Efavirenz 600mg")); Packages pack = utils.createPackage(p, "enumpackid", 4, drugs, null); pack.setPickupDate(iDARTUtil.parse(Date.class, "10 Jul 2008")); endTransactionAndCommit(); } }