document-store-lib-postgresql/src/test/java/org/gcube/documentstore/persistence/PersistencePostgreSQLTest.java

117 lines
4.7 KiB
Java

/**
*
*/
package org.gcube.documentstore.persistence;
import org.gcube.accounting.datamodel.UsageRecord;
import org.gcube.accounting.datamodel.aggregation.AggregatedServiceUsageRecord;
import org.gcube.accounting.datamodel.aggregation.AggregatedStorageUsageRecord;
import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord;
import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecord;
import org.gcube.common.authorization.client.exceptions.ObjectNotFound;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class PersistencePostgreSQLTest extends ContextTest {
private static final Logger logger = LoggerFactory.getLogger(PersistencePostgreSQLTest.class);
/*
protected UsageRecord getTestServiceUsageRecord() throws Exception {
AggregatedServiceUsageRecord serviceUsageRecord = new AggregatedServiceUsageRecord();
serviceUsageRecord.setAggregated(true);
Calendar creationTime = Calendar.getInstance();
serviceUsageRecord.setCreationTime(creationTime);
Calendar startTime = Calendar.getInstance();
serviceUsageRecord.setStartTime(startTime);
serviceUsageRecord.setCalledMethod("createResource");
serviceUsageRecord.setCallerHost("localhost");
serviceUsageRecord.setHost("localhost");
serviceUsageRecord.setConsumerId("luca.frosini");
serviceUsageRecord.setCallerQualifier("TOKEN");
serviceUsageRecord.setDuration((long) 100);
serviceUsageRecord.setMaxInvocationTime((long) 150);
serviceUsageRecord.setMinInvocationTime((long) 50);
serviceUsageRecord.setOperationCount(9);
serviceUsageRecord.setOperationResult(OperationResult.SUCCESS);
serviceUsageRecord.setScope(ContextTest.getCurrentContextFullName());
Calendar endTime = Calendar.getInstance();
endTime.add(Calendar.MINUTE, 5);
serviceUsageRecord.setEndTime(endTime);
serviceUsageRecord.setServiceClass("information-system");
serviceUsageRecord.setServiceName("resource-registry");
return serviceUsageRecord;
}
*/
protected AggregatedServiceUsageRecord getTestAggregatedServiceUsageRecord() throws Exception {
ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord();
AggregatedServiceUsageRecord aggregatedServiceUsageRecord = new AggregatedServiceUsageRecord(serviceUsageRecord);
return aggregatedServiceUsageRecord;
}
protected AggregatedStorageUsageRecord getTestAggregatedStorageUsageRecord() throws Exception {
StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord();
AggregatedStorageUsageRecord aggregatedStorageUsageRecord = new AggregatedStorageUsageRecord(storageUsageRecord);
return aggregatedStorageUsageRecord;
}
@Test
public void testSQLStatementString() throws Exception {
UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord();
PersistencePostgreSQL persistencePostgreSQL = new PersistencePostgreSQL();
String sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
logger.debug(sql);
usageRecord = TestUsageRecord.createTestStorageUsageRecord();
sql = persistencePostgreSQL.getSQLInsertCommand(usageRecord);
logger.debug(sql);
}
@Test
public void persistenceIsPostgreSQL() throws ObjectNotFound, Exception {
logger.debug("Going to check if the Persistence is CouchBase");
PersistenceBackendFactory.setFallbackLocation(null);
String context = ContextTest.getCurrentContextFullName();
FallbackPersistenceBackend fallbackPersistenceBackend = PersistenceBackendFactory.createFallback(context);
PersistenceBackend persistenceBackend = PersistenceBackendFactory.rediscoverPersistenceBackend(fallbackPersistenceBackend, context);
Assert.assertTrue(persistenceBackend instanceof PersistencePostgreSQL);
}
@Test
public void testInsertRecords() throws ObjectNotFound, Exception {
PersistenceBackendFactory.setFallbackLocation(null);
String context = ContextTest.getCurrentContextFullName();
FallbackPersistenceBackend fallbackPersistenceBackend = PersistenceBackendFactory.createFallback(context);
PersistenceBackend persistenceBackend = PersistenceBackendFactory.rediscoverPersistenceBackend(fallbackPersistenceBackend, context);
Assert.assertTrue(persistenceBackend instanceof PersistencePostgreSQL);
PersistencePostgreSQL persistencePostgreSQL = (PersistencePostgreSQL) persistenceBackend;
persistencePostgreSQL.newConnection();
for(int i=0; i<10; i++) {
UsageRecord usageRecord = getTestAggregatedServiceUsageRecord();
persistencePostgreSQL.insert(usageRecord);
usageRecord = getTestAggregatedStorageUsageRecord();
persistencePostgreSQL.insert(usageRecord);
}
persistencePostgreSQL.commitAndClose();
}
}