Merge "Conflicting Error code"
[cps.git] / cps-ncmp-service / src / test / groovy / org / onap / cps / ncmp / api / models / CmHandleRegistrationResponseSpec.groovy
index 902ba4e..d76f912 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  ============LICENSE_START=======================================================
  *  Copyright (C) 2022 Bell Canada
+ *  Modifications Copyright (C) 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.api.models
 
-import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.RegistrationError
+import static org.onap.cps.ncmp.api.NcmpResponseStatus.CM_HANDLE_ALREADY_EXIST
+import static org.onap.cps.ncmp.api.NcmpResponseStatus.UNKNOWN_ERROR
+
 import org.onap.cps.ncmp.api.models.CmHandleRegistrationResponse.Status
 import spock.lang.Specification
+import java.util.stream.Collectors
 
 class CmHandleRegistrationResponseSpec extends Specification {
 
-    def 'Successful CmHandle Registration Response'() {
-        when: 'CMHandle response is created'
+    def 'Successful cm-handle Registration Response'() {
+        when: 'cm-handle response is created'
             def cmHandleRegistrationResponse = CmHandleRegistrationResponse.createSuccessResponse('cmHandle')
         then: 'a success response is returned'
             with(cmHandleRegistrationResponse) {
@@ -35,34 +39,51 @@ class CmHandleRegistrationResponseSpec extends Specification {
                 assert it.status == Status.SUCCESS
             }
         and: 'error details are null'
-            cmHandleRegistrationResponse.registrationError == null
+            cmHandleRegistrationResponse.ncmpResponseStatus == null
             cmHandleRegistrationResponse.errorText == null
     }
 
-    def 'Failed Cm Handle Registration Response: for unexpected exception'() {
-        when: 'CMHandle response is created for an unexpected exception'
+    def 'Failed cm-handle Registration Response: for unexpected exception'() {
+        when: 'cm-handle response is created for an unexpected exception'
             def cmHandleRegistrationResponse =
-                CmHandleRegistrationResponse.createFailureResponse('cmHandle', new RuntimeException('unexpected error'))
+                CmHandleRegistrationResponse.createFailureResponse('cmHandle', new Exception('unexpected error'))
         then: 'the response is created with expected value'
             with(cmHandleRegistrationResponse) {
-                assert it.registrationError == RegistrationError.UNKNOWN_ERROR
+                assert it.ncmpResponseStatus == UNKNOWN_ERROR
                 assert it.cmHandle == 'cmHandle'
                 assert errorText == 'unexpected error'
             }
     }
 
-    def 'Failed Cm Handle Registration Response: for known error'() {
-        when: 'CMHandle response is created for known error'
-            def cmHandleRegistrationResponse =
-                CmHandleRegistrationResponse.createFailureResponse('cmHandle', RegistrationError.CM_HANDLE_ALREADY_EXIST)
+    def 'Failed cm-handle Registration Response'() {
+        when: 'cm-handle failure response is created'
+        def cmHandleRegistrationResponse =
+                CmHandleRegistrationResponse.createFailureResponse('cmHandle', CM_HANDLE_ALREADY_EXIST)
         then: 'the response is created with expected value'
-            with(cmHandleRegistrationResponse) {
-                assert it.registrationError == RegistrationError.CM_HANDLE_ALREADY_EXIST
-                assert it.cmHandle == 'cmHandle'
-                assert it.status == Status.FAILURE
-                assert errorText == RegistrationError.CM_HANDLE_ALREADY_EXIST.errorText
-            }
+        with(cmHandleRegistrationResponse) {
+            assert it.ncmpResponseStatus == CM_HANDLE_ALREADY_EXIST
+            assert it.cmHandle == 'cmHandle'
+            assert it.status == Status.FAILURE
+            assert errorText == CM_HANDLE_ALREADY_EXIST.message
+        }
+    }
+
+    def 'Failed cm-handle Registration with multiple responses.'() {
+        when: 'cm-handle failure response is created for 2 xpaths'
+            def cmHandleRegistrationResponses =
+                CmHandleRegistrationResponse.createFailureResponses(["somePathWithId[@id='123']","somePathWithId[@id='456']"], CM_HANDLE_ALREADY_EXIST)
+        then: 'the response has the correct cm handle ids'
+            assert cmHandleRegistrationResponses.size() == 2
+            assert cmHandleRegistrationResponses.stream().map(it -> it.cmHandle).collect(Collectors.toList())
+                .containsAll(['123','456'])
+    }
 
+    def 'Failed cm-handle Registration with multiple responses with an unexpected xpath.'() {
+        when: 'cm-handle failure response is created for one valid and one unexpected xpath'
+            def cmHandleRegistrationResponses =
+                CmHandleRegistrationResponse.createFailureResponses(["somePathWithId[@id='123']","valid/xpath/without-id[@key='123']"], CM_HANDLE_ALREADY_EXIST)
+        then: 'the response has only one entry'
+            assert cmHandleRegistrationResponses.size() == 1
     }
 
 }