BBE re-registration
added aai entry service instance
armed aai-entry
armed expected-logical-link
armed AAI simulator
armed RF test keywod

Change-Id: If894fce80d40b05fc9f75e22ee96cddb7621423a
Issue-ID: INT-1100
Signed-off-by: Marcin Migdal <marcin.migdal@nokia.com>
diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json
new file mode 100644
index 0000000..6119ea8
--- /dev/null
+++ b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json
@@ -0,0 +1,25 @@
+{
+  "service-instance-id": "bbs_service",
+  "service-instance-name": "bbs_service",
+  "environment-context": "General_Revenue-Bearing",
+  "workload-context": "Production",
+  "model-invariant-id": "c71827e7-42fc-46ab-b059-22584c58108b",
+  "model-version-id": "8efe4a8a-6646-43e2-8807-a376ff22d2e0",
+  "resource-version": "1554127221722",
+  "orchestration-status": "Active",
+  "relationship-list": {
+    "relationship": [
+      {
+        "related-to": "pnf",
+        "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+        "related-link": "/aai/v12/network/pnfs/pnf/NOK6061ZW9",
+        "relationship-data": [
+          {
+            "relationship-key": "pnf.pnf-name",
+            "relationship-value": "NOK6061ZW9"
+          }
+        ]
+      }
+    ]
+  }
+}
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json
index 8787dc1..e01e26e 100644
--- a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json
+++ b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json
@@ -19,5 +19,48 @@
     "ipaddress-v6-oam": "example-ipaddress-v6-oam-val-92665",
     "inv-status": "example-inv-status-val-8477",
     "prov-status": "example-prov-status-val-68268",
-    "nf-role": "example-nf-role-val-68489"
+    "nf-role": "example-nf-role-val-68489",
+    "relationship-list": {
+        "relationship": [
+            {
+                "related-to": "service-instance",
+                "relationship-label": "org.onap.relationships.inventory.ComposedOf",
+                "related-link": "/aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service",
+                "relationship-data": [
+                    {
+                        "relationship-key": "customer.global-customer-id",
+                        "relationship-value": "Demonstration"
+                    },
+                    {
+                        "relationship-key": "service-subscription.service-type",
+                        "relationship-value": "vFW"
+                    },
+                    {
+                        "relationship-key": "service-instance.service-instance-id",
+                        "relationship-value": "bbs_service"
+                    }
+                ],
+                "related-to-property": [
+                    {
+                        "property-key": "service-instance.service-instance-name",
+                        "property-value": "bbs_service"
+                    }
+                ]
+            },
+            {
+                "related-to": "logical-link",
+                "relationship-label": "org.onap.relationships.inventory.BridgedTo",
+                "related-link": "/aai/v12/network/logical-links/logical-link/bbs-link",
+                "relationship-data": [
+                    {
+                        "relationship-key": "logical-link.link-name",
+                        "relationship-value": "bbs-link"
+                    }
+                ]
+            }
+        ]
+    }
+
+
+
 }
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json
index b75df88..0e4f6ab 100644
--- a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json
+++ b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json
@@ -1,13 +1,22 @@
 {
   "link-name": "bbs-link",
+  "in-maint": false,
   "link-type": "attachment-point",
   "relationship-list":
   {
     "relationship": [
       {
+        "related-to": "pnf",
+        "relationship-label": "org.onap.relationships.inventory.BridgedTo",
         "related-link": "/network/pnfs/pnf/NOK6061ZW9",
-        "relationship-data": []
+        "relationship-data": [
+          {
+            "relationship-key": "pnf.pnf-name",
+            "relationship-value": "NOK6061ZW9"
+          }
+        ]
       }
     ]
   }
 }
+
diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-ready-event.json b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-ready-event.json
deleted file mode 100644
index 5c77e12..0000000
--- a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-ready-event.json
+++ /dev/null
@@ -1,8 +0,0 @@
-[
-  {
-    "additionalFields": {
-      "attachment-point": "bbs-link"
-    },
-    "correlationId": "NOK6061ZW9"
-  }
-]
\ No newline at end of file
diff --git a/tests/dcaegen2/prh-testcases/resources/prh_library.robot b/tests/dcaegen2/prh-testcases/resources/prh_library.robot
index 7bf1264..007caf3 100644
--- a/tests/dcaegen2/prh-testcases/resources/prh_library.robot
+++ b/tests/dcaegen2/prh-testcases/resources/prh_library.robot
@@ -58,14 +58,15 @@
 Verify PNF re registration
     [Timeout]    100s
     [Arguments]    ${test_case_directory}
