CPS Validator Changes
[cps.git] / cps-service / src / test / groovy / org / onap / cps / api / impl / YangTextSchemaSourceSetCacheSpec.groovy
index 860b739..a9f50ee 100644 (file)
@@ -1,6 +1,7 @@
 /*
- * ============LICENSE_START=======================================================
+ *  ============LICENSE_START=======================================================
  *  Copyright (C) 2022 Bell Canada
+ *  Modifications Copyright (C) 2022 Nordix Foundation
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -33,6 +34,8 @@ import org.springframework.cache.annotation.EnableCaching
 import org.springframework.cache.caffeine.CaffeineCacheManager
 import org.springframework.test.context.ContextConfiguration
 import spock.lang.Specification
+import org.onap.cps.spi.utils.CpsValidator
+
 
 @SpringBootTest
 @EnableCaching
@@ -42,6 +45,9 @@ class YangTextSchemaSourceSetCacheSpec extends Specification {
     @SpringBean
     CpsModulePersistenceService mockModuleStoreService = Mock()
 
+    @SpringBean
+    CpsValidator mockCpsValidator = Mock(CpsValidator)
+
     @Autowired
     YangTextSchemaSourceSetCache objectUnderTest
 
@@ -72,6 +78,8 @@ class YangTextSchemaSourceSetCacheSpec extends Specification {
             assert cachedValue.getModuleReferences() == expectedYangTextSchemaSourceSet.getModuleReferences()
         and: 'the response is as expected'
             assert result.getModuleReferences() == expectedYangTextSchemaSourceSet.getModuleReferences()
+        and: 'the CpsValidator is called on the dataspaceName and schemaSetName'
+            1 * mockCpsValidator.validateNameCharacters('my-dataspace', 'my-schemaset')
     }
 
     def 'Cache Hit: Respond from cache'() {
@@ -97,9 +105,11 @@ class YangTextSchemaSourceSetCacheSpec extends Specification {
         then: 'cached value is same as expected'
             def cachedValue = getCachedValue('my-dataspace', 'my-schemaset')
             cachedValue.getModuleReferences() == yangTextSchemaSourceSet.getModuleReferences()
+        and: 'the CpsValidator is called on the dataspaceName and schemaSetName'
+            1 * mockCpsValidator.validateNameCharacters('my-dataspace', 'my-schemaset')
     }
 
-    def 'Cache Evict: remove when exist'() {
+    def 'Cache Evict:with invalid #scenario'() {
         given: 'a schema set exists in cache'
             def yangResourcesNameToContentMap = TestUtils.getYangResourcesAsMap('bookstore.yang')
             def yangTextSchemaSourceSet = YangTextSchemaSourceSetBuilder.of(yangResourcesNameToContentMap)
@@ -110,6 +120,8 @@ class YangTextSchemaSourceSetCacheSpec extends Specification {
             objectUnderTest.removeFromCache('my-dataspace', 'my-schemaset')
         then: 'cached does not have value'
             assert getCachedValue('my-dataspace', 'my-schemaset') == null
+        and: 'the CpsValidator is called on the dataspaceName and schemaSetName'
+            1 * mockCpsValidator.validateNameCharacters('my-dataspace', 'my-schemaset')
     }
 
     def 'Cache Evict: remove when does not exist'() {
@@ -119,6 +131,8 @@ class YangTextSchemaSourceSetCacheSpec extends Specification {
             objectUnderTest.removeFromCache('my-dataspace', 'my-schemaset')
         then: 'cached does not have value'
             assert getCachedValue('my-dataspace', 'my-schemaset') == null
+        and: 'the CpsValidator is called on the dataspaceName and schemaSetName'
+            1 * mockCpsValidator.validateNameCharacters('my-dataspace', 'my-schemaset')
     }
 
     def getCachedValue(dataSpace, schemaSet) {