Modify cmHandle registration for alternateId
[cps.git] / cps-ncmp-rest / src / test / groovy / org / onap / cps / ncmp / rest / controller / NcmpRestInputMapperSpec.groovy
index cd3770e..0bc0c1e 100644 (file)
@@ -1,6 +1,6 @@
 /*
  *  ============LICENSE_START=======================================================
- *  Copyright (C) 2022 Nordix Foundation
+ *  Copyright (C) 2022-2023 Nordix Foundation
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
 package org.onap.cps.ncmp.rest.controller
 
 import org.mapstruct.factory.Mappers
+import org.onap.cps.ncmp.api.impl.trustlevel.TrustLevel
 import org.onap.cps.ncmp.api.models.NcmpServiceCmHandle
+import org.onap.cps.ncmp.rest.model.CmHandleQueryParameters
+import org.onap.cps.ncmp.rest.model.ConditionProperties
 import org.onap.cps.ncmp.rest.model.RestDmiPluginRegistration
 import org.onap.cps.ncmp.rest.model.RestInputCmHandle
 import org.onap.cps.ncmp.rest.model.RestModuleDefinition
 import org.onap.cps.ncmp.rest.model.RestModuleReference
+import org.onap.cps.ncmp.api.models.CmHandleQueryServiceParameters
 import org.onap.cps.spi.model.ModuleDefinition
 import org.onap.cps.spi.model.ModuleReference
 import spock.lang.Specification
@@ -36,8 +40,8 @@ class NcmpRestInputMapperSpec extends Specification {
 
     def 'Convert a created REST CM Handle Input to an NCMP Service CM Handle with #scenario'() {
         given: 'a rest cm handle input'
-            def inputRestCmHandle = new RestInputCmHandle(cmHandle : 'example-id', cmHandleProperties: dmiProperties,
-                publicCmHandleProperties: publicProperties)
+            def inputRestCmHandle = new RestInputCmHandle(cmHandle : 'example-id', cmHandleProperties: registrationDmiProperties,
+                publicCmHandleProperties: registrationPublicProperties, trustLevel: registrationTrustLevel, alternateId: 'my-alternate-id', moduleSetTag: 'my-module-set-tag')
             def restDmiPluginRegistration = new RestDmiPluginRegistration(
                 createdCmHandles: [inputRestCmHandle])
         when: 'to plugin dmi registration is called'
@@ -47,12 +51,16 @@ class NcmpRestInputMapperSpec extends Specification {
         and: 'the converted cm handle has the same id'
             result.createdCmHandles[0].cmHandleId == 'example-id'
         and: '(empty) properties are converted correctly'
-            result.createdCmHandles[0].dmiProperties == expectedDmiProperties
-            result.createdCmHandles[0].publicProperties == expectedPublicProperties
+            result.createdCmHandles[0].dmiProperties == mappedDmiProperties
+            result.createdCmHandles[0].publicProperties == mappedPublicProperties
+            result.createdCmHandles[0].registrationTrustLevel == mappedTrustLevel
+        and: 'alternate ID and module set tag converted correctly'
+            result.createdCmHandles[0].alternateId == 'my-alternate-id'
+            result.createdCmHandles[0].moduleSetTag == 'my-module-set-tag'
         where: 'the following parameters are used'
-            scenario                    | dmiProperties                            | publicProperties                                         || expectedDmiProperties                     | expectedPublicProperties
-            'dmi and public properties' | ['Property-Example': 'example property'] | ['Public-Property-Example': 'public example property']   || ['Property-Example': 'example property']  | ['Public-Property-Example': 'public example property']
-            'no properties'             | null                                     | null                                                     || [:]                                       | [:]
+            scenario                    | registrationDmiProperties                | registrationPublicProperties                           | registrationTrustLevel || mappedDmiProperties                      | mappedPublicProperties                                 | mappedTrustLevel
+            'dmi and public properties' | ['Property-Example': 'example property'] | ['Public-Property-Example': 'public example property'] | 'COMPLETE'             || ['Property-Example': 'example property'] | ['Public-Property-Example': 'public example property'] | TrustLevel.COMPLETE
+            'no properties'             | null                                     | null                                                   | null                   || [:]                                      | [:]                                                    | null
     }
 
     def 'Handling empty dmi registration'() {
@@ -104,4 +112,22 @@ class NcmpRestInputMapperSpec extends Specification {
                     '    content: content\n' +
                     '}'
     }
+
+    def 'Convert a CmHandle REST query to CmHandle query service parameters.'() {
+        given: 'a CmHandle REST query with two conditions'
+            def conditionParameter1 = new ConditionProperties(conditionName: 'some condition', conditionParameters: [[p1:1]] )
+            def conditionParameter2 = new ConditionProperties(conditionName: 'other condition', conditionParameters: [[p2:2]] )
+            def cmHandleQuery = new CmHandleQueryParameters()
+            cmHandleQuery.cmHandleQueryParameters = [conditionParameter1, conditionParameter2]
+        when: 'it is converted into CmHandle query service parameters'
+            def result = objectUnderTest.toCmHandleQueryServiceParameters(cmHandleQuery)
+        then: 'the result is of the correct class'
+            assert result instanceof CmHandleQueryServiceParameters
+        and: 'the result has the same conditions'
+            assert result.cmHandleQueryParameters.size() == 2
+            assert result.cmHandleQueryParameters[0].conditionName == 'some condition'
+            assert result.cmHandleQueryParameters[0].conditionParameters == [[p1:1]]
+            assert result.cmHandleQueryParameters[1].conditionName == 'other condition'
+            assert result.cmHandleQueryParameters[1].conditionParameters == [[p2:2]]
+    }
 }