summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src/test/groovy
diff options
context:
space:
mode:
authoremaclee <lee.anjella.macabuhay@est.tech>2023-04-16 17:48:15 +0100
committerLee Anjella Macabuhay <lee.anjella.macabuhay@est.tech>2023-04-27 14:39:54 +0000
commit9c126615d93ada36299fbac36dfb20aedbe2add1 (patch)
tree50b0ba3603bbaf2a8b9f373db213b035243b6beb /cps-ncmp-service/src/test/groovy
parentccf2e5abd0a1eec25f90fa6f89ed3766fc9c068f (diff)
Add retry mechanism on Subscription loader
Issue-ID: CPS-1568 Signed-off-by: emaclee <lee.anjella.macabuhay@est.tech> Change-Id: I35697c260cc1a774f50d12552996b39f812fc2de
Diffstat (limited to 'cps-ncmp-service/src/test/groovy')
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/init/SubscriptionModelLoaderSpec.groovy36
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'