2016-02-26 11:03:04 +01:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
package org.gcube.accounting.analytics.persistence.couchbase;
|
|
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.Calendar;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
2016-03-25 19:18:56 +01:00
|
|
|
import java.util.SortedSet;
|
2016-02-26 11:03:04 +01:00
|
|
|
|
|
|
|
import org.gcube.accounting.analytics.Filter;
|
|
|
|
import org.gcube.accounting.analytics.Info;
|
2016-03-25 19:18:56 +01:00
|
|
|
import org.gcube.accounting.analytics.NumberedFilter;
|
2016-02-26 11:03:04 +01:00
|
|
|
import org.gcube.accounting.analytics.TemporalConstraint;
|
|
|
|
import org.gcube.accounting.analytics.TemporalConstraint.AggregationMode;
|
2016-03-25 19:18:56 +01:00
|
|
|
import org.gcube.accounting.analytics.persistence.AccountingPersistenceBackendQueryConfiguration;
|
|
|
|
import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord;
|
2016-02-26 11:03:04 +01:00
|
|
|
import org.gcube.testutility.ScopedTest;
|
|
|
|
import org.json.JSONObject;
|
|
|
|
import org.junit.Before;
|
|
|
|
import org.junit.Test;
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
public class AccountingPersistenceQueryCouchBaseTest extends ScopedTest {
|
|
|
|
|
|
|
|
private static Logger logger = LoggerFactory.getLogger(AccountingPersistenceQueryCouchBaseTest.class);
|
|
|
|
|
2016-03-25 19:18:56 +01:00
|
|
|
protected AccountingPersistenceQueryCouchBase accountingPersistenceQueryCouchBase;
|
2016-02-26 11:03:04 +01:00
|
|
|
|
|
|
|
public class ExtendedInfo extends Info {
|
|
|
|
|
|
|
|
protected String key;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return the key
|
|
|
|
*/
|
|
|
|
public String getKey() {
|
|
|
|
return key;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param key the key to set
|
|
|
|
*/
|
|
|
|
public void setKey(String key) {
|
|
|
|
this.key = key;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ExtendedInfo(String key, Calendar calendar, JSONObject value){
|
|
|
|
super(calendar, value);
|
|
|
|
this.key = key;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String toString(){
|
|
|
|
String info = String .format("Key : %s, %s ", key, super.toString());
|
|
|
|
return info;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Before
|
|
|
|
public void before() throws Exception{
|
|
|
|
super.before();
|
|
|
|
AccountingPersistenceBackendQueryConfiguration configuration = new
|
|
|
|
AccountingPersistenceBackendQueryConfiguration(AccountingPersistenceQueryCouchBase.class);
|
|
|
|
accountingPersistenceQueryCouchBase = new AccountingPersistenceQueryCouchBase();
|
|
|
|
accountingPersistenceQueryCouchBase.prepareConnection(configuration);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void printMap(Map<Calendar, Info> map){
|
|
|
|
for(Info info : map.values()){
|
|
|
|
logger.debug("{}", info);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void test() throws Exception {
|
|
|
|
Calendar startTime = Calendar.getInstance();
|
2016-03-25 19:18:56 +01:00
|
|
|
startTime.set(2016, Calendar.JANUARY, 1);
|
2016-02-26 11:03:04 +01:00
|
|
|
Calendar endTime = Calendar.getInstance();
|
|
|
|
List<Filter> filters = new ArrayList<Filter>();
|
2016-03-25 19:18:56 +01:00
|
|
|
|
|
|
|
Filter filter =
|
|
|
|
new Filter(AggregatedStorageUsageRecord.CONSUMER_ID, "gianpaolo.coro");
|
2016-02-26 11:03:04 +01:00
|
|
|
filters.add(filter);
|
|
|
|
|
2016-03-25 19:18:56 +01:00
|
|
|
TemporalConstraint temporalConstraint =
|
|
|
|
new TemporalConstraint(startTime.getTimeInMillis(),
|
|
|
|
endTime.getTimeInMillis(), AggregationMode.DAILY);
|
|
|
|
|
|
|
|
Class<AggregatedStorageUsageRecord> clz =
|
|
|
|
AggregatedStorageUsageRecord.class;
|
2016-02-26 11:03:04 +01:00
|
|
|
|
2016-03-25 19:18:56 +01:00
|
|
|
SortedSet<NumberedFilter> set =
|
|
|
|
accountingPersistenceQueryCouchBase.getNextPossibleValues(
|
|
|
|
clz, temporalConstraint, filters,
|
|
|
|
AggregatedStorageUsageRecord.OPERATION_TYPE, null);
|
|
|
|
|
|
|
|
logger.debug("{}", set);
|
|
|
|
|
2016-02-26 11:03:04 +01:00
|
|
|
}
|
|
|
|
}
|