/** * */ package org.gcube.accounting.datamodel.basetypes; import java.net.URI; import java.net.URISyntaxException; import org.gcube.accounting.datamodel.UsageRecord.OperationResult; import org.gcube.accounting.datamodel.usagerecords.JobUsageRecord; import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord; import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecord; import org.gcube.accounting.exception.InvalidValueException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ * */ public class TestUsageRecord { private static final Logger logger = LoggerFactory.getLogger(TestUsageRecord.class); public final static String TEST_CONSUMER_ID = "name.surname"; public final static String TEST_SCOPE = "/infrastructure/vo"; public final static String TEST_SERVICE_CLASS = "TestServiceClass"; public final static String TEST_SERVICE_NAME = "TestServiceName"; public final static String TEST_CALLER_HOST = "remotehost"; public final static String TEST_HOST = "localhost"; public final static String TEST_PROPERTY_NAME = "TestPropertyName"; public final static String TEST_PROPERTY_VALUE = "TestPropertyValue"; private final static long MIN_DURATION = 60; // millisec private final static long MAX_DURATION = 1000; // millisec /** * Generate A Random long in a range between min and max. * This function is internally used to set random duration. * @return the generated random long */ public static long generateRandomLong(long min, long max){ return min + (int)(Math.random() * ((max - min) + 1)); } /** * Create a valid #ServiceUsageRecord * @return the created #ServiceUsageRecord */ public static ServiceUsageRecord createTestServiceUsageRecord() { ServiceUsageRecord usageRecord = new ServiceUsageRecord(); try { usageRecord.setConsumerId(TEST_CONSUMER_ID); usageRecord.setScope(TEST_SCOPE); usageRecord.setOperationResult(OperationResult.SUCCESS); usageRecord.setCallerHost(TEST_CALLER_HOST); usageRecord.setHost(TEST_HOST); usageRecord.setServiceClass(TEST_SERVICE_CLASS); usageRecord.setServiceName(TEST_SERVICE_NAME); usageRecord.setDuration(generateRandomLong(MIN_DURATION, MAX_DURATION)); } catch (InvalidValueException e) { logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause()); } return usageRecord; } public final static String TEST_RESOUCE_OWNER = "resource.owner"; public final static String TEST_RESOUCE_SCOPE = TEST_SCOPE; public final static String TEST_RESOURCE_URI = "testprotocol://objectURI"; public final static String TEST_PROVIDER_URI = "testprotocol://providerURI"; private final static long MIN_DATA_VOLUME = 1024; private final static long MAX_DATA_VOLUME = 10240; /** * Create a valid #StorageUsageRecord * @return the created #StorageUsageRecord */ public static StorageUsageRecord createTestStorageUsageRecord() { StorageUsageRecord usageRecord = new StorageUsageRecord(); try { usageRecord.setConsumerId(TEST_CONSUMER_ID); usageRecord.setScope(TEST_SCOPE); usageRecord.setOperationResult(OperationResult.SUCCESS); usageRecord.setResourceOwner(TEST_RESOUCE_OWNER); usageRecord.setResourceScope(TEST_RESOUCE_SCOPE); usageRecord.setResourceURI(new URI(TEST_RESOURCE_URI)); usageRecord.setProviderURI(new URI(TEST_PROVIDER_URI)); usageRecord.setOperationType(StorageUsageRecord.OperationType.READ); usageRecord.setDataType(StorageUsageRecord.DataType.STORAGE); usageRecord.setDataVolume(generateRandomLong(MIN_DATA_VOLUME, MAX_DATA_VOLUME)); usageRecord.setQualifier("image/png"); } catch (InvalidValueException | URISyntaxException e) { logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause()); } return usageRecord; } /** * @return */ public static JobUsageRecord createTestJobUsageRecord() { JobUsageRecord usageRecord = new JobUsageRecord(); try { usageRecord.setConsumerId(TEST_CONSUMER_ID); usageRecord.setScope(TEST_SCOPE); usageRecord.setOperationResult(OperationResult.SUCCESS); } catch (InvalidValueException e) { logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause()); } return usageRecord; } }