Fixed interval request

master
Luca Frosini 2 years ago
parent e56123636f
commit 53aa3bafce

@ -282,7 +282,7 @@ public class Query extends PostgreSQLQuery {
stringBuffer.append(" AND ");
tableField = getTableField(AggregatedRecord.END_TIME);
stringBuffer.append(tableField);
stringBuffer.append(" < ");
stringBuffer.append(" <= ");
appendValue(temporalConstraint.getAlignedEndTime());
stringBuffer.append(")");
}

@ -68,6 +68,7 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest {
protected TemporalConstraint getTemporalConstraint() {
Calendar startTimeCalendar = Calendar.getInstance();
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
startTimeCalendar.set(Calendar.YEAR, 2015);
startTimeCalendar.set(Calendar.MONTH, Calendar.JANUARY);
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
@ -75,6 +76,7 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest {
startTimeCalendar.set(Calendar.MINUTE, 0);
Calendar entTimeCalendar = Calendar.getInstance();
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
entTimeCalendar.set(Calendar.YEAR, 2021);
entTimeCalendar.set(Calendar.MONTH, Calendar.MARCH);
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
@ -95,6 +97,231 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest {
return classes;
}
@Test
public void testGetNoContextTimeSeriesYearly() throws Exception {
List<Filter> filters = getFilters();
AggregationMode aggregationMode = AggregationMode.YEARLY;
Calendar startTimeCalendar = Calendar.getInstance();
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
startTimeCalendar.set(Calendar.YEAR, 2015);
startTimeCalendar.set(Calendar.MONTH, Calendar.JANUARY);
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
startTimeCalendar.set(Calendar.HOUR_OF_DAY, 0);
startTimeCalendar.set(Calendar.MINUTE, 0);
Calendar entTimeCalendar = Calendar.getInstance();
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
entTimeCalendar.set(Calendar.YEAR, 2021);
entTimeCalendar.set(Calendar.MONTH, Calendar.DECEMBER);
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 31);
entTimeCalendar.set(Calendar.HOUR_OF_DAY, 0);
entTimeCalendar.set(Calendar.MINUTE, 0);
TemporalConstraint temporalConstraint = new TemporalConstraint(startTimeCalendar.getTimeInMillis(), entTimeCalendar.getTimeInMillis(), aggregationMode);
Class<? extends AggregatedRecord<?, ?>> clz = AggregatedServiceUsageRecord.class;
logger.debug("----------------------------------------------------------------------");
logger.debug("Going to query {} - Aggregation Mode {}\n", RecordToDBMapping.getRecordTypeByClass(clz), aggregationMode.name());
temporalConstraint.setAggregationMode(aggregationMode);
accountingPersistenceQueryPostgreSQL.setRequestedRecords(clz);
accountingPersistenceQueryPostgreSQL.setTemporalConstraint(temporalConstraint);
accountingPersistenceQueryPostgreSQL.setFilters(filters);
SortedMap<Calendar, Info> timeseries = accountingPersistenceQueryPostgreSQL.getTimeSeries();
for(Calendar c : timeseries.keySet()) {
Info info = timeseries.get(c);
logger.debug("{}", info);
}
}
@Test
public void testGetNoContextTimeSeriesMonthly() throws Exception {
List<Filter> filters = getFilters();
AggregationMode aggregationMode = AggregationMode.MONTHLY;
Calendar startTimeCalendar = Calendar.getInstance();
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
startTimeCalendar.set(Calendar.YEAR, 2015);
startTimeCalendar.set(Calendar.MONTH, Calendar.JANUARY);
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
startTimeCalendar.set(Calendar.HOUR_OF_DAY, 0);
startTimeCalendar.set(Calendar.MINUTE, 0);
Calendar entTimeCalendar = Calendar.getInstance();
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
entTimeCalendar.set(Calendar.YEAR, 2021);
entTimeCalendar.set(Calendar.MONTH, Calendar.NOVEMBER);
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
entTimeCalendar.set(Calendar.HOUR_OF_DAY, 0);
entTimeCalendar.set(Calendar.MINUTE, 0);
TemporalConstraint temporalConstraint = new TemporalConstraint(startTimeCalendar.getTimeInMillis(), entTimeCalendar.getTimeInMillis(), aggregationMode);
Class<? extends AggregatedRecord<?, ?>> clz = AggregatedServiceUsageRecord.class;
logger.debug("----------------------------------------------------------------------");
logger.debug("Going to query {} - Aggregation Mode {}\n", RecordToDBMapping.getRecordTypeByClass(clz), aggregationMode.name());
temporalConstraint.setAggregationMode(aggregationMode);
accountingPersistenceQueryPostgreSQL.setRequestedRecords(clz);
accountingPersistenceQueryPostgreSQL.setTemporalConstraint(temporalConstraint);
accountingPersistenceQueryPostgreSQL.setFilters(filters);
SortedMap<Calendar, Info> timeseries = accountingPersistenceQueryPostgreSQL.getTimeSeries();
for(Calendar c : timeseries.keySet()) {
Info info = timeseries.get(c);
logger.debug("{}", info);
}
}
@Test
public void testGetNoContextTimeSeriesDaily() throws Exception {
List<Filter> filters = getFilters();
AggregationMode aggregationMode = AggregationMode.DAILY;
Calendar startTimeCalendar = Calendar.getInstance();
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
startTimeCalendar.set(Calendar.YEAR, 2021);
startTimeCalendar.set(Calendar.MONTH, Calendar.OCTOBER);
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 26);
startTimeCalendar.set(Calendar.HOUR_OF_DAY, 0);
startTimeCalendar.set(Calendar.MINUTE, 0);
Calendar entTimeCalendar = Calendar.getInstance();
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
entTimeCalendar.set(Calendar.YEAR, 2021);
entTimeCalendar.set(Calendar.MONTH, Calendar.NOVEMBER);
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 26);
entTimeCalendar.set(Calendar.HOUR_OF_DAY, 0);
entTimeCalendar.set(Calendar.MINUTE, 0);
TemporalConstraint temporalConstraint = new TemporalConstraint(startTimeCalendar.getTimeInMillis(), entTimeCalendar.getTimeInMillis(), aggregationMode);
Class<? extends AggregatedRecord<?, ?>> clz = AggregatedServiceUsageRecord.class;
logger.debug("----------------------------------------------------------------------");
logger.debug("Going to query {} - Aggregation Mode {}\n", RecordToDBMapping.getRecordTypeByClass(clz), aggregationMode.name());
temporalConstraint.setAggregationMode(aggregationMode);
accountingPersistenceQueryPostgreSQL.setRequestedRecords(clz);
accountingPersistenceQueryPostgreSQL.setTemporalConstraint(temporalConstraint);
accountingPersistenceQueryPostgreSQL.setFilters(filters);
SortedMap<Calendar, Info> timeseries = accountingPersistenceQueryPostgreSQL.getTimeSeries();
for(Calendar c : timeseries.keySet()) {
Info info = timeseries.get(c);
logger.debug("{}", info);
}
}
@Test
public void testGetNoContextTimeSeriesHourly() throws Exception {
List<Filter> filters = getFilters();
AggregationMode aggregationMode = AggregationMode.HOURLY;
Calendar startTimeCalendar = Calendar.getInstance();
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
startTimeCalendar.set(Calendar.YEAR, 2021);
startTimeCalendar.set(Calendar.MONTH, Calendar.NOVEMBER);
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 26);
startTimeCalendar.set(Calendar.HOUR_OF_DAY, 00);
startTimeCalendar.set(Calendar.MINUTE, 0);
Calendar entTimeCalendar = Calendar.getInstance();
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
entTimeCalendar.set(Calendar.YEAR, 2021);
entTimeCalendar.set(Calendar.MONTH, Calendar.NOVEMBER);
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 26);
entTimeCalendar.set(Calendar.HOUR_OF_DAY, 23);
entTimeCalendar.set(Calendar.MINUTE, 0);
TemporalConstraint temporalConstraint = new TemporalConstraint(startTimeCalendar.getTimeInMillis(), entTimeCalendar.getTimeInMillis(), aggregationMode);
Class<? extends AggregatedRecord<?, ?>> clz = AggregatedServiceUsageRecord.class;
logger.debug("----------------------------------------------------------------------");
logger.debug("Going to query {} - Aggregation Mode {}\n", RecordToDBMapping.getRecordTypeByClass(clz), aggregationMode.name());
temporalConstraint.setAggregationMode(aggregationMode);
accountingPersistenceQueryPostgreSQL.setRequestedRecords(clz);
accountingPersistenceQueryPostgreSQL.setTemporalConstraint(temporalConstraint);
accountingPersistenceQueryPostgreSQL.setFilters(filters);
SortedMap<Calendar, Info> timeseries = accountingPersistenceQueryPostgreSQL.getTimeSeries();
for(Calendar c : timeseries.keySet()) {
Info info = timeseries.get(c);
logger.debug("{}", info);
}
}
@Test
public void testGetNoContextTimeSeriesMinutely() throws Exception {
List<Filter> filters = getFilters();
AggregationMode aggregationMode = AggregationMode.MINUTELY;
Calendar startTimeCalendar = Calendar.getInstance();
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
startTimeCalendar.set(Calendar.YEAR, 2021);
startTimeCalendar.set(Calendar.MONTH, Calendar.NOVEMBER);
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 26);
startTimeCalendar.set(Calendar.HOUR_OF_DAY, 17);
startTimeCalendar.set(Calendar.MINUTE, 15);
Calendar entTimeCalendar = Calendar.getInstance();
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
entTimeCalendar.set(Calendar.YEAR, 2021);
entTimeCalendar.set(Calendar.MONTH, Calendar.NOVEMBER);
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 26);
entTimeCalendar.set(Calendar.HOUR_OF_DAY, 17);
entTimeCalendar.set(Calendar.MINUTE, 15);
TemporalConstraint temporalConstraint = new TemporalConstraint(startTimeCalendar.getTimeInMillis(), entTimeCalendar.getTimeInMillis(), aggregationMode);
Class<? extends AggregatedRecord<?, ?>> clz = AggregatedServiceUsageRecord.class;
logger.debug("----------------------------------------------------------------------");
logger.debug("Going to query {} - Aggregation Mode {}\n", RecordToDBMapping.getRecordTypeByClass(clz), aggregationMode.name());
temporalConstraint.setAggregationMode(aggregationMode);
accountingPersistenceQueryPostgreSQL.setRequestedRecords(clz);
accountingPersistenceQueryPostgreSQL.setTemporalConstraint(temporalConstraint);
accountingPersistenceQueryPostgreSQL.setFilters(filters);
SortedMap<Calendar, Info> timeseries = accountingPersistenceQueryPostgreSQL.getTimeSeries();
for(Calendar c : timeseries.keySet()) {
Info info = timeseries.get(c);
logger.debug("{}", info);
}
}
@Test
public void testGetNoContextTimeSeries() throws Exception {

Loading…
Cancel
Save