/** * */ package org.gcube.accounting.analytics.persistence.postgresql; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import org.gcube.accounting.analytics.Filter; import org.gcube.accounting.analytics.TemporalConstraint; import org.gcube.accounting.analytics.TemporalConstraint.AggregationMode; import org.gcube.accounting.analytics.exception.DuplicatedKeyFilterException; import org.gcube.accounting.analytics.exception.KeyException; import org.gcube.accounting.analytics.exception.ValueException; import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) */ public class QueryTest extends ContextTest { private static final Logger logger = LoggerFactory.getLogger(QueryTest.class); @Test public void testGetNoContextTimeSeriesQuery() throws DuplicatedKeyFilterException, KeyException, ValueException, Exception { logger.debug("test"); Calendar startTimeCalendar = Calendar.getInstance(); startTimeCalendar.set(Calendar.MONTH, Calendar.MARCH); startTimeCalendar.set(Calendar.DAY_OF_MONTH, 15); startTimeCalendar.set(Calendar.HOUR_OF_DAY, 16); startTimeCalendar.set(Calendar.MINUTE, 15); Calendar entTimeCalendar = Calendar.getInstance(); entTimeCalendar.set(Calendar.MONTH, Calendar.MARCH); entTimeCalendar.set(Calendar.DAY_OF_MONTH, 15); entTimeCalendar.set(Calendar.HOUR_OF_DAY, 16); entTimeCalendar.set(Calendar.MINUTE, 17); List filters = new ArrayList<>(); Filter filter = new Filter(UsageRecord.CONSUMER_ID, "name.surname"); filters.add(filter); TemporalConstraint temporalConstraint = new TemporalConstraint(startTimeCalendar.getTimeInMillis(), entTimeCalendar.getTimeInMillis(), AggregationMode.MINUTELY); Query query = new Query(AggregatedServiceUsageRecord.class); query.setTemporalConstraint(temporalConstraint); query.setFilters(filters); String ret = query.getNoContextTimeSeriesQuery(); logger.debug(ret); } }