Fixed interval request
This commit is contained in:
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…
Reference in New Issue