|
|
|
@ -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 {
|
|
|
|
|
|
|
|
|
|