-    ${expected_logical_link}=    Get Data From File    ${test_case_directory}/expected-logical-link.json
-    Verify PNF ready sent    ${test_case_directory}
-    Check created Logical Link    ${expected_logical_link}
+    ${aai_entry}=    Get Data From File    ${test_case_directory}/aai-entry.json
+    Add PNF entry in AAI    ${aai_entry}
+    ${service_instance}=    Get Data From File    ${test_case_directory}/aai-entry-service-instance.json
+    Add service instance entry in AAI    ${service_instance}
 
     ${ves_event}=    Get Data From File    ${test_case_directory}/ves-event.json
     Set VES event in DMaaP    ${ves_event}
     ${expected_pnf_update_event}=    Get Data From File    ${test_case_directory}/expected-pnf-update-event.json
-    Wait Until Keyword Succeeds    10x    3000ms    Check created PNF_UPDATE notification    ${expected_pnf_update_event}
+    #Wait Until Keyword Succeeds    10x    3000ms    Check created PNF_UPDATE notification    ${expected_pnf_update_event}
 
 Check CBS ready
     ${resp}=    Get Request    ${consul_setup_session}    /v1/catalog/services
@@ -115,6 +116,13 @@
     ${resp}=    Put Request    ${aai_setup_session}    /setup/add_pnf_entry    headers=${suite_headers}    data=${pnf_entry}
     Should Be Equal As Strings    ${resp.status_code}    200
 
+Add service instance entry in AAI
+    [Arguments]    ${aai_service_instance}
+    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
+    Log    AAI url ${AAI_SIMULATOR_SETUP_URL}
+    ${resp}=    Put Request    ${aai_setup_session}    /setup/add_service_instace    headers=${suite_headers}    data=${aai_service_instance}
+    Should Be Equal As Strings    ${resp.status_code}    200
+
 Set VES event in DMaaP
     [Arguments]    ${ves_event}
     ${resp}=    Put Request    ${dmaap_setup_session}    /setup/ves_event    headers=${suite_headers}    data=${ves_event}
diff --git a/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py b/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py
index 9b76adf..f6d3b1f 100644
--- a/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py
+++ b/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py
@@ -22,6 +22,7 @@
 pnf_entries = {}
 patched_pnf = AAI_RESOURCE_NOT_FOUND
 created_logical_link = AAI_RESOURCE_NOT_FOUND
+service_instance = AAI_RESOURCE_NOT_FOUND
 
 class AAISetup(BaseHTTPRequestHandler):
 
@@ -53,6 +54,13 @@
 
                 httpServerLib.set_response_200_ok(self)
                 logger.debug('AAISetup PUT /setup/add_pnf_entry [' + pnf_name + '] -> 200 OK')
+            elif re.search('/setup/add_service_instace', self.path):
+                service_instance_payload = httpServerLib.get_payload(self)
+                global service_instance
+                service_instance = json.loads(service_instance_payload)
+                httpServerLib.set_response_200_ok(self)
+                logger.debug('AAISetup PUT /setup/add_service_instace -> 200 OK')
+
             elif re.search('/set_pnf', self.path):
                 pnf_name = httpServerLib.get_payload(self).decode()
                 pnf_entries[pnf_name] = AAI_RESOURCE_NOT_FOUND
@@ -70,9 +78,11 @@
                 global pnf_entries
                 global patched_pnf
                 global created_logical_link
+                global service_instance
                 pnf_entries = {}
                 patched_pnf = AAI_RESOURCE_NOT_FOUND
                 created_logical_link = AAI_RESOURCE_NOT_FOUND
+                service_instance = AAI_RESOURCE_NOT_FOUND
 
                 httpServerLib.set_response_200_ok(self)
                 logger.debug('AAISetup POST /reset -> 200 OK')
@@ -95,6 +105,9 @@
                 else:
                     httpServerLib.set_response_404_not_found(self)
                     logger.info('AAIHandler GET /aai/v12/network/pnfs/pnf/' + pnf_name + ' -> 404 Not found, actual entries: ' + str(pnf_entries.keys()))
+            elif re.search('aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service', self.path):
+                httpServerLib.set_response_200_ok(self, payload = service_instance)
+                logger.debug('AAIHandler GET aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service -> 200 OK')
             else:
                 httpServerLib.set_response_404_not_found(self)
                 logger.info('AAIHandler GET ' + self.path + ' -> 404 Not found')