package com.kritsit.casetracker.client.domain.services;
import static org.mockito.Mockito.mock;
import java.time.LocalDate;
import java.util.List;
import java.util.ArrayList;
import java.io.File;
import java.nio.file.Files;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.io.IOException;
import com.kritsit.casetracker.shared.domain.model.Case;
import com.kritsit.casetracker.shared.domain.model.Defendant;
import com.kritsit.casetracker.shared.domain.model.Evidence;
import com.kritsit.casetracker.shared.domain.model.Incident;
import com.kritsit.casetracker.shared.domain.model.Permission;
import com.kritsit.casetracker.shared.domain.model.Person;
import com.kritsit.casetracker.shared.domain.model.Staff;
public class ExportTest extends TestCase {
public ExportTest(String name){
super(name);
}
public static Test suite(){
return new TestSuite(ExportTest.class);
}
public void testExport(){
IExportService exportService = new Export();
List<String> headers = new ArrayList<String>();
headers.add("first column");
headers.add("second column");
List<String[]> rows = new ArrayList<String[]>();
String[] firstRow = new String[2];
firstRow[0] = "first row, first column";
firstRow[1] = "first row, second column";
rows.add(firstRow);
String[] secondRow = new String[2];
secondRow[0] = "second row, first column";
secondRow[1] = "second row, second column";
rows.add(secondRow);
File file = new File("test.pdf");
exportService.exportToPDF(headers, rows, file);
assertTrue(file.exists());
try{
file.delete();
}
catch(Exception e){
fail();
}
assertFalse(file.exists());
}
public void testExportCase(){
IExportService exportService = new Export();
Staff user = mock(Staff.class);
String caseNumber = "2015-02-0001";
String caseName = "Developers vs Testing";
String caseType = "Battle to the death";
String details = "Last man standing survives";
String animalsInvolved = "1 Developer and 1 AI";
LocalDate incidentDate = LocalDate.parse("2014-05-14");
String address = "";
double longitude = -12.9880;
double latitude = 9.82203;
String region = "Outer space";
boolean isReturnVisit = false;
List<Evidence> evidence = new ArrayList<>();
Staff investigatingOfficer = new Staff("inspector", "test", "inspector", "department", "position", Permission.EDITOR);
Person complainant = new Person(-1, "0212202", "test", "complainant", "Somewhere", "0299222", "test@test.com");
Defendant defendant = new Defendant(-1, "0212202", "test", "complainant", "Somewhere", "0299222", "test@test.com", false);
Incident incident = new Incident(-1, longitude, latitude, region, incidentDate, Incident.getDefaultFollowUpDate(incidentDate), false);
Case c = new Case(caseNumber, caseName, details, animalsInvolved, user, incident, defendant, complainant, null, evidence, isReturnVisit, null, caseType, null);
File file = new File("test2.pdf");
exportService.exportCaseToPDF(c, file);
assertTrue(file.exists());
try{
file.delete();
}
catch(Exception e){
fail();
}
assertFalse(file.exists());
}
}