From d106fe5b4c2065d4e9eacb085940aec5f063067c Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Thu, 28 Jan 2016 17:29:11 +0000 Subject: [PATCH] Fixing internals git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@122626 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../datamodel/BasicUsageRecord.java | 2 +- .../aggregation/AggregatedJobUsageRecord.java | 2 +- .../AggregatedPortletUsageRecord.java | 2 +- .../AggregatedServiceUsageRecord.java | 9 +++- .../AggregatedStorageUsageRecord.java | 2 +- .../AggregatedTaskUsageRecord.java | 2 +- .../MoveToConsumerIdAction.java | 2 +- .../MoveToOperationResultAction.java | 2 +- .../MoveToRecordTypeAction.java | 2 +- .../MoveToTaskEndTimeAction.java | 4 +- .../MoveToTaskStartTimeAction.java | 4 +- .../basetypes/AbstractJobUsageRecord.java | 11 ++-- .../basetypes/AbstractPortletUsageRecord.java | 2 +- .../basetypes/AbstractServiceUsageRecord.java | 2 +- .../basetypes/AbstractStorageUsageRecord.java | 2 +- .../basetypes/AbstractTaskUsageRecord.java | 23 ++++---- .../CalculateJobWallDurationAction.java | 2 +- .../CalculateTaskWallDurationAction.java | 4 +- .../datamodel/basetypes/TestUsageRecord.java | 31 +---------- .../DeprecatedWarningAction.java | 2 +- .../usagerecords/JobUsageRecord.java | 2 +- .../usagerecords/PortletUsageRecord.java | 2 +- .../usagerecords/ServiceUsageRecord.java | 2 +- .../usagerecords/StorageUsageRecord.java | 2 +- .../usagerecords/TaskUsageRecord.java | 2 +- .../validators/FixDataVolumeSignAction.java | 2 +- .../validators/ValidDataTypeValidator.java | 2 +- .../validators/ValidIPValidator.java | 2 +- .../validators/ValidMapValidator.java | 2 +- .../ValidOperationResultValidator.java | 2 +- .../ValidOperationTypeValidator.java | 2 +- .../validators/ValidURIValidator.java | 2 +- .../accounting/datamodel/UsageRecordTest.java | 3 +- .../AggregatedServiceUsageRecordTest.java | 1 - .../AggregatedStorageUsageRecordTest.java | 3 -- .../usagerecords/JobUsageRecordTest.java | 53 ++++++++++++++----- .../usagerecords/ServiceUsageRecordTest.java | 51 +++++++++++++----- .../usagerecords/StorageUsageRecordTest.java | 48 ++++++++--------- .../usagerecords/TaskUsageRecordTest.java | 47 ++++++++++++---- .../NotEmptyIfNotNullValidatorTest.java | 8 +-- .../aggregation/AggregationSchedulerTest.java | 2 - 41 files changed, 202 insertions(+), 150 deletions(-) diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java index 6ad114f..0307340 100644 --- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java @@ -58,7 +58,7 @@ public abstract class BasicUsageRecord extends AbstractRecord implements UsageRe super(); } - public BasicUsageRecord(Map> properties) throws InvalidValueException { + public BasicUsageRecord(Map properties) throws InvalidValueException { super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java index 7f43e5c..d3421ee 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedJobUsageRecord.java @@ -30,7 +30,7 @@ public class AggregatedJobUsageRecord extends AbstractJobUsageRecord implements super(); } - public AggregatedJobUsageRecord(Map> properties) throws InvalidValueException{ + public AggregatedJobUsageRecord(Map properties) throws InvalidValueException{ super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedPortletUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedPortletUsageRecord.java index 47ab000..99b8953 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedPortletUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedPortletUsageRecord.java @@ -31,7 +31,7 @@ public class AggregatedPortletUsageRecord extends AbstractPortletUsageRecord imp super(); } - public AggregatedPortletUsageRecord(Map> properties) throws InvalidValueException{ + public AggregatedPortletUsageRecord(Map properties) throws InvalidValueException{ super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java index ae132b4..a8a3bf5 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java @@ -42,7 +42,7 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp super(); } - public AggregatedServiceUsageRecord(Map> properties) throws InvalidValueException{ + public AggregatedServiceUsageRecord(Map properties) throws InvalidValueException{ super(properties); } @@ -136,7 +136,6 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp throws NotAggregatableRecordsExceptions { try { AggregationUtility aggregationUtility = new AggregationUtility(this); - aggregationUtility.aggregate(record); setDuration(durationWeightedAverage(record)); @@ -149,6 +148,12 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp if(min < this.getMinInvocationTime()){ this.setMinInvocationTime(min); } + + // This statement is at the end because the aggregate method + // sum operation counts. If this statement is moved at the + // beginning the weighted average is not calculated correctly + aggregationUtility.aggregate(record); + } catch(NotAggregatableRecordsExceptions e){ throw e; } catch(Exception ex){ diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecord.java index ff457f5..737c2f5 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecord.java @@ -38,7 +38,7 @@ public class AggregatedStorageUsageRecord extends AbstractStorageUsageRecord imp super(); } - public AggregatedStorageUsageRecord(Map> properties) throws InvalidValueException{ + public AggregatedStorageUsageRecord(Map properties) throws InvalidValueException{ super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedTaskUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedTaskUsageRecord.java index f30ba40..30c9ddd 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedTaskUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedTaskUsageRecord.java @@ -30,7 +30,7 @@ public class AggregatedTaskUsageRecord extends AbstractTaskUsageRecord implement super(); } - public AggregatedTaskUsageRecord(Map> properties) throws InvalidValueException{ + public AggregatedTaskUsageRecord(Map properties) throws InvalidValueException{ super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java index 24d34db..fb2404b 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToConsumerIdAction.java @@ -14,7 +14,7 @@ import org.gcube.documentstore.records.implementation.validations.validators.Not public class MoveToConsumerIdAction implements FieldAction { @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { NotEmptyIfNotNullValidator neinnv = new NotEmptyIfNotNullValidator(); value = neinnv.validate(key, value, record); record.setResourceProperty(UsageRecord.CONSUMER_ID, (String) value); diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java index f57ad79..c99e47e 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToOperationResultAction.java @@ -22,7 +22,7 @@ public class MoveToOperationResultAction implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { ValidOperationResultValidator vorv = new ValidOperationResultValidator(); value = vorv.validate(key, value, record); record.setResourceProperty(UsageRecord.OPERATION_RESULT, (OperationResult) value); diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java index a539c35..37bae0e 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToRecordTypeAction.java @@ -12,7 +12,7 @@ import org.gcube.documentstore.records.implementation.FieldAction; public class MoveToRecordTypeAction implements FieldAction { @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { if(value instanceof String && value!= null && !((String) value).isEmpty()){ record.setResourceProperty(Record.RECORD_TYPE, value); } diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java index 3cdfbce..be35070 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskEndTimeAction.java @@ -20,8 +20,8 @@ public class MoveToTaskEndTimeAction implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, - Comparable value, Record record) + public Serializable validate(String key, + Serializable value, Record record) throws InvalidValueException { record.setResourceProperty(AbstractTaskUsageRecord.TASK_END_TIME, value); return null; diff --git a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java index 3dbd902..a27174c 100644 --- a/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/backwardcompatibility/MoveToTaskStartTimeAction.java @@ -20,8 +20,8 @@ public class MoveToTaskStartTimeAction implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, - Comparable value, Record record) + public Serializable validate(String key, + Serializable value, Record record) throws InvalidValueException { record.setResourceProperty(AbstractTaskUsageRecord.TASK_START_TIME, value); return null; diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java index 6cbacab..ca34abd 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractJobUsageRecord.java @@ -34,19 +34,19 @@ public abstract class AbstractJobUsageRecord extends BasicUsageRecord { @NotEmptyIfNotNull public static final String JOB_QUALIFIER = "jobQualifier"; - @RequiredField @ValidLong @CalculateJobWallDuration + @RequiredField @ValidLong public static final String JOB_START_TIME = "jobStartTime"; - @RequiredField @ValidLong @CalculateJobWallDuration + @RequiredField @ValidLong public static final String JOB_END_TIME = "jobEndTime"; - @RequiredField @ValidLong @CalculateJobWallDuration @ComputedField - protected static final String WALL_DURATION = "_wallDuration"; + @ComputedField(action=CalculateJobWallDurationAction.class) @ValidLong + public static final String WALL_DURATION = "_wallDuration"; public AbstractJobUsageRecord(){ super(); } - public AbstractJobUsageRecord(Map> properties) throws InvalidValueException{ + public AbstractJobUsageRecord(Map properties) throws InvalidValueException{ super(properties); } @@ -114,6 +114,7 @@ public abstract class AbstractJobUsageRecord extends BasicUsageRecord { long endTime = (Long) this.resourceProperties.get(JOB_END_TIME); long startTime = (Long) this.resourceProperties.get(JOB_START_TIME); long wallDuration = endTime - startTime; + setResourceProperty(AbstractJobUsageRecord.WALL_DURATION, wallDuration); return wallDuration; }catch(Exception e){ throw new InvalidValueException(String.format("To calculate Wall Duration both %s and %s must be set", diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractPortletUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractPortletUsageRecord.java index 22e2443..1e3b07d 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractPortletUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractPortletUsageRecord.java @@ -38,7 +38,7 @@ public abstract class AbstractPortletUsageRecord extends BasicUsageRecord { super(); } - public AbstractPortletUsageRecord(Map> properties) throws InvalidValueException { + public AbstractPortletUsageRecord(Map properties) throws InvalidValueException { super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java index d946b83..f4079fe 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractServiceUsageRecord.java @@ -63,7 +63,7 @@ public abstract class AbstractServiceUsageRecord extends BasicUsageRecord { super(); } - public AbstractServiceUsageRecord(Map> properties) throws InvalidValueException { + public AbstractServiceUsageRecord(Map properties) throws InvalidValueException { super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java index 8ac8ed1..eb9efba 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractStorageUsageRecord.java @@ -89,7 +89,7 @@ public abstract class AbstractStorageUsageRecord extends BasicUsageRecord { super(); } - public AbstractStorageUsageRecord(Map> properties) throws InvalidValueException { + public AbstractStorageUsageRecord(Map properties) throws InvalidValueException { super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java index 5131123..5af5361 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/AbstractTaskUsageRecord.java @@ -5,6 +5,7 @@ package org.gcube.accounting.datamodel.basetypes; import java.io.Serializable; import java.util.Calendar; +import java.util.HashMap; import java.util.Map; import org.gcube.accounting.datamodel.BasicUsageRecord; @@ -36,22 +37,21 @@ public abstract class AbstractTaskUsageRecord extends BasicUsageRecord { @NotEmptyIfNotNull public static final String REF_HOSTING_NODE_ID = "refHostingNodeId"; - @RequiredField @ValidLong @CalculateTaskWallDuration + @RequiredField @ValidLong public static final String TASK_START_TIME = "taskStartTime"; - @RequiredField @ValidLong @CalculateTaskWallDuration + @RequiredField @ValidLong public static final String TASK_END_TIME = "taskEndTime"; + @ComputedField(action=CalculateTaskWallDurationAction.class) @ValidLong + public static final String WALL_DURATION = "_wallDuration"; - @RequiredField @ValidLong @CalculateTaskWallDuration @ComputedField - protected static final String WALL_DURATION = "wallDuration"; - - @RequiredField //@ValidMap + @NotEmptyIfNotNull public static final String INPUT_PARAMETERS = "inputParameters"; public AbstractTaskUsageRecord(){ super(); } - public AbstractTaskUsageRecord(Map> properties) throws InvalidValueException { + public AbstractTaskUsageRecord(Map properties) throws InvalidValueException { super(properties); } @@ -155,13 +155,12 @@ public abstract class AbstractTaskUsageRecord extends BasicUsageRecord { } @SuppressWarnings("unchecked") - public Map getInputParameters(){ - return (Map) getResourceProperty(INPUT_PARAMETERS); + public Map getInputParameters(){ + return (HashMap) getResourceProperty(INPUT_PARAMETERS); } - @SuppressWarnings("unchecked") - public void setInputParameters(Map inputParameters) throws InvalidValueException{ - setResourceProperty(INPUT_PARAMETERS, (Comparable) inputParameters); + public void setInputParameters(HashMap inputParameters) throws InvalidValueException{ + setResourceProperty(INPUT_PARAMETERS, inputParameters); } } diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateJobWallDurationAction.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateJobWallDurationAction.java index 3339180..7cc46f8 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateJobWallDurationAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateJobWallDurationAction.java @@ -16,7 +16,7 @@ public class CalculateJobWallDurationAction implements FieldAction { private static final Logger logger = LoggerFactory.getLogger(CalculateJobWallDurationAction.class); @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { try { long wallDuration = ((AbstractJobUsageRecord) record).calculateWallDuration(); if(key.compareTo(AbstractJobUsageRecord.WALL_DURATION)==0){ diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateTaskWallDurationAction.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateTaskWallDurationAction.java index 7d5baac..89f9847 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateTaskWallDurationAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/CalculateTaskWallDurationAction.java @@ -16,13 +16,15 @@ public class CalculateTaskWallDurationAction implements FieldAction { private static final Logger logger = LoggerFactory.getLogger(CalculateTaskWallDurationAction.class); @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { try { long wallDuration = ((AbstractTaskUsageRecord) record).calculateWallDuration(); if(key.compareTo(AbstractTaskUsageRecord.WALL_DURATION)==0){ logger.warn("{} is automatically computed using {} and {}. This invocation has the only effect of recalculating the value. Any provided value is ignored.", AbstractTaskUsageRecord.WALL_DURATION, AbstractTaskUsageRecord.TASK_START_TIME, AbstractTaskUsageRecord.TASK_END_TIME); value = wallDuration; + }else{ + record.setResourceProperty(AbstractTaskUsageRecord.WALL_DURATION, wallDuration); } }catch(InvalidValueException e){ } return value; diff --git a/src/main/java/org/gcube/accounting/datamodel/basetypes/TestUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/basetypes/TestUsageRecord.java index e85d48f..03da5c7 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/TestUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/TestUsageRecord.java @@ -8,7 +8,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Calendar; import java.util.HashMap; -import java.util.Map; import java.util.UUID; import org.gcube.accounting.datamodel.UsageRecord.OperationResult; @@ -71,12 +70,6 @@ public class TestUsageRecord { */ public static ServiceUsageRecord createTestServiceUsageRecordExplicitScope() throws InvalidValueException { ServiceUsageRecord usageRecord = createTestServiceUsageRecordAutomaticScope(); - try { - usageRecord.setScope(TEST_SCOPE); - } catch (InvalidValueException e) { - logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e); - throw e; - } return usageRecord; } @@ -123,12 +116,6 @@ public class TestUsageRecord { */ public static StorageUsageRecord createTestStorageUsageRecordExplicitScope() { StorageUsageRecord usageRecord = createTestStorageUsageRecordAutomaticScope(); - try { - usageRecord.setScope(TEST_SCOPE); - } catch (InvalidValueException e) { - logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e); - throw new RuntimeException(e); - } return usageRecord; } @@ -169,14 +156,7 @@ public class TestUsageRecord { * @return */ public static JobUsageRecord createTestJobUsageRecordExplicitScope() { - JobUsageRecord usageRecord = createTestJobUsageRecordAutomaticScope(); - try { - usageRecord.setScope(TEST_SCOPE); - } catch (InvalidValueException e) { - logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e); - throw new RuntimeException(e); - } return usageRecord; } @@ -217,14 +197,7 @@ public class TestUsageRecord { * @return */ public static TaskUsageRecord createTestTaskUsageRecordExplicitScope() { - TaskUsageRecord usageRecord = createTestTaskUsageRecordAutomaticScope(); - try { - usageRecord.setScope(TEST_SCOPE); - } catch (InvalidValueException e) { - logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Setting the Scope", e); - throw new RuntimeException(e); - } return usageRecord; } @@ -252,11 +225,11 @@ public class TestUsageRecord { usageRecord.setTaskStartTime(startTime); usageRecord.setTaskEndTime(endTime); - Map inputParameters = new HashMap<>(); + HashMap inputParameters = new HashMap<>(); inputParameters.put(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE); inputParameters.put(TEST_PROPERTY_VALUE, TEST_PROPERTY_NAME); - HashMap> parameter = new HashMap<>(); + HashMap parameter = new HashMap<>(); parameter.put(TEST_PROPERTY_NAME, TEST_PROPERTY_VALUE); parameter.put(TEST_PROPERTY_VALUE, TEST_PROPERTY_NAME); diff --git a/src/main/java/org/gcube/accounting/datamodel/deprecationmanagement/DeprecatedWarningAction.java b/src/main/java/org/gcube/accounting/datamodel/deprecationmanagement/DeprecatedWarningAction.java index fcb84c1..5c8730a 100644 --- a/src/main/java/org/gcube/accounting/datamodel/deprecationmanagement/DeprecatedWarningAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/deprecationmanagement/DeprecatedWarningAction.java @@ -23,7 +23,7 @@ public class DeprecatedWarningAction implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { logger.trace("The field {} is deprecated for {}. Anyway the field will be included in the SingleUsageRecord. The field can be lost during aggregation.", key, record.getClass().getSimpleName()); return value; diff --git a/src/main/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecord.java index c979ed4..cea3e3f 100644 --- a/src/main/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecord.java @@ -17,7 +17,7 @@ public class JobUsageRecord extends AbstractJobUsageRecord { super(); } - public JobUsageRecord(Map> properties) throws InvalidValueException{ + public JobUsageRecord(Map properties) throws InvalidValueException{ super(properties); } } diff --git a/src/main/java/org/gcube/accounting/datamodel/usagerecords/PortletUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/usagerecords/PortletUsageRecord.java index 8cc3ab2..c01e175 100644 --- a/src/main/java/org/gcube/accounting/datamodel/usagerecords/PortletUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/usagerecords/PortletUsageRecord.java @@ -17,7 +17,7 @@ public class PortletUsageRecord extends AbstractPortletUsageRecord { super(); } - public PortletUsageRecord(Map> properties) throws InvalidValueException { + public PortletUsageRecord(Map properties) throws InvalidValueException { super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecord.java index 442d8ef..26a227f 100644 --- a/src/main/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecord.java @@ -17,7 +17,7 @@ public class ServiceUsageRecord extends AbstractServiceUsageRecord { super(); } - public ServiceUsageRecord(Map> properties) throws InvalidValueException { + public ServiceUsageRecord(Map properties) throws InvalidValueException { super(properties); } } diff --git a/src/main/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecord.java index b24f4b1..62196fc 100644 --- a/src/main/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecord.java @@ -17,7 +17,7 @@ public class StorageUsageRecord extends AbstractStorageUsageRecord { super(); } - public StorageUsageRecord(Map> properties) throws InvalidValueException { + public StorageUsageRecord(Map properties) throws InvalidValueException { super(properties); } diff --git a/src/main/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecord.java index e37344f..6f7d15e 100644 --- a/src/main/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecord.java @@ -17,7 +17,7 @@ public class TaskUsageRecord extends AbstractTaskUsageRecord { super(); } - public TaskUsageRecord(Map> properties) throws InvalidValueException { + public TaskUsageRecord(Map properties) throws InvalidValueException { super(properties); } } diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/FixDataVolumeSignAction.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/FixDataVolumeSignAction.java index 37d7398..e162a70 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/FixDataVolumeSignAction.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/FixDataVolumeSignAction.java @@ -47,7 +47,7 @@ public class FixDataVolumeSignAction implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { try { if(key.compareTo(AbstractStorageUsageRecord.DATA_VOLUME)==0){ diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidDataTypeValidator.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidDataTypeValidator.java index 84a2cb6..85b8f8d 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidDataTypeValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidDataTypeValidator.java @@ -16,7 +16,7 @@ public class ValidDataTypeValidator implements FieldAction { */ @SuppressWarnings("rawtypes") @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { if(value instanceof DataType){ return value; } diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidIPValidator.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidIPValidator.java index 00a6d39..a5c0433 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidIPValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidIPValidator.java @@ -47,7 +47,7 @@ public class ValidIPValidator implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { try { if(isIpAddress((String) value)){ return (String) value; diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidMapValidator.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidMapValidator.java index 2b94a3c..c2c9f9d 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidMapValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidMapValidator.java @@ -15,7 +15,7 @@ public class ValidMapValidator implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { try { if(value instanceof Map){ diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationResultValidator.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationResultValidator.java index c42de56..66732e2 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationResultValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationResultValidator.java @@ -16,7 +16,7 @@ public class ValidOperationResultValidator implements FieldAction { */ @SuppressWarnings("rawtypes") @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { if(value instanceof OperationResult){ return value; } diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationTypeValidator.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationTypeValidator.java index 2120085..ffbf1b5 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationTypeValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidOperationTypeValidator.java @@ -17,7 +17,7 @@ public class ValidOperationTypeValidator implements FieldAction { */ @SuppressWarnings("rawtypes") @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { if(value instanceof OperationType){ return value; } diff --git a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidURIValidator.java b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidURIValidator.java index a636056..9fb186d 100644 --- a/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidURIValidator.java +++ b/src/main/java/org/gcube/accounting/datamodel/validations/validators/ValidURIValidator.java @@ -15,7 +15,7 @@ public class ValidURIValidator implements FieldAction { * {@inheritDoc} */ @Override - public Comparable validate(String key, Comparable value, Record record) throws InvalidValueException { + public Serializable validate(String key, Serializable value, Record record) throws InvalidValueException { try { if(value instanceof URI){ return value; diff --git a/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java index 184e10d..4fef731 100644 --- a/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java @@ -3,7 +3,6 @@ */ package org.gcube.accounting.datamodel; -import org.gcube.accounting.datamodel.UsageRecord; import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.RecordUtility; @@ -23,7 +22,7 @@ public class UsageRecordTest { Assert.assertEquals(0, usageRecord.compareTo(ur)); Assert.assertEquals(0, ur.compareTo(usageRecord)); } - + @Test public void testCompareToEqualsObject() throws Exception { UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); diff --git a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java index 4e7f791..888ceb3 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java @@ -22,7 +22,6 @@ import org.slf4j.LoggerFactory; */ public class AggregatedServiceUsageRecordTest { - private static Logger logger = LoggerFactory.getLogger(AggregatedServiceUsageRecordTest.class); @Test diff --git a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java index 5adf125..84ec634 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java @@ -20,11 +20,8 @@ import org.slf4j.LoggerFactory; */ public class AggregatedStorageUsageRecordTest { - private static Logger logger = LoggerFactory.getLogger(AggregatedStorageUsageRecordTest.class); - - @Test public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java index 6581ca0..583e9e8 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/JobUsageRecordTest.java @@ -12,15 +12,33 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; +import org.junit.After; import org.junit.Assert; +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 JobUsageRecordTest { - + + private static Logger logger = LoggerFactory.getLogger(JobUsageRecordTest.class); + + @Before + public void before(){ + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE); + } + + @After + public void after(){ + ScopeProvider.instance.reset(); + logger.trace("Scope reset"); + } + public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); expectedRequiredFields.add(Record.ID); @@ -32,40 +50,49 @@ public class JobUsageRecordTest { expectedRequiredFields.add(AbstractJobUsageRecord.JOB_ID); expectedRequiredFields.add(AbstractJobUsageRecord.JOB_START_TIME); expectedRequiredFields.add(AbstractJobUsageRecord.JOB_END_TIME); + return expectedRequiredFields; } @Test(expected=InvalidValueException.class) public void scopeNotSetValidationError() throws InvalidValueException { ScopeProvider.instance.reset(); - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); - jobUsageRecord.validate(); + JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFields() throws InvalidValueException{ - ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); + JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); + Set expectedRequiredFields = getExpectedRequiredFields(); - Set gotRequiredFields = jobUsageRecord.getRequiredFields(); - + logger.debug("Expected Required Fields : {}", expectedRequiredFields); + + Set gotRequiredFields = usageRecord.getRequiredFields(); + logger.debug("Got Required Fields : {}", gotRequiredFields); + Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - jobUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{ - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); - jobUsageRecord.setScope(TestUsageRecord.TEST_SCOPE); - Set expectedRequiredFields = getExpectedRequiredFields(); + ScopeProvider.instance.reset(); + JobUsageRecord usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); + Assert.assertTrue(usageRecord.getScope()==null); + usageRecord.setScope(TestUsageRecord.TEST_SCOPE); - Set gotRequiredFields = jobUsageRecord.getRequiredFields(); + Set expectedRequiredFields = getExpectedRequiredFields(); + Set gotRequiredFields = usageRecord.getRequiredFields(); Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - jobUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } } diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java index a229d93..89c6a59 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java @@ -12,8 +12,12 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; +import org.junit.After; import org.junit.Assert; +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/ @@ -21,6 +25,20 @@ import org.junit.Test; */ public class ServiceUsageRecordTest { + private static Logger logger = LoggerFactory.getLogger(ServiceUsageRecordTest.class); + + @Before + public void before(){ + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE); + } + + @After + public void after(){ + ScopeProvider.instance.reset(); + logger.trace("Scope reset"); + } + public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); expectedRequiredFields.add(Record.ID); @@ -41,34 +59,43 @@ public class ServiceUsageRecordTest { @Test(expected=InvalidValueException.class) public void scopeNotSetValidationError() throws InvalidValueException { ScopeProvider.instance.reset(); - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); - serviceUsageRecord.validate(); + ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFields() throws InvalidValueException{ - ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + Set expectedRequiredFields = getExpectedRequiredFields(); - Set gotRequiredFields = serviceUsageRecord.getRequiredFields(); - + logger.debug("Expected Required Fields : {}", expectedRequiredFields); + + Set gotRequiredFields = usageRecord.getRequiredFields(); + logger.debug("Got Required Fields : {}", gotRequiredFields); + Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - serviceUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{ - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); - serviceUsageRecord.setScope(TestUsageRecord.TEST_SCOPE); - Set expectedRequiredFields = getExpectedRequiredFields(); + ScopeProvider.instance.reset(); + ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + Assert.assertTrue(usageRecord.getScope()==null); + usageRecord.setScope(TestUsageRecord.TEST_SCOPE); - Set gotRequiredFields = serviceUsageRecord.getRequiredFields(); + Set expectedRequiredFields = getExpectedRequiredFields(); + Set gotRequiredFields = usageRecord.getRequiredFields(); Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - serviceUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } + } diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java index f67b182..4106351 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/StorageUsageRecordTest.java @@ -7,7 +7,7 @@ import java.util.HashSet; import java.util.Set; import org.gcube.accounting.datamodel.UsageRecord; -import org.gcube.accounting.datamodel.basetypes.AbstractJobUsageRecord; +import org.gcube.accounting.datamodel.basetypes.AbstractStorageUsageRecord; import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.documentstore.exception.InvalidValueException; @@ -47,59 +47,57 @@ public class StorageUsageRecordTest { expectedRequiredFields.add(UsageRecord.RECORD_TYPE); expectedRequiredFields.add(UsageRecord.SCOPE); expectedRequiredFields.add(UsageRecord.OPERATION_RESULT); - expectedRequiredFields.add(AbstractJobUsageRecord.JOB_ID); - expectedRequiredFields.add(AbstractJobUsageRecord.JOB_QUALIFIER); - expectedRequiredFields.add(AbstractJobUsageRecord.JOB_NAME); - expectedRequiredFields.add(AbstractJobUsageRecord.JOB_START_TIME); - expectedRequiredFields.add(AbstractJobUsageRecord.JOB_END_TIME); + expectedRequiredFields.add(AbstractStorageUsageRecord.RESOURCE_OWNER); + expectedRequiredFields.add(AbstractStorageUsageRecord.RESOURCE_SCOPE); + expectedRequiredFields.add(AbstractStorageUsageRecord.RESOURCE_URI); + expectedRequiredFields.add(AbstractStorageUsageRecord.PROVIDER_URI); + expectedRequiredFields.add(AbstractStorageUsageRecord.OPERATION_TYPE); + expectedRequiredFields.add(AbstractStorageUsageRecord.DATA_TYPE); + expectedRequiredFields.add(AbstractStorageUsageRecord.DATA_VOLUME); + return expectedRequiredFields; } @Test(expected=InvalidValueException.class) public void scopeNotSetValidationError() throws InvalidValueException { ScopeProvider.instance.reset(); - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); - jobUsageRecord.validate(); + StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFields() throws InvalidValueException{ - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); + StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); Set expectedRequiredFields = getExpectedRequiredFields(); - logger.debug("Expected Required Fields : {}", expectedRequiredFields); - Set gotRequiredFields = jobUsageRecord.getRequiredFields(); - + Set gotRequiredFields = usageRecord.getRequiredFields(); logger.debug("Got Required Fields : {}", gotRequiredFields); Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - jobUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{ ScopeProvider.instance.reset(); - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); - Assert.assertTrue(jobUsageRecord.getScope()==null); - jobUsageRecord.setScope(TestUsageRecord.TEST_SCOPE); + StorageUsageRecord usageRecord = TestUsageRecord.createTestStorageUsageRecordExplicitScope(); + Assert.assertTrue(usageRecord.getScope()==null); + usageRecord.setScope(TestUsageRecord.TEST_SCOPE); Set expectedRequiredFields = getExpectedRequiredFields(); - Set gotRequiredFields = jobUsageRecord.getRequiredFields(); + Set gotRequiredFields = usageRecord.getRequiredFields(); Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - jobUsageRecord.validate(); - } - - @Test - public void testWallDuration() throws InvalidValueException{ - JobUsageRecord jobUsageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); - Assert.assertTrue(jobUsageRecord.getWallDuration()==(TestUsageRecord.HALF_DURATION*2)); - jobUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } + } diff --git a/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java index 302b444..68ca84f 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/TaskUsageRecordTest.java @@ -12,8 +12,12 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.common.scope.api.ScopeProvider; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.records.Record; +import org.junit.After; import org.junit.Assert; +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/ @@ -21,6 +25,20 @@ import org.junit.Test; */ public class TaskUsageRecordTest { + private static Logger logger = LoggerFactory.getLogger(TaskUsageRecordTest.class); + + @Before + public void before(){ + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + logger.trace("Setting {} scope", TestUsageRecord.TEST_SCOPE); + } + + @After + public void after(){ + ScopeProvider.instance.reset(); + logger.trace("Scope reset"); + } + public static Set getExpectedRequiredFields(){ Set expectedRequiredFields = new HashSet(); expectedRequiredFields.add(Record.ID); @@ -32,41 +50,50 @@ public class TaskUsageRecordTest { expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_ID); expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_START_TIME); expectedRequiredFields.add(AbstractTaskUsageRecord.TASK_END_TIME); + return expectedRequiredFields; } @Test(expected=InvalidValueException.class) public void scopeNotSetValidationError() throws InvalidValueException { ScopeProvider.instance.reset(); - TaskUsageRecord taskUsageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope(); - taskUsageRecord.validate(); + TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFields() throws InvalidValueException{ ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); - TaskUsageRecord taskUsageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope(); + TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordAutomaticScope(); Set expectedRequiredFields = getExpectedRequiredFields(); - Set gotRequiredFields = taskUsageRecord.getRequiredFields(); - + logger.debug("Expected Required Fields : {}", expectedRequiredFields); + + Set gotRequiredFields = usageRecord.getRequiredFields(); + logger.debug("Got Required Fields : {}", gotRequiredFields); + Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - taskUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } @Test public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{ - TaskUsageRecord taskUsageRecord = TestUsageRecord.createTestTaskUsageRecordExplicitScope(); - taskUsageRecord.setScope(TestUsageRecord.TEST_SCOPE); + ScopeProvider.instance.reset(); + TaskUsageRecord usageRecord = TestUsageRecord.createTestTaskUsageRecordExplicitScope(); + Assert.assertTrue(usageRecord.getScope()==null); + usageRecord.setScope(TestUsageRecord.TEST_SCOPE); Set expectedRequiredFields = getExpectedRequiredFields(); - Set gotRequiredFields = taskUsageRecord.getRequiredFields(); + Set gotRequiredFields = usageRecord.getRequiredFields(); Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); - taskUsageRecord.validate(); + usageRecord.validate(); + logger.debug("{}", usageRecord); } } diff --git a/src/test/java/org/gcube/accounting/datamodel/validations/validators/NotEmptyIfNotNullValidatorTest.java b/src/test/java/org/gcube/accounting/datamodel/validations/validators/NotEmptyIfNotNullValidatorTest.java index 55c699d..44d3172 100644 --- a/src/test/java/org/gcube/accounting/datamodel/validations/validators/NotEmptyIfNotNullValidatorTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/validations/validators/NotEmptyIfNotNullValidatorTest.java @@ -19,13 +19,13 @@ public class NotEmptyIfNotNullValidatorTest { @Test public void testBoolean() throws InvalidValueException{ NotEmptyIfNotNullValidator notEmptyIfNotNullValidator = new NotEmptyIfNotNullValidator(); - Comparable primitiveTrue = notEmptyIfNotNullValidator.validate(null, true, null); + Serializable primitiveTrue = notEmptyIfNotNullValidator.validate(null, true, null); Assert.assertTrue((Boolean) primitiveTrue); - Comparable primitiveFalse = notEmptyIfNotNullValidator.validate(null, false, null); + Serializable primitiveFalse = notEmptyIfNotNullValidator.validate(null, false, null); Assert.assertFalse((Boolean) primitiveFalse); - Comparable booleanClassTrue = notEmptyIfNotNullValidator.validate(null, Boolean.TRUE, null); + Serializable booleanClassTrue = notEmptyIfNotNullValidator.validate(null, Boolean.TRUE, null); Assert.assertTrue((Boolean) booleanClassTrue); - Comparable booleanClassFalse = notEmptyIfNotNullValidator.validate(null, Boolean.FALSE, null); + Serializable booleanClassFalse = notEmptyIfNotNullValidator.validate(null, Boolean.FALSE, null); Assert.assertFalse((Boolean) booleanClassFalse); } } diff --git a/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java b/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java index cb01bff..6239de1 100644 --- a/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java +++ b/src/test/java/org/gcube/documentstore/records/aggregation/AggregationSchedulerTest.java @@ -34,14 +34,12 @@ public class AggregationSchedulerTest { } public static PersistenceExecutor persistenceExecutor = new PersistenceExecutor(){ - @Override public void persist(Record... records) throws Exception { for(Record record : records){ logger.debug("Storing : {}", record.toString()); } } - }; protected void madeAssertion(Map> bufferedRecords, List types, int size, int count) {