private void checkCollumns(ReportParams params) { List<String> all = Arrays.asList( StatsManager.T_SITE, StatsManager.T_USER, StatsManager.T_EVENT, StatsManager.T_TOOL, StatsManager.T_RESOURCE, StatsManager.T_RESOURCE_ACTION, StatsManager.T_DATE, StatsManager.T_DATEMONTH, StatsManager.T_DATEYEAR, StatsManager.T_LASTDATE, StatsManager.T_TOTAL, StatsManager.T_VISITS, StatsManager.T_UNIQUEVISITS, StatsManager.T_DURATION); List<String> totalsBy = params.getHowTotalsBy(); for (String c : all) { boolean containsColumn = M_rm.isReportColumnAvailable(params, c); boolean expected = totalsBy == null || totalsBy.contains(c) || (c.equals(StatsManager.T_TOTAL) && !ReportManager.WHAT_PRESENCES.equals(params.getWhat())) || (c.equals(StatsManager.T_DURATION) && ReportManager.WHAT_PRESENCES.equals(params.getWhat())); // System.out.println("containsColumn("+c+"): "+containsColumn+" expected: "+expected); assertEquals(expected, containsColumn); } }
public void testReportExporting() { String siteId = null; Report r = null; ReportParams rp = null; List<String> totalsBy = null; siteId = FakeData.SITE_A_ID; ReportDef rd = new ReportDef(); rd.setId(0); rd.setSiteId(siteId); rd.setCreatedBy(FakeData.USER_A_ID); rd.setModifiedBy(FakeData.USER_A_ID); rd.setTitle("Title 1"); rp = new ReportParams(siteId); rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); rp.setHowSort(false); rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); rd.setReportParams(rp); Report report = M_rm.getReport(rd, false); assertNotNull(report); // CSV String csv = M_rm.getReportAsCsv(report); assertNotNull(csv); assertTrue(csv.length() > 0); // EXCEL byte[] excel = M_rm.getReportAsExcel(report, "sheetname"); assertNotNull(excel); assertTrue(excel.length > 0); // To verify locally... // File file = new File("d:/sitestats-test.xls"); // if(file.exists()) {file.delete();} // FileOutputStream out = null; // try{ // out = new FileOutputStream(file); // out.write(excel); // out.flush(); // }catch(FileNotFoundException e){ // e.printStackTrace(); // }catch(IOException e){ // e.printStackTrace(); // }finally{ // if(out != null) { // try{ out.close(); }catch(IOException e){ /* IGNORE */} // } // } // PDF: currently disabled due to classloading trouble // byte[] pdf = M_rm.getReportAsPDF(report); // assertNotNull(pdf); // assertTrue(pdf.length > 0); }
private void setColumnDisplayInfo(ReportParams params) throws SAXException { if (handler == null) { throw new IllegalStateException("ContentHandler not set"); } handler.element("what", params.getWhat()); handler.element("who", params.getWho()); handler.element( "showSite", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_SITE))); handler.element( "showUser", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_USER))); handler.element( "showTool", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_TOOL))); handler.element( "showEvent", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_EVENT))); handler.element( "showResource", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_RESOURCE))); handler.element( "showResourceAction", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_RESOURCE_ACTION))); handler.element( "showDate", String.valueOf( M_rm.isReportColumnAvailable(params, StatsManager.T_DATE) || M_rm.isReportColumnAvailable(params, StatsManager.T_DATEMONTH) || M_rm.isReportColumnAvailable(params, StatsManager.T_DATEYEAR))); handler.element( "showLastDate", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_LASTDATE))); handler.element( "showTotal", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_TOTAL))); handler.element( "showTotalVisits", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_VISITS))); handler.element( "showTotalUnique", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_UNIQUEVISITS))); handler.element( "showDuration", String.valueOf(M_rm.isReportColumnAvailable(params, StatsManager.T_DURATION))); }
public void testReportsFromOverviewPage() { M_sum.collectEvents(getSampleData2()); // MiniStatsVisits & MiniStatUniqueVisits { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); rp.setWhat(ReportManager.WHAT_VISITS_TOTALS); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_DATE); totalsBy.add(StatsManager.T_VISITS); totalsBy.add(StatsManager.T_UNIQUEVISITS); rp.setHowTotalsBy(totalsBy); rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_DATE); rp.setHowSortAscending(false); rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_BOTH); rp.setHowChartType(StatsManager.CHARTTYPE_TIMESERIESBAR); rp.setHowChartSource(StatsManager.T_DATE); rp.setHowChartSeriesSource(StatsManager.T_NONE); rp.setHowChartSeriesPeriod(StatsManager.CHARTTIMESERIES_DAY); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(5, rep.getReportData().size()); } // MiniStatEnrolledUsersWithVisits { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); rp.setWhat(ReportManager.WHAT_VISITS); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(2, rep.getReportData().size()); } // MiniStatEnrolledUsersWithoutVisits { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); rp.setWhat(ReportManager.WHAT_VISITS); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_NONE); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(0, rep.getReportData().size()); } // MiniStatActivityEvents { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); // what rp.setWhat(ReportManager.WHAT_EVENTS); rp.setWhatEventSelType(ReportManager.WHAT_EVENTS_BYEVENTS); rp.setWhatEventIds(new ArrayList<String>(M_ers.getEventIds())); // when rp.setWhen(ReportManager.WHEN_ALL); // who rp.setWho(ReportManager.WHO_ALL); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_EVENT); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_EVENT); rp.setHowSortAscending(true); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(6, rep.getReportData().size()); } // MiniStatMostActiveUser { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); // what rp.setWhat(ReportManager.WHAT_EVENTS); rp.setWhatEventSelType(ReportManager.WHAT_EVENTS_BYEVENTS); rp.setWhatEventIds(new ArrayList<String>(M_ers.getEventIds())); // when rp.setWhen(ReportManager.WHEN_ALL); // who rp.setWho(ReportManager.WHO_ALL); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_TOTAL); rp.setHowSortAscending(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(3, rep.getReportData().size()); } // MiniStatFiles (files with new event) { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); // what rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhatLimitedAction(true); rp.setWhatResourceAction(ReportManager.WHAT_RESOURCES_ACTION_NEW); rp.setWhatLimitedResourceIds(true); rp.setWhatResourceIds(Arrays.asList(StatsManager.RESOURCES_DIR + FakeData.SITE_A_ID + "/")); // when rp.setWhen(ReportManager.WHEN_ALL); // who rp.setWho(ReportManager.WHO_ALL); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_RESOURCE); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_RESOURCE); rp.setHowSortAscending(true); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(2, rep.getReportData().size()); } // MiniStatOpenedFiles (files with read event) { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); // what rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhatLimitedAction(true); rp.setWhatResourceAction(ReportManager.WHAT_RESOURCES_ACTION_READ); rp.setWhatLimitedResourceIds(true); rp.setWhatResourceIds(Arrays.asList(StatsManager.RESOURCES_DIR + FakeData.SITE_A_ID + "/")); // when rp.setWhen(ReportManager.WHEN_ALL); // who rp.setWho(ReportManager.WHO_ALL); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_RESOURCE); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_TOTAL); rp.setHowSortAscending(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(2, rep.getReportData().size()); } // MiniStatUserThatOpenedMoreFiles { ReportDef r = new ReportDef(); r.setId(0); r.setSiteId(FakeData.SITE_A_ID); ReportParams rp = new ReportParams(FakeData.SITE_A_ID); // what rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhatLimitedAction(true); rp.setWhatResourceAction(ReportManager.WHAT_RESOURCES_ACTION_READ); rp.setWhatLimitedResourceIds(true); rp.setWhatResourceIds(Arrays.asList(StatsManager.RESOURCES_DIR + FakeData.SITE_A_ID + "/")); // when rp.setWhen(ReportManager.WHEN_ALL); // who rp.setWho(ReportManager.WHO_ALL); // grouping List<String> totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_TOTAL); rp.setHowSortAscending(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); r.setReportParams(rp); Report rep = M_rm.getReport(r, false); assertNotNull(rep); assertEquals(2, rep.getReportData().size()); } }
public void testGetMoreReports() { M_sum.collectEvents(getSampleData()); String siteId = null; Report r = null; ReportDef rd = null; ReportParams rp = null; List<String> totalsBy = null; // resources siteId = FakeData.SITE_A_ID; rd = new ReportDef(); rd.setId(0); rd.setSiteId(siteId); rp = new ReportParams(siteId); rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); rp.setHowSort(false); rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); rd.setReportParams(rp); r = M_rm.getReport(rd, true, null, false); checkCollumns(rd.getReportParams()); assertEquals(1, r.getReportData().size()); // visits rp.setWhat(ReportManager.WHAT_VISITS); r = M_rm.getReport(rd, true, null, true); checkCollumns(rd.getReportParams()); assertEquals(2, r.getReportData().size()); // visits totals rp.setWhat(ReportManager.WHAT_VISITS_TOTALS); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); rp.setHowTotalsBy(totalsBy); rd.setId(1); r = M_rm.getReport(rd, true, new PagingPosition(0, 5), true); assertEquals(1, r.getReportData().size()); assertEquals(9, ((SiteVisits) (r.getReportData().get(0))).getTotalVisits()); assertEquals(7, ((SiteVisits) (r.getReportData().get(0))).getTotalUnique()); // // activity totals // rp.setWhat(ReportManager.WHAT_ACTIVITY_TOTALS); // rp.setWhatEventIds(FakeData.EVENTIDS); // rp.setWhen(ReportManager.WHEN_LAST365DAYS); // r = M_rm.getReport(rd, false, null, false); // System.out.println(r.getReportData()); // System.out.println("ReportParams: "+ rp); // System.out.println("ReportData: "+ r.getReportData()); // assertEquals(1, r.getReportData().size()); // assertEquals(1, r.getReportData().get(0).getCount()); // presences I rp.setWhat(ReportManager.WHAT_PRESENCES); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); totalsBy.add(StatsManager.T_USER); totalsBy.add(StatsManager.T_DATE); rp.setHowTotalsBy(totalsBy); rp.setHowSort(false); r = M_rm.getReport(rd, true, null, true); checkCollumns(rd.getReportParams()); assertEquals(7, r.getReportData().size()); // presences II rp.setWhat(ReportManager.WHAT_PRESENCES); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); totalsBy.add(StatsManager.T_DATE); rp.setHowTotalsBy(totalsBy); rp.setHowSort(false); r = M_rm.getReport(rd, true, null, true); checkCollumns(rd.getReportParams()); assertEquals(5, r.getReportData().size()); // presences III rp.setWhat(ReportManager.WHAT_PRESENCES); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); rp.setHowTotalsBy(totalsBy); rp.setHowSort(false); r = M_rm.getReport(rd, true, null, true); checkCollumns(rd.getReportParams()); assertEquals(1, r.getReportData().size()); }
// ---- TESTS ---- public void testGetReport() { M_sum.collectEvents(getSampleData()); String siteId = null; Report r = null; ReportDef rd = null; ReportParams rp = null; List<String> totalsBy = null; // #1 getReport(ReportDef reportDef, boolean restrictToToolsInSite) siteId = FakeData.SITE_B_ID; rd = new ReportDef(); rd.setId(0); rd.setSiteId(siteId); rp = new ReportParams(siteId); rp.setWhat(ReportManager.WHAT_EVENTS); rp.setWhatEventSelType(ReportManager.WHAT_EVENTS_BYTOOL); rp.setWhatToolIds(Arrays.asList(ReportManager.WHAT_EVENTS_ALLTOOLS)); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); // grouping totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_TOOL); totalsBy.add(StatsManager.T_DATE); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_TOOL); rp.setHowSortAscending(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_BOTH); rp.setHowChartType(StatsManager.CHARTTYPE_TIMESERIESBAR); rp.setHowChartSource(StatsManager.T_DATE); rp.setHowChartSeriesSource(StatsManager.T_NONE); rp.setHowChartSeriesPeriod(StatsManager.CHARTTIMESERIES_DAY); rd.setReportParams(rp); r = M_rm.getReport(rd, true); checkCollumns(rd.getReportParams()); assertEquals(1, r.getReportData().size()); r = M_rm.getReport(rd, false); checkCollumns(rd.getReportParams()); assertEquals(2, r.getReportData().size()); assertNotNull(M_rm.getReportFormattedParams()); // #2 getReportRowCount(ReportDef reportDef, boolean restrictToToolsInSite) assertEquals(1, M_rm.getReportRowCount(rd, true)); assertEquals(2, M_rm.getReportRowCount(rd, false)); siteId = FakeData.SITE_B_ID; rd = new ReportDef(); rd.setId(0); rd.setSiteId(siteId); rp = new ReportParams(siteId); rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); // grouping totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_RESOURCE); totalsBy.add(StatsManager.T_DATE); rp.setHowTotalsBy(totalsBy); // sorting rp.setHowSort(true); rp.setHowSortBy(StatsManager.T_TOOL); rp.setHowSortAscending(false); // chart rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); rd.setReportParams(rp); assertEquals(1, M_rm.getReportRowCount(rd, true)); assertEquals(1, M_rm.getReportRowCount(rd, false)); }
public void testLoadSaveReports() { String siteId = null; Report r = null; ReportParams rp = null; List<String> totalsBy = null; siteId = FakeData.SITE_A_ID; ReportDef rd = new ReportDef(); rd.setId(0); rd.setSiteId(siteId); rd.setCreatedBy(FakeData.USER_A_ID); rd.setModifiedBy(FakeData.USER_A_ID); rd.setTitle("Title 1"); rp = new ReportParams(siteId); rp.setWhat(ReportManager.WHAT_RESOURCES); rp.setWhen(ReportManager.WHEN_ALL); rp.setWho(ReportManager.WHO_ALL); totalsBy = new ArrayList<String>(); totalsBy.add(StatsManager.T_SITE); totalsBy.add(StatsManager.T_USER); rp.setHowTotalsBy(totalsBy); rp.setHowSort(false); rp.setHowPresentationMode(ReportManager.HOW_PRESENTATION_TABLE); rd.setReportParams(rp); // non-existent try { assertNull(M_rm.getReportDefinition(100)); } catch (Exception e) { assertTrue(true); } // normal assertTrue(M_rm.saveReportDefinition(rd)); assertNotNull(M_rm.getReportDefinition(1)); // hidden ReportDef rd2 = new ReportDef(); rd2.setId(0); rd2.setSiteId(siteId); rd2.setCreatedBy(FakeData.USER_A_ID); rd2.setModifiedBy(FakeData.USER_A_ID); rd2.setTitle("Title 2"); rd2.setHidden(true); rd2.setReportParams(new ReportParams()); assertTrue(M_rm.saveReportDefinition(rd2)); // pre-defined ReportDef rd3 = new ReportDef(); rd3.setId(0); rd3.setSiteId(null); rd3.setCreatedBy(FakeData.USER_A_ID); rd3.setModifiedBy(FakeData.USER_A_ID); rd3.setTitle("Title 3"); rd3.setHidden(false); rd3.setReportParams(new ReportParams()); assertTrue(M_rm.saveReportDefinition(rd3)); List<ReportDef> list = M_rm.getReportDefinitions(null, true, true); assertNotNull(list); assertEquals(1, list.size()); list = M_rm.getReportDefinitions(FakeData.SITE_A_ID, true, true); assertNotNull(list); assertEquals(3, list.size()); list = M_rm.getReportDefinitions(FakeData.SITE_A_ID, true, false); assertNotNull(list); assertEquals(2, list.size()); list = M_rm.getReportDefinitions(FakeData.SITE_A_ID, false, true); assertNotNull(list); assertEquals(2, list.size()); list = M_rm.getReportDefinitions(FakeData.SITE_A_ID, false, false); assertNotNull(list); assertEquals(1, list.size()); assertTrue(M_rm.removeReportDefinition(rd2)); list = M_rm.getReportDefinitions(FakeData.SITE_A_ID, true, true); assertNotNull(list); assertEquals(2, list.size()); }