Fixed interval request
This commit is contained in:
parent
e56123636f
commit
53aa3bafce
|
@ -282,7 +282,7 @@ public class Query extends PostgreSQLQuery {
|
||||||
stringBuffer.append(" AND ");
|
stringBuffer.append(" AND ");
|
||||||
tableField = getTableField(AggregatedRecord.END_TIME);
|
tableField = getTableField(AggregatedRecord.END_TIME);
|
||||||
stringBuffer.append(tableField);
|
stringBuffer.append(tableField);
|
||||||
stringBuffer.append(" < ");
|
stringBuffer.append(" <= ");
|
||||||
appendValue(temporalConstraint.getAlignedEndTime());
|
appendValue(temporalConstraint.getAlignedEndTime());
|
||||||
stringBuffer.append(")");
|
stringBuffer.append(")");
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest {
|
||||||
|
|
||||||
protected TemporalConstraint getTemporalConstraint() {
|
protected TemporalConstraint getTemporalConstraint() {
|
||||||
Calendar startTimeCalendar = Calendar.getInstance();
|
Calendar startTimeCalendar = Calendar.getInstance();
|
||||||
|
startTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
|
||||||
startTimeCalendar.set(Calendar.YEAR, 2015);
|
startTimeCalendar.set(Calendar.YEAR, 2015);
|
||||||
startTimeCalendar.set(Calendar.MONTH, Calendar.JANUARY);
|
startTimeCalendar.set(Calendar.MONTH, Calendar.JANUARY);
|
||||||
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
startTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
||||||
|
@ -75,6 +76,7 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest {
|
||||||
startTimeCalendar.set(Calendar.MINUTE, 0);
|
startTimeCalendar.set(Calendar.MINUTE, 0);
|
||||||
|
|
||||||
Calendar entTimeCalendar = Calendar.getInstance();
|
Calendar entTimeCalendar = Calendar.getInstance();
|
||||||
|
entTimeCalendar.setTimeZone(TemporalConstraint.DEFAULT_TIME_ZONE);
|
||||||
entTimeCalendar.set(Calendar.YEAR, 2021);
|
entTimeCalendar.set(Calendar.YEAR, 2021);
|
||||||
entTimeCalendar.set(Calendar.MONTH, Calendar.MARCH);
|
entTimeCalendar.set(Calendar.MONTH, Calendar.MARCH);
|
||||||
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
entTimeCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
||||||
|
@ -95,6 +97,231 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest {
|
||||||
return classes;
|
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
|
@Test
|
||||||
public void testGetNoContextTimeSeries() throws Exception {
|
public void testGetNoContextTimeSeries() throws Exception {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue