/*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
* This file is part of Entando software.
* Entando is a free software;
* You can redistribute it and/or modify it
* under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation; version 2.
*
* See the file License for the specific language governing permissions
* and limitations under the License
*
*
*
* Copyright 2013 Entando S.r.l. (http://www.entando.com) All rights reserved.
*
*/
package com.agiletec.plugins.jpstats.aps.system.services.stats;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.sql.DataSource;
import org.jfree.data.time.TimeSeries;
import com.agiletec.aps.system.exception.ApsSystemException;
import com.agiletec.aps.util.DateConverter;
import com.agiletec.plugins.jpstats.aps.ApsPluginBaseTestCase;
import com.agiletec.plugins.jpstats.aps.util.CalendarConverter;
import com.agiletec.plugins.jpstats.util.TestStatsUtils;
public class TestStatsDao extends ApsPluginBaseTestCase {
public void testAddStatsRecord() throws Throwable{
String today = DateConverter.getFormattedDate(new Date(), "dd/MM/yyyy");
Calendar start = CalendarConverter.getCalendarDay(today, 0, 0, 0, 0);
Calendar end = CalendarConverter.getCalendarDay(today, 23, 59, 59, 999);
try {
this._statsDAO.addStatsRecord(this.createRecordForTest());
List<StatsRecord> records = _statsDAO.loadStatsRecord(start.getTime(), end.getTime());
assertEquals(1, records.size());
} catch (Throwable t) {
throw t;
} finally {
this._statsDAO.deleteStatsRecord(start.getTime(), end.getTime());
List<StatsRecord> records = _statsDAO.loadStatsRecord(start.getTime(), end.getTime());
assertEquals(0, records.size());
}
}
private StatsRecord createRecordForTest() {
StatsRecord statsRecord = new StatsRecord(Calendar.getInstance());
statsRecord.setIp("127.0.0.1");
statsRecord.setReferer("http://www.japsportal.org/japsportal/it/chi_siamo.wp");
statsRecord.setSessionId("A3EFA0BC2E5FB24436609B5BE786EDCA");
statsRecord.setRole("");
statsRecord.setPageCode("chi_siamo");
statsRecord.setLangcode("it");
statsRecord.setUseragent("Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.0.7) Gecko/2009030422 Ubuntu/8.10 (intrepid) Firefox/3.0.7");
statsRecord.setBrowserLang("it-it,it;q=0.8,en-us;q=0.5,en;q=0.3");
statsRecord.setContentId("ART124");
return statsRecord;
}
public void testGetHitsByInterval() throws ApsSystemException{
TimeSeries result = null;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try{
result = _statsDAO.getHitsByInterval(initialDate,finalDate);
} catch (Throwable t) {
throw new ApsSystemException("error in get hits by interval", t);
}
assertNotNull(result);
}
public void testGetAverageTimeSite() throws ApsSystemException{
String result = null;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try{
result = _statsDAO.getAverageTimeSite(initialDate,finalDate);
} catch (Throwable t) {
throw new ApsSystemException("error in get average time site", t);
}
assertNotNull(result);
}
public void testGetAverageTimePage() throws ApsSystemException{
String result = null;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try {
result = _statsDAO.getAverageTimePage(initialDate,finalDate);
} catch (Throwable t) {
throw new ApsSystemException("error in get average time site", t);
}
assertNotNull(result);
}
public void testGetNumPageSession() throws ApsSystemException{
int result;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try{
result = _statsDAO.getNumPageSession(initialDate,finalDate);
} catch (Throwable t) {
throw new ApsSystemException("error in get average time site", t);
}
assertTrue(result >= 0);
}
public void testGetPageVisitedDesc() throws ApsSystemException{
Map result = null;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try{
result = _statsDAO.getTopPages(initialDate,finalDate);
} catch (Throwable t) {
throw new ApsSystemException("error in get average time site", t);
}
assertNotNull(result);
}
public void testGetTopContents() throws ApsSystemException{
Map result = null;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try {
result = _statsDAO.getTopContents(initialDate, finalDate);
} catch (Throwable t) {
throw new ApsSystemException("error in get average time site", t);
}
assertNotNull(result);
}
public void testGetFirstCalendarDay() throws ApsSystemException{
Calendar firstDay = null;
try {
firstDay = _statsDAO.getFirstCalendarDay();
} catch (Throwable t) {
throw new ApsSystemException("error in get first day");
}
assertNotNull(firstDay);
}
public void testGetIPByDateInterval() throws ApsSystemException{
Map result = null;
CalendarConverter converter = new CalendarConverter();
Calendar initialDate = converter.getCalendarDay("06/03/2007", 0, 0, 0, 0);
Calendar finalDate = converter.getCalendarDay("10/03/2007", 23, 59, 59, 999);
try{
result = _statsDAO.getIPByDateInterval(initialDate,finalDate);
}catch (Throwable t) {
throw new ApsSystemException("error in get average time site", t);
}
assertNotNull(result);
}
protected void tearDown() throws Exception {
try {
DataSource dataSource = (DataSource) this.getApplicationContext().getBean("portDataSource");
TestStatsUtils.cleanDB(ip, dataSource);
} catch (Throwable e) {
throw new Exception(e);
}
super.tearDown();
}
@Override
protected void init() throws Exception {
super.init();
_statsDAO = (StatsDAO) this.getApplicationContext().getBean("jpstatsStatsDAO");
}
private StatsDAO _statsDAO;
private String ip = "0.0.0.0";
}