From 98db31d1731a111f7dcada29e67a4c2a33c22833 Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 20 Jul 2015 15:02:43 +0000 Subject: [PATCH] The scope is get from scope provider if available git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@117357 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../datamodel/BasicUsageRecord.java | 6 +- .../datamodel/basetypes/TestUsageRecord.java | 62 ++++++++++++++++--- .../aggregation/ServiceUsageRecordTest.java | 2 +- .../scheduler/AggregationSchedulerTest.java | 16 ++--- ...iceUsageRecordAggregationStrategyTest.java | 19 +++--- ...ageUsageRecordAggregationStrategyTest.java | 12 ++-- .../accounting/datamodel/UsageRecordTest.java | 12 ++-- .../usagerecords/ServiceUsageRecordTest.java | 28 ++++++++- .../AccountingPersistenceTest.java | 8 +-- 9 files changed, 118 insertions(+), 47 deletions(-) diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java index 879ad68..05fc0ac 100644 --- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java @@ -193,17 +193,17 @@ public abstract class BasicUsageRecord implements UsageRecord, Serializable { this.requiredFields = new HashSet(); this.aggregatedFields = new HashSet(); this.computedFields = new HashSet(); + this.resourceProperties = new HashMap(); initializeValidation(); try { - this.setScope(ScopeProvider.instance.get().toString()); - } catch (InvalidValueException e) { + this.setScope(ScopeProvider.instance.get()); + } catch(Exception e) { logger.warn("Unable to automaticcally set the scope using scope provider. The record will not be valid if the scope will not be explicitly set."); } } public BasicUsageRecord(){ init(); - this.resourceProperties = new HashMap(); this.resourceProperties.put(ID, UUID.randomUUID().toString()); this.resourceProperties.put(USAGE_RECORD_TYPE, this.getClass().getSimpleName()); Calendar calendar = Calendar.getInstance(); 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 c261ca4..18c5fc4 100644 --- a/src/main/java/org/gcube/accounting/datamodel/basetypes/TestUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/basetypes/TestUsageRecord.java @@ -50,12 +50,28 @@ public class TestUsageRecord { /** * Create a valid #ServiceUsageRecord * @return the created #ServiceUsageRecord + * @throws InvalidValueException */ - public static ServiceUsageRecord createTestServiceUsageRecord() { + 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.getCause()); + throw e; + } + return usageRecord; + + } + + /** + * Create a valid #ServiceUsageRecord with scope set automatically. + * @return the created #ServiceUsageRecord + */ + public static ServiceUsageRecord createTestServiceUsageRecordAutomaticScope() { ServiceUsageRecord usageRecord = new ServiceUsageRecord(); try { usageRecord.setConsumerId(TEST_CONSUMER_ID); - usageRecord.setScope(TEST_SCOPE); usageRecord.setOperationResult(OperationResult.SUCCESS); usageRecord.setCallerHost(TEST_CALLER_HOST); @@ -71,11 +87,11 @@ public class TestUsageRecord { } catch (InvalidValueException e) { logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause()); + throw new RuntimeException(e.getCause()); } return usageRecord; } - public final static String TEST_RESOUCE_OWNER = "resource.owner"; public final static String TEST_RESOUCE_SCOPE = TEST_SCOPE; @@ -88,11 +104,26 @@ public class TestUsageRecord { * Create a valid #StorageUsageRecord * @return the created #StorageUsageRecord */ - public static StorageUsageRecord createTestStorageUsageRecord() { + 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.getCause()); + throw new RuntimeException(e.getCause()); + } + return usageRecord; + + } + + /** + * Create a valid #StorageUsageRecord with scope set automatically. + * @return the created #StorageUsageRecord + */ + public static StorageUsageRecord createTestStorageUsageRecordAutomaticScope() { StorageUsageRecord usageRecord = new StorageUsageRecord(); try { usageRecord.setConsumerId(TEST_CONSUMER_ID); - usageRecord.setScope(TEST_SCOPE); usageRecord.setOperationResult(OperationResult.SUCCESS); usageRecord.setResourceOwner(TEST_RESOUCE_OWNER); @@ -111,20 +142,35 @@ public class TestUsageRecord { } catch (InvalidValueException | URISyntaxException e) { logger.error(" ------ You SHOULD NOT SEE THIS MESSAGE. Error Creating a test Usage Record", e.getCause()); + throw new RuntimeException(e.getCause()); } return usageRecord; } - + /** * @return */ - public static JobUsageRecord createTestJobUsageRecord() { + 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.getCause()); + throw new RuntimeException(e.getCause()); + } + return usageRecord; + } + + /** + * @return + */ + public static JobUsageRecord createTestJobUsageRecordAutomaticScope() { JobUsageRecord usageRecord = new JobUsageRecord(); try { usageRecord.setConsumerId(TEST_CONSUMER_ID); - usageRecord.setScope(TEST_SCOPE); usageRecord.setOperationResult(OperationResult.SUCCESS); diff --git a/src/test/java/org/gcube/accounting/aggregation/ServiceUsageRecordTest.java b/src/test/java/org/gcube/accounting/aggregation/ServiceUsageRecordTest.java index adfb0a8..fe9e0d5 100644 --- a/src/test/java/org/gcube/accounting/aggregation/ServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/aggregation/ServiceUsageRecordTest.java @@ -22,7 +22,7 @@ public class ServiceUsageRecordTest { @Test public void testRequiredFields() throws InvalidValueException { - org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); + org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); ServiceUsageRecord aggregatedServiceUsageRecord = new ServiceUsageRecord(serviceUsageRecord); diff --git a/src/test/java/org/gcube/accounting/aggregation/scheduler/AggregationSchedulerTest.java b/src/test/java/org/gcube/accounting/aggregation/scheduler/AggregationSchedulerTest.java index 284a015..99a2a2e 100644 --- a/src/test/java/org/gcube/accounting/aggregation/scheduler/AggregationSchedulerTest.java +++ b/src/test/java/org/gcube/accounting/aggregation/scheduler/AggregationSchedulerTest.java @@ -43,7 +43,7 @@ public class AggregationSchedulerTest { StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) throws Exception { - SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); aggregationScheduler.aggregate(usageRecord, persistenceExecutor); } }); @@ -58,7 +58,7 @@ public class AggregationSchedulerTest { StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) throws Exception { - ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + ServiceUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); if(i%2==0){ usageRecord.setServiceClass(ALTERNATIVE_SERVICE_CLASS); } @@ -76,9 +76,9 @@ public class AggregationSchedulerTest { public void operate(int i) throws Exception { SingleUsageRecord usageRecord; if(i%2==0){ - usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); }else{ - usageRecord = TestUsageRecord.createTestStorageUsageRecord(); + usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); } aggregationScheduler.aggregate(usageRecord, persistenceExecutor); } @@ -95,16 +95,16 @@ public class AggregationSchedulerTest { SingleUsageRecord usageRecord; switch (i%3) { case 0: - usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); break; case 1: - usageRecord = TestUsageRecord.createTestStorageUsageRecord(); + usageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); break; case 2: - usageRecord = TestUsageRecord.createTestJobUsageRecord(); + usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); break; default: - usageRecord = TestUsageRecord.createTestJobUsageRecord(); + usageRecord = TestUsageRecord.createTestJobUsageRecordAutomaticScope(); } aggregationScheduler.aggregate(usageRecord, persistenceExecutor); diff --git a/src/test/java/org/gcube/accounting/aggregation/strategy/ServiceUsageRecordAggregationStrategyTest.java b/src/test/java/org/gcube/accounting/aggregation/strategy/ServiceUsageRecordAggregationStrategyTest.java index 1cc0a63..87351f5 100644 --- a/src/test/java/org/gcube/accounting/aggregation/strategy/ServiceUsageRecordAggregationStrategyTest.java +++ b/src/test/java/org/gcube/accounting/aggregation/strategy/ServiceUsageRecordAggregationStrategyTest.java @@ -8,6 +8,7 @@ import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; import org.gcube.accounting.datamodel.usagerecords.ServiceUsageRecord; import org.gcube.accounting.exception.InvalidValueException; import org.gcube.accounting.exception.NotAggregatableRecordsExceptions; +import org.gcube.common.scope.api.ScopeProvider; import org.junit.Assert; import org.junit.Test; import org.slf4j.Logger; @@ -24,8 +25,8 @@ public class ServiceUsageRecordAggregationStrategyTest { @Test public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { - - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); serviceUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); serviceUsageRecord.validate(); logger.debug("ServiceUsageRecord : {}", serviceUsageRecord); @@ -35,7 +36,7 @@ public class ServiceUsageRecordAggregationStrategyTest { logger.debug("ServiceUsageRecord Converted to Aggregated: {}", aggregated); aggregated.validate(); - ServiceUsageRecord serviceUsageRecord2 = TestUsageRecord.createTestServiceUsageRecord(); + ServiceUsageRecord serviceUsageRecord2 = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); serviceUsageRecord2.validate(); logger.debug("ServiceUsageRecord 2 : {}", serviceUsageRecord2); ServiceUsageRecordAggregationStrategy suras = new ServiceUsageRecordAggregationStrategy(aggregated); @@ -65,8 +66,8 @@ public class ServiceUsageRecordAggregationStrategyTest { @Test public void secondAsAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { - - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); serviceUsageRecord.validate(); logger.debug("ServiceUsageRecord : {}", serviceUsageRecord); @@ -75,7 +76,7 @@ public class ServiceUsageRecordAggregationStrategyTest { logger.debug("ServiceUsageRecord Converted to Aggregated: {}", aggregated); aggregated.validate(); - ServiceUsageRecord serviceUsageRecord2 = TestUsageRecord.createTestServiceUsageRecord(); + ServiceUsageRecord serviceUsageRecord2 = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); serviceUsageRecord2.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); serviceUsageRecord2.validate(); logger.debug("ServiceUsageRecord 2 : {}", serviceUsageRecord2); @@ -112,8 +113,8 @@ public class ServiceUsageRecordAggregationStrategyTest { @Test public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions { - - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); serviceUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); serviceUsageRecord.validate(); logger.debug("ServiceUsageRecord : {}", serviceUsageRecord); @@ -127,7 +128,7 @@ public class ServiceUsageRecordAggregationStrategyTest { for(int i=2; i<1002; i++){ - ServiceUsageRecord sur = TestUsageRecord.createTestServiceUsageRecord(); + ServiceUsageRecord sur = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); sur.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); sur.validate(); logger.debug("Cycle ServiceUsageRecord {}: {}", i, sur); diff --git a/src/test/java/org/gcube/accounting/aggregation/strategy/StorageUsageRecordAggregationStrategyTest.java b/src/test/java/org/gcube/accounting/aggregation/strategy/StorageUsageRecordAggregationStrategyTest.java index 070efc2..01d2099 100644 --- a/src/test/java/org/gcube/accounting/aggregation/strategy/StorageUsageRecordAggregationStrategyTest.java +++ b/src/test/java/org/gcube/accounting/aggregation/strategy/StorageUsageRecordAggregationStrategyTest.java @@ -25,7 +25,7 @@ public class StorageUsageRecordAggregationStrategyTest { @Test public void secondAsNotAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { - StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord(); + StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); storageUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); storageUsageRecord.validate(); logger.debug("StorageUsageRecord : {}", storageUsageRecord); @@ -35,7 +35,7 @@ public class StorageUsageRecordAggregationStrategyTest { logger.debug("StorageUsageRecord Converted to Aggregated: {}", aggregated); aggregated.validate(); - StorageUsageRecord storageUsageRecord2 = TestUsageRecord.createTestStorageUsageRecord(); + StorageUsageRecord storageUsageRecord2 = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); storageUsageRecord2.validate(); logger.debug("StorageUsageRecord 2 : {}", storageUsageRecord2); StorageUsageRecordAggregationStrategy suras = new StorageUsageRecordAggregationStrategy(aggregated); @@ -56,7 +56,7 @@ public class StorageUsageRecordAggregationStrategyTest { @Test public void secondAsAggregated() throws InvalidValueException, NotAggregatableRecordsExceptions { - StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord(); + StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); storageUsageRecord.validate(); logger.debug("StorageUsageRecord : {}", storageUsageRecord); @@ -65,7 +65,7 @@ public class StorageUsageRecordAggregationStrategyTest { logger.debug("StorageUsageRecord Converted to Aggregated: {}", aggregated); aggregated.validate(); - StorageUsageRecord storageUsageRecord2 = TestUsageRecord.createTestStorageUsageRecord(); + StorageUsageRecord storageUsageRecord2 = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); storageUsageRecord2.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); storageUsageRecord2.validate(); logger.debug("StorageUsageRecord 2 : {}", storageUsageRecord2); @@ -92,7 +92,7 @@ public class StorageUsageRecordAggregationStrategyTest { @Test public void aggregationStressTest() throws InvalidValueException, NotAggregatableRecordsExceptions { - StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecord(); + StorageUsageRecord storageUsageRecord = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); storageUsageRecord.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); storageUsageRecord.validate(); logger.debug("StorageUsageRecord : {}", storageUsageRecord); @@ -106,7 +106,7 @@ public class StorageUsageRecordAggregationStrategyTest { for(int i=2; i<1002; i++){ - StorageUsageRecord sur = TestUsageRecord.createTestStorageUsageRecord(); + StorageUsageRecord sur = TestUsageRecord.createTestStorageUsageRecordAutomaticScope(); sur.setResourceProperty(TestUsageRecord.TEST_PROPERTY_NAME, TestUsageRecord.TEST_PROPERTY_VALUE); sur.validate(); logger.debug("Cycle StorageUsageRecord {}: {}", i, sur); diff --git a/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java b/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java index 49ae7d8..9937337 100644 --- a/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/UsageRecordTest.java @@ -16,7 +16,7 @@ public class UsageRecordTest { @Test public void testCompareToSameObject() throws InvalidValueException { - UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); UsageRecord ur = usageRecord; Assert.assertEquals(0, usageRecord.compareTo(ur)); Assert.assertEquals(0, ur.compareTo(usageRecord)); @@ -24,7 +24,7 @@ public class UsageRecordTest { @Test public void testCompareToEqualsObject() throws Exception { - UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties()); Assert.assertEquals(0, usageRecord.compareTo(ur)); Assert.assertEquals(0, ur.compareTo(usageRecord)); @@ -32,7 +32,7 @@ public class UsageRecordTest { @Test public void testCompareToComparedAddedProperty() throws Exception { - UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties()); for(int i=1; i<31; i++){ ur.setResourceProperty(Integer.toString(i), i); @@ -43,7 +43,7 @@ public class UsageRecordTest { @Test public void testCompareToDifferentForAddedProperties() throws Exception { - UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); UsageRecord ur = BasicUsageRecord.getUsageRecord(usageRecord.getResourceProperties()); usageRecord.setResourceProperty(Integer.toString(1), 2); ur.setResourceProperty(Integer.toString(2), 2); @@ -53,8 +53,8 @@ public class UsageRecordTest { @Test public void testCompareToDifferentFromCreation() throws Exception { - UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); - UsageRecord ur = TestUsageRecord.createTestServiceUsageRecord(); + UsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + UsageRecord ur = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); Assert.assertEquals(1, usageRecord.compareTo(ur)); Assert.assertEquals(1, ur.compareTo(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 c7de127..de81725 100644 --- a/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java +++ b/src/test/java/org/gcube/accounting/datamodel/usagerecords/ServiceUsageRecordTest.java @@ -9,6 +9,8 @@ import java.util.Set; import org.gcube.accounting.datamodel.BasicUsageRecord; import org.gcube.accounting.datamodel.BasicUsageRecordUtility; import org.gcube.accounting.datamodel.basetypes.TestUsageRecord; +import org.gcube.accounting.exception.InvalidValueException; +import org.gcube.common.scope.api.ScopeProvider; import org.junit.Assert; import org.junit.Test; @@ -35,15 +37,37 @@ public class ServiceUsageRecordTest { return expectedRequiredFields; } + @Test(expected=InvalidValueException.class) + public void scopeNotSetValidationError() throws InvalidValueException { + ScopeProvider.instance.reset(); + ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + serviceUsageRecord.validate(); + } + @Test - public void testRequiredFields(){ - ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecord(); + public void testRequiredFields() throws InvalidValueException{ + ScopeProvider.instance.set(TestUsageRecord.TEST_SCOPE); + ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); Set expectedRequiredFields = getExpectedRequiredFields(); Set gotRequiredFields = serviceUsageRecord.getRequiredFields(); Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); + serviceUsageRecord.validate(); } + @Test + public void testRequiredFieldsWithScopeSetExplicitely() throws InvalidValueException{ + ServiceUsageRecord serviceUsageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); + serviceUsageRecord.setScope(TestUsageRecord.TEST_SCOPE); + Set expectedRequiredFields = getExpectedRequiredFields(); + + Set gotRequiredFields = serviceUsageRecord.getRequiredFields(); + + Assert.assertTrue(expectedRequiredFields.containsAll(gotRequiredFields)); + Assert.assertTrue(gotRequiredFields.containsAll(expectedRequiredFields)); + + serviceUsageRecord.validate(); + } } diff --git a/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java b/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java index 6438bea..9c9559e 100644 --- a/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java +++ b/src/test/java/org/gcube/accounting/persistence/AccountingPersistenceTest.java @@ -40,7 +40,7 @@ public class AccountingPersistenceTest { StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) { - SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); persistence.validateAccountAggregate(usageRecord, true, false); } }, 1); @@ -54,7 +54,7 @@ public class AccountingPersistenceTest { StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) { - SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); persistence.validateAccountAggregate(usageRecord, true, false); } }, 1); @@ -68,7 +68,7 @@ public class AccountingPersistenceTest { StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) { - SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); persistence.validateAccountAggregate(usageRecord, true, false); } }); @@ -81,7 +81,7 @@ public class AccountingPersistenceTest { StressTestUtility.stressTest(new TestOperation() { @Override public void operate(int i) throws Exception { - SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecord(); + SingleUsageRecord usageRecord = TestUsageRecord.createTestServiceUsageRecordAutomaticScope(); persistence.account(usageRecord); } });