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 a76ce2b..89eb0a5 100644 --- a/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecord.java @@ -29,8 +29,7 @@ public class AggregatedServiceUsageRecord extends AbstractServiceUsageRecord imp */ private static final long serialVersionUID = 6387584974618335623L; - // Redefining DURATION to Set @AggregatedField - @RequiredField @ValidLong @AggregatedField + @AggregatedField public static final String DURATION = AbstractServiceUsageRecord.DURATION; @RequiredField @ValidLong @AggregatedField 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 fcc9231..aa33b3c 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedServiceUsageRecordTest.java @@ -33,10 +33,12 @@ public class AggregatedServiceUsageRecordTest extends ScopedTest { AggregatedServiceUsageRecord aggregatedServiceUsageRecord = new AggregatedServiceUsageRecord(serviceUsageRecord); Set expectedRequiredFields = ServiceUsageRecordTest.getExpectedRequiredFields(); - expectedRequiredFields.add(AggregatedServiceUsageRecord.DURATION); expectedRequiredFields.add(AggregatedServiceUsageRecord.MAX_INVOCATION_TIME); expectedRequiredFields.add(AggregatedServiceUsageRecord.MIN_INVOCATION_TIME); + expectedRequiredFields.addAll(AggregatedUsageRecordTest.getExpectedRequiredFields()); + + logger.debug("Expected Required Fields : {}", expectedRequiredFields); Set gotRequiredFields = aggregatedServiceUsageRecord.getRequiredFields(); 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 5eb5ba0..909358f 100644 --- a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedStorageUsageRecordTest.java @@ -3,7 +3,10 @@ */ package org.gcube.accounting.datamodel.aggregation; +import java.util.Set; + import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecord; +import org.gcube.accounting.datamodel.usagerecords.StorageUsageRecordTest; import org.gcube.documentstore.exception.InvalidValueException; import org.gcube.documentstore.exception.NotAggregatableRecordsExceptions; import org.gcube.testutility.ScopedTest; @@ -21,6 +24,28 @@ public class AggregatedStorageUsageRecordTest extends ScopedTest { private static Logger logger = LoggerFactory.getLogger(AggregatedStorageUsageRecordTest.class); + @Test + public void testRequiredFields() throws InvalidValueException { + StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord(); + Assert.assertTrue(storageUsageRecord.getScope()==null); + storageUsageRecord.setScope(TestUsageRecord.TEST_SCOPE); + + AggregatedStorageUsageRecord aggregatedStorageUsageRecord = new AggregatedStorageUsageRecord(storageUsageRecord); + + Set expectedRequiredFields = StorageUsageRecordTest.getExpectedRequiredFields(); + expectedRequiredFields.addAll(AggregatedUsageRecordTest.getExpectedRequiredFields()); + + logger.debug("Expected Required Fields : {}", expectedRequiredFields); + + Set gotRequiredFields = aggregatedStorageUsageRecord.getRequiredFields(); + + logger.debug("Got Required Fields : {}", gotRequiredFields); + + Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); + Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); + + } + @Test public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord(); diff --git a/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedUsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedUsageRecordTest.java new file mode 100644 index 0000000..a168f51 --- /dev/null +++ b/src/test/java/org/gcube/accounting/datamodel/aggregation/AggregatedUsageRecordTest.java @@ -0,0 +1,24 @@ +/** + * + */ +package org.gcube.accounting.datamodel.aggregation; + +import java.util.HashSet; +import java.util.Set; + +import org.gcube.accounting.datamodel.AggregatedUsageRecord; + +/** + * @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/ + * + */ +public class AggregatedUsageRecordTest { + public static Set getExpectedRequiredFields(){ + Set expectedRequiredFields = new HashSet(); + expectedRequiredFields.add(AggregatedUsageRecord.AGGREGATED); + expectedRequiredFields.add(AggregatedUsageRecord.END_TIME); + expectedRequiredFields.add(AggregatedUsageRecord.START_TIME); + expectedRequiredFields.add(AggregatedUsageRecord.OPERATION_COUNT); + return expectedRequiredFields; + } +}