void saveNewJobsByDate(String folderPath, String printerName) throws ClientProtocolException, IOException, ParseJobException { List<JobDetail> toSave = new ArrayList<JobDetail>(); int getJobsFrom; String latestLog = LogFiles.getMostRecentLogFileName(folderPath, printerName); if (latestLog != null) { JobDetailCSV l2csv = new JobDetailCSV(latestLog); // We'll be resaving the latest csv as it may have new jobs toSave = l2csv.readCSV(); getJobsFrom = LogFiles.getLastSavedJob(folderPath, printerName).getJobNumber(); } else { getJobsFrom = 0; } List<JobDetail> newJobs = printer.getJobsSinceJobNumber(getJobsFrom); toSave.addAll(newJobs); LogFiles.sortJobsByNumber(toSave); TreeMap<LocalDate, List<JobDetail>> sorted = LogFiles.splitJobsByDate(toSave); for (LocalDate day : sorted.keySet()) { JobDetailCSV jd = new JobDetailCSV(csvFolder + "/" + printer.getPrinterName() + day.toString()); jd.write(sorted.get(day)); } }
@Test public void splitJobsByDateTest() throws FileNotFoundException { List<JobDetail> jobs = LogFiles.getJobsFromFile(folderPath + "../threedaysjobs.csv"); TreeMap<LocalDate, List<JobDetail>> sortedJobs = LogFiles.splitJobsByDate(jobs); assertEquals(3, sortedJobs.size()); assertEquals( 4, sortedJobs.get(LocalDate.parse("2015-11-23", LogFiles.filenameDateFormatter)).size()); assertEquals( 3, sortedJobs.get(LocalDate.parse("2015-11-24", LogFiles.filenameDateFormatter)).size()); assertEquals( 2, sortedJobs.get(LocalDate.parse("2015-11-25", LogFiles.filenameDateFormatter)).size()); }