CPS Validator Changes
[cps.git] / cps-service / src / test / groovy / org / onap / cps / api / impl / CpsQueryServiceImplSpec.groovy
index b7fec85..8b232b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * ============LICENSE_START=======================================================
+ *  ============LICENSE_START=======================================================
  *  Copyright (C) 2021-2022 Nordix Foundation
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,17 +22,14 @@ package org.onap.cps.api.impl
 
 import org.onap.cps.spi.CpsDataPersistenceService
 import org.onap.cps.spi.FetchDescendantsOption
-import org.onap.cps.spi.exceptions.DataValidationException
+import org.onap.cps.spi.utils.CpsValidator
 import spock.lang.Specification
 
 class CpsQueryServiceImplSpec extends Specification {
     def mockCpsDataPersistenceService = Mock(CpsDataPersistenceService)
+    def mockCpsValidator = Mock(CpsValidator)
 
-    def objectUnderTest = new CpsQueryServiceImpl()
-
-    def setup() {
-        objectUnderTest.cpsDataPersistenceService = mockCpsDataPersistenceService
-    }
+    def objectUnderTest = new CpsQueryServiceImpl(mockCpsDataPersistenceService, mockCpsValidator)
 
     def 'Query data nodes by cps path with #fetchDescendantsOption.'() {
         given: 'a dataspace name, an anchor name and a cps path'
@@ -43,22 +40,10 @@ class CpsQueryServiceImplSpec extends Specification {
             objectUnderTest.queryDataNodes(dataspaceName, anchorName, cpsPath, fetchDescendantsOption)
         then: 'the persistence service is called once with the correct parameters'
             1 * mockCpsDataPersistenceService.queryDataNodes(dataspaceName, anchorName, cpsPath, fetchDescendantsOption)
+        and: 'the CpsValidator is called on the dataspaceName, schemaSetName and anchorName'
+            1 * mockCpsValidator.validateNameCharacters(dataspaceName, anchorName)
         where: 'all fetch descendants options are supported'
             fetchDescendantsOption << [FetchDescendantsOption.OMIT_DESCENDANTS, FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS]
     }
 
-    def 'Query data nodes by cps path with invalid #scenario.'() {
-        when: 'queryDataNodes is invoked'
-            objectUnderTest.queryDataNodes(dataspaceName, anchorName, '/cps-path', FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS)
-        then: 'a data validation exception is thrown'
-            thrown(DataValidationException)
-        and: 'the persistence service is not invoked'
-            0 * mockCpsDataPersistenceService.queryDataNodes(_, _, _, _)
-        where: 'the following parameters are used'
-            scenario                     | dataspaceName                 | anchorName
-            'dataspace name'             | 'dataspace names with spaces' | 'anchorName'
-            'anchor name'                | 'dataspaceName'               | 'anchor name with spaces'
-            'dataspace and anchor name'  | 'dataspace name with spaces'  | 'anchor name with spaces'
-    }
-
 }