+ def 'Delete multiple schema-sets when cascade is allowed.'() {
+ given: '#numberOfAnchors anchors are associated with each schemaset'
+ mockCpsAnchorService.getAnchors('my-dataspace', ['my-schemaset1', 'my-schemaset2']) >> createAnchors(numberOfAnchors * 2)
+ when: 'schema set deletion is requested with cascade allowed'
+ objectUnderTest.deleteSchemaSetsWithCascade('my-dataspace', ['my-schemaset1', 'my-schemaset2'])
+ then: 'anchor deletion is called #numberOfAnchors times'
+ mockCpsAnchorService.deleteAnchors('my-dataspace', _)
+ and: 'persistence service method is invoked with same parameters'
+ mockCpsModulePersistenceService.deleteSchemaSets('my-dataspace', _)
+ and: 'schema sets will be removed from the cache'
+ 2 * mockYangTextSchemaSourceSetCache.removeFromCache('my-dataspace', _)
+ and: 'orphan yang resources are deleted'
+ 1 * mockCpsModulePersistenceService.deleteUnusedYangResourceModules()
+ and: 'the CpsValidator is called on the dataspaceName'
+ 1 * mockCpsValidator.validateNameCharacters('my-dataspace')
+ and: 'the CpsValidator is called on the schemaSetNames'
+ 1 * mockCpsValidator.validateNameCharacters(_)
+ where: 'following parameters are used'
+ numberOfAnchors << [0, 3]
+ }
+
+ def 'Upgrade existing schema set'() {
+ when: 'schema set update is requested'
+ objectUnderTest.upgradeSchemaSetFromModules('my-dataspace', 'my-schemaset', [:], moduleReferences)
+ then: 'no exception is thrown '
+ noExceptionThrown()