diff --git a/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/AccountingPersistenceQueryPostgreSQLTest.java b/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/AccountingPersistenceQueryPostgreSQLTest.java index a1104ff..0e6d6b7 100644 --- a/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/AccountingPersistenceQueryPostgreSQLTest.java +++ b/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/AccountingPersistenceQueryPostgreSQLTest.java @@ -5,7 +5,9 @@ package org.gcube.accounting.analytics.persistence.postgresql; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.SortedMap; import java.util.SortedSet; @@ -49,6 +51,15 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest { accountingPersistenceQueryPostgreSQL.prepareConnection(configuration); } + protected List getFilters(){ + List filters = new ArrayList<>(); + String user = QueryTest.getRandomUser(); + logger.debug("Going to query filtering with user {}", user); + Filter filter = new Filter(UsageRecord.CONSUMER_ID, user); + filters.add(filter); + return filters; + } + protected TemporalConstraint getTemporalConstraint() { Calendar startTimeCalendar = Calendar.getInstance(); startTimeCalendar.set(Calendar.YEAR, 2015); @@ -69,23 +80,28 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest { return temporalConstraint; } - @Test - public void testGetNoContextTimeSeries() throws DuplicatedKeyFilterException, KeyException, ValueException, Exception { - - List filters = new ArrayList<>(); - Filter filter = new Filter(UsageRecord.CONSUMER_ID, QueryTest.getRandomUser()); - filters.add(filter); - - TemporalConstraint temporalConstraint = getTemporalConstraint(); - + protected List>> getClassesToTest(){ List>> classes = new ArrayList>>(); classes.add(AggregatedServiceUsageRecord.class); classes.add(AggregatedStorageUsageRecord.class); classes.add(AggregatedJobUsageRecord.class); + return classes; + } + + @Test + public void testGetNoContextTimeSeries() throws Exception { + + List filters = getFilters(); + + TemporalConstraint temporalConstraint = getTemporalConstraint(); + + List>> classes = getClassesToTest(); + for(Class> clz : classes) { logger.debug("----------------------------------------------------------------------"); logger.debug("Going to query {}\n", RecordToDBMapping.getRecordTypeByClass(clz)); + SortedMap timeseries = accountingPersistenceQueryPostgreSQL.getNoContextTimeSeries(clz, temporalConstraint, filters); for(Calendar c : timeseries.keySet()) { Info info = timeseries.get(c); @@ -96,16 +112,11 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest { @Test public void testTimeSeries() throws DuplicatedKeyFilterException, KeyException, ValueException, Exception { - List filters = new ArrayList<>(); - Filter filter = new Filter(UsageRecord.CONSUMER_ID, QueryTest.getRandomUser()); - filters.add(filter); + List filters = getFilters(); TemporalConstraint temporalConstraint = getTemporalConstraint(); - List>> classes = new ArrayList>>(); - classes.add(AggregatedServiceUsageRecord.class); - classes.add(AggregatedStorageUsageRecord.class); - classes.add(AggregatedJobUsageRecord.class); + List>> classes = getClassesToTest(); for(Class> clz : classes) { logger.debug("----------------------------------------------------------------------"); @@ -125,22 +136,16 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest { @Test public void testContextTimeSeries() throws DuplicatedKeyFilterException, KeyException, ValueException, Exception { - List filters = new ArrayList<>(); - Filter filter = new Filter(UsageRecord.CONSUMER_ID, QueryTest.getRandomUser()); - filters.add(filter); + List filters = getFilters(); TemporalConstraint temporalConstraint = getTemporalConstraint(); + List>> classes = getClassesToTest(); + List contexts = new ArrayList<>(); contexts.add("/gcube/devsec/devVRE"); contexts.add("/gcube/devNext/NextNext"); - - List>> classes = new ArrayList>>(); - classes.add(AggregatedServiceUsageRecord.class); - classes.add(AggregatedStorageUsageRecord.class); - classes.add(AggregatedJobUsageRecord.class); - for(Class> clz : classes) { logger.debug("----------------------------------------------------------------------"); logger.debug("Going to query {}\n", RecordToDBMapping.getRecordTypeByClass(clz)); @@ -162,26 +167,32 @@ public class AccountingPersistenceQueryPostgreSQLTest extends ContextTest { @Test public void testGetFilterValues() throws DuplicatedKeyFilterException, KeyException, ValueException, Exception { - List filters = new ArrayList<>(); - Filter filter = new Filter(UsageRecord.CONSUMER_ID, QueryTest.getRandomUser()); - filters.add(filter); + List filters = getFilters(); TemporalConstraint temporalConstraint = getTemporalConstraint(); - SortedSet numberedFilters = accountingPersistenceQueryPostgreSQL.getFilterValues(AggregatedServiceUsageRecord.class, temporalConstraint, filters, AggregatedServiceUsageRecord.CALLED_METHOD); - for(NumberedFilter numberedFilter : numberedFilters) { - logger.debug("{}", numberedFilter); - } + List>> classes = getClassesToTest(); - numberedFilters = accountingPersistenceQueryPostgreSQL.getFilterValues(AggregatedServiceUsageRecord.class, temporalConstraint, filters, AggregatedServiceUsageRecord.CALLED_METHOD); - for(NumberedFilter numberedFilter : numberedFilters) { - logger.debug("{}", numberedFilter); - } + Map>, String> keysToRequest = new HashMap<>(); + keysToRequest.put(AggregatedServiceUsageRecord.class, AggregatedServiceUsageRecord.CALLED_METHOD); + keysToRequest.put(AggregatedStorageUsageRecord.class, AggregatedStorageUsageRecord.RESOURCE_URI); + keysToRequest.put(AggregatedJobUsageRecord.class, AggregatedJobUsageRecord.JOB_NAME); + for(Class> clz : classes) { + logger.debug("----------------------------------------------------------------------"); + logger.debug("Going to query {}\n", RecordToDBMapping.getRecordTypeByClass(clz)); + + String key = keysToRequest.get(clz); - numberedFilters = accountingPersistenceQueryPostgreSQL.getFilterValues(AggregatedServiceUsageRecord.class, temporalConstraint, filters, AggregatedServiceUsageRecord.CALLED_METHOD, 3); - for(NumberedFilter numberedFilter : numberedFilters) { - logger.debug("{}", numberedFilter); + SortedSet numberedFilters = accountingPersistenceQueryPostgreSQL.getFilterValues(clz, temporalConstraint, filters, key); + for(NumberedFilter numberedFilter : numberedFilters) { + logger.debug("{}", numberedFilter); + } + + numberedFilters = accountingPersistenceQueryPostgreSQL.getFilterValues(clz, temporalConstraint, filters, key, 3); + for(NumberedFilter numberedFilter : numberedFilters) { + logger.debug("{}", numberedFilter); + } } } diff --git a/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/QueryTest.java b/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/QueryTest.java index f8f7bfe..3abf398 100644 --- a/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/QueryTest.java +++ b/src/test/java/org/gcube/accounting/analytics/persistence/postgresql/QueryTest.java @@ -29,7 +29,7 @@ public class QueryTest extends ContextTest { private static final Logger logger = LoggerFactory.getLogger(QueryTest.class); - public static final String[] users = new String[]{"luca.frosini", "lucio.lelii", "francesco.mangiacrapa", "fabio.sinibaldi", "massimiliano.assante", "giancarlo.panichi", "leonardo.candela", "pasquale.pagano"}; + public static final String[] users = new String[]{"luca.frosini", "lucio.lelii", "francesco.mangiacrapa", "fabio.sinibaldi", "massimiliano.assante", "giancarlo.panichi", "gianpaolo.coro"}; private static final Random random;