diff options
author | Luke Gleeson <luke.gleeson@est.tech> | 2023-04-27 15:26:21 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2023-04-27 15:26:21 +0000 |
commit | a4cfede5bac589107ab81968f1d3a88c11a464d2 (patch) | |
tree | 3830ecd03ee767c863b3b5370107aa43587048ba /cps-ncmp-service/src/test/groovy | |
parent | 4031d43f06cb6ceb2e5bc39feb3e4a19ed3c6307 (diff) | |
parent | 9c126615d93ada36299fbac36dfb20aedbe2add1 (diff) |
Merge "Add retry mechanism on Subscription loader"
Diffstat (limited to 'cps-ncmp-service/src/test/groovy')
-rw-r--r-- | cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy index aa8bc53c9d..a14a0f286c 100644 --- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy +++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy @@ -32,6 +32,7 @@ import org.onap.cps.ncmp.api.impl.exception.NcmpStartUpException import org.onap.cps.spi.exceptions.AlreadyDefinedException import org.onap.cps.spi.exceptions.DataValidationException import org.onap.cps.spi.exceptions.SchemaSetNotFoundException +import org.onap.cps.spi.model.Dataspace import org.springframework.boot.SpringApplication import org.slf4j.LoggerFactory import org.springframework.boot.context.event.ApplicationReadyEvent @@ -73,9 +74,15 @@ class SubscriptionModelLoaderSpec extends Specification { } def 'Onboard subscription model successfully via application ready event'() { - when:'model loader is enabled' + given: 'dataspace is ready for use' + mockCpsAdminService.getDataspace('NCMP-Admin') >> new Dataspace('NCMP-Admin') + and:'model loader is enabled' objectUnderTest.subscriptionModelLoaderEnabled = true - and: 'the application is ready' + and: 'maximum attempt count is set' + objectUnderTest.maximumAttemptCount = 20 + and: 'retry time is set' + objectUnderTest.retryTimeMs = 100 + when: 'the application is ready' objectUnderTest.onApplicationEvent(applicationReadyEvent) then: 'the module service to create schema set is called once' 1 * mockCpsModuleService.createSchemaSet('NCMP-Admin', 'subscriptions',sampleYangContentMap) @@ -90,6 +97,8 @@ class SubscriptionModelLoaderSpec extends Specification { objectUnderTest.subscriptionModelLoaderEnabled = false and: 'application is ready' objectUnderTest.onApplicationEvent(applicationReadyEvent) + and: 'dataspace is ready for use' + mockCpsAdminService.getDataspace('NCMP-Admin') >> new Dataspace('NCMP-Admin') then: 'the module service to create schema set was not called' 0 * mockCpsModuleService.createSchemaSet(*_) and: 'the admin service to create an anchor set was not called' @@ -98,11 +107,34 @@ class SubscriptionModelLoaderSpec extends Specification { 0 * mockCpsDataService.saveData(*_) } + def 'Onboard subscription model fails as NCMP dataspace does not exist' () { + given: 'model loader is enabled' + objectUnderTest.subscriptionModelLoaderEnabled = true + and: 'maximum attempt count is set' + objectUnderTest.maximumAttemptCount = 20 + and: 'retry time is set' + objectUnderTest.retryTimeMs = 100 + when: 'the application is ready' + objectUnderTest.onApplicationEvent(applicationReadyEvent) + then: 'the module service to create schema set was not called' + 0 * mockCpsModuleService.createSchemaSet(*_) + and: 'the admin service to create an anchor set was not called' + 0 * mockCpsAdminService.createAnchor(*_) + and: 'the data service to create a top level datanode was not called' + 0 * mockCpsDataService.saveData(*_) + and: 'the log message contains the correct exception message' + def logs = appender.list.toString() + assert logs.contains("Retrieval of NCMP dataspace fails") + } + + def 'Exception occurred while schema set creation' () { given: 'creating a schema set throws an exception' mockCpsModuleService.createSchemaSet(*_) >> { throw new DataValidationException(*_) } and: 'model loader is enabled' objectUnderTest.subscriptionModelLoaderEnabled = true + and: 'dataspace is ready for use' + mockCpsAdminService.getDataspace('NCMP-Admin') >> new Dataspace('NCMP-Admin') when: 'application is ready' objectUnderTest.onApplicationEvent(applicationReadyEvent) then: 'the admin service to create an anchor set was not called' |