From 9ae2a5b5f7c74a6a667e76c4bb99fa1c15351c87 Mon Sep 17 00:00:00 2001
From: uihassan <najam.hassan@xflowresearch.com>
Date: Tue, 3 Mar 2020 11:40:50 +0500
Subject: [PATCH] bug-fixes final list v5

---
 SOL002/VNFIndicator-API/Subscriptions.robot        |  6 +++---
 SOL002/VNFIndicator-API/VNFIndicators.robot        |  6 ++++--
 .../VnfIndicatorsInVnfInstanceId.robot             |  3 ++-
 .../VNFIndicator-API/environment/subscriptions.txt |  1 +
 .../environment/vnfIndicatorinVnfInstance.txt      |  1 +
 .../VNFIndicator-API/environment/vnfIndicators.txt |  2 ++
 .../VNFLifecycleManagement-API/Subscriptions.robot |  2 +-
 SOL002/VNFPerformanceManagement-API/PMJobs.robot   |  3 ++-
 .../VNFPerformanceManagement-API/Thresholds.robot  |  3 ++-
 .../VNFPerformanceManagementKeywords.robot         |  2 +-
 .../environment/pmJobs.txt                         |  1 +
 .../environment/subscriptions.txt                  |  4 ++--
 .../environment/thresholds.txt                     |  1 +
 .../FaultManagement-APIKeyword.robot               |  2 +-
 SOL003/VNFFaultManagement-API/Subscriptions.robot  |  2 +-
 .../VNFIndicator-API/VNFIndicatorsKeywords.robot   |  7 +++++--
 .../VNFIndicator-API/environment/vnfIndicators.txt |  2 ++
 .../IndividualVNFInstance.robot                    |  2 +-
 .../VNFPackageManagementKeywords.robot             |  9 ++++++---
 .../environment/subscriptions.txt                  |  1 +
 .../environment/vnfPackages.txt                    |  2 ++
 SOL003/VNFPerformanceManagement-API/PMJobs.robot   |  3 ++-
 .../VNFPerformanceManagementKeywords.robot         |  2 +-
 .../environment/pmJobs.txt                         |  1 +
 .../environment/subscriptions.txt                  |  4 ++--
 .../NSDManagement-API/NSDManagementKeywords.robot  | 14 ++++++--------
 .../environment/nsDescriptors.txt                  |  3 ++-
 .../environment/subscriptions.txt                  |  1 +
 SOL005/NSFaultManagement-API/Subscriptions.robot   |  2 +-
 .../NSPerformanceManagementKeywords.robot          |  9 +++++----
 .../environment/subscriptions.txt                  |  1 +
 .../environment/thresholds.txt                     |  3 ++-
 .../VNFPackageManagementKeywords.robot             | 10 +++++++---
 .../environment/subscriptions.txt                  |  3 ++-
 .../environment/vnfPackages.txt                    |  2 ++
 35 files changed, 77 insertions(+), 43 deletions(-)

diff --git a/SOL002/VNFIndicator-API/Subscriptions.robot b/SOL002/VNFIndicator-API/Subscriptions.robot
index 51353f63..323810ca 100644
--- a/SOL002/VNFIndicator-API/Subscriptions.robot
+++ b/SOL002/VNFIndicator-API/Subscriptions.robot
@@ -220,9 +220,9 @@ Check Postcondition VNF Indicator Subscription Is Set
     
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes VNF Indicators according to filter
-    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${POS_FILTER['callbackUri']}
-
-
+    @{words} =  Split String    ${POS_FILTER}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['callbackUri']}    @{words}[1]
+    
 Create Sessions
     Pass Execution If    ${VNFM_CHECKS_NOTIF_ENDPOINT} == 0   MockServer not necessary to run    
     Start Process  java  -jar  ${MOCK_SERVER_JAR}    -serverPort  ${callback_port}  alias=mockInstance
diff --git a/SOL002/VNFIndicator-API/VNFIndicators.robot b/SOL002/VNFIndicator-API/VNFIndicators.robot
index 3af5adf1..96731625 100644
--- a/SOL002/VNFIndicator-API/VNFIndicators.robot
+++ b/SOL002/VNFIndicator-API/VNFIndicators.robot
@@ -269,5 +269,7 @@ Check Postcondition VNF Indicators Exist
     
 Check HTTP Response Body vnfIndicators Matches the requested attribute-based filter
     Log    Check Response includes VNF Indicators according to filter
-    Should Be True     "${response[0]['body']['name']}"=="${POS_FILTER['name']}" and "${response[0]['body']['vnfInstanceId']}"=="${POS_FILTER['vnfInstanceId']}"
-    
\ No newline at end of file
+    @{attr} =  Split String    ${POS_FILTER}       ,${VAR_SEPERATOR} 
+    @{var_name} = Split String    @{attr}[0]       ,${SEPERATOR}
+    @{var_id} = Split String    @{attr}[1]       ,${SEPERATOR}
+    Should Be True     "${response['body'][0]['name']}"=="@{var_name}[1]" and "${response['body'][0]['vnfInstanceId']}"=="@{var_id}[1]"
\ No newline at end of file
diff --git a/SOL002/VNFIndicator-API/VnfIndicatorsInVnfInstanceId.robot b/SOL002/VNFIndicator-API/VnfIndicatorsInVnfInstanceId.robot
index 79a4b97c..00bbffa1 100644
--- a/SOL002/VNFIndicator-API/VnfIndicatorsInVnfInstanceId.robot
+++ b/SOL002/VNFIndicator-API/VnfIndicatorsInVnfInstanceId.robot
@@ -200,7 +200,8 @@ Check HTTP Response Body Includes Requested VNF Instance ID
     
 Check HTTP Response Body Matches Attribute-Based Filter
     Log    Check Response includes VNF Indicators according to filter
-    Should Be Equal As Strings    ${response[0]['body']['name']}    ${POS_FIELDS['name']}
+    @{words} =  Split String    ${POS_FIELDS}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['name']}    @{words}[1]
 
 Check Postcondition Indicators for VNF instance Exist
     Log    Check Postcondition Indicators for VNF instance Exist
diff --git a/SOL002/VNFIndicator-API/environment/subscriptions.txt b/SOL002/VNFIndicator-API/environment/subscriptions.txt
index 401b374f..ec4b63ac 100644
--- a/SOL002/VNFIndicator-API/environment/subscriptions.txt
+++ b/SOL002/VNFIndicator-API/environment/subscriptions.txt
@@ -7,3 +7,4 @@ ${NEG_FILTER}     callback=http://127.0.0.1/subscribe
 ${response}=    httpresponse
 ${total_polling_time}   2 min
 ${polling_interval}     10 sec
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL002/VNFIndicator-API/environment/vnfIndicatorinVnfInstance.txt b/SOL002/VNFIndicator-API/environment/vnfIndicatorinVnfInstance.txt
index 4ebe5488..8651dee3 100644
--- a/SOL002/VNFIndicator-API/environment/vnfIndicatorinVnfInstance.txt
+++ b/SOL002/VNFIndicator-API/environment/vnfIndicatorinVnfInstance.txt
@@ -4,3 +4,4 @@ ${erroneousVnfInstanceId}    erroneousVnfInstanceId
 ${POS_FIELDS}     name=vnfIndicator
 ${NEG_FIELDS}     wrongName=any_value
 ${response}=    httpresponse
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL002/VNFIndicator-API/environment/vnfIndicators.txt b/SOL002/VNFIndicator-API/environment/vnfIndicators.txt
index 8b1a56f4..3613a999 100644
--- a/SOL002/VNFIndicator-API/environment/vnfIndicators.txt
+++ b/SOL002/VNFIndicator-API/environment/vnfIndicators.txt
@@ -3,3 +3,5 @@ ${POS_FIELDS}     name=vnfIndicator&vnfInstanceId=80b0deba-c398-445b-bef0-ac0fe7
 ${NEG_FIELDS}     wrongName=wrongValue
 ${response}       some_response_object
 ${vnfIndicators}  
+${SEPERATOR}      =
+${VAR_SEPERATOR}    &
\ No newline at end of file
diff --git a/SOL002/VNFLifecycleManagement-API/Subscriptions.robot b/SOL002/VNFLifecycleManagement-API/Subscriptions.robot
index 343e4161..c5fe1272 100644
--- a/SOL002/VNFLifecycleManagement-API/Subscriptions.robot
+++ b/SOL002/VNFLifecycleManagement-API/Subscriptions.robot
@@ -61,7 +61,7 @@ GET Subscriptions
 GET Subscription - Filter
     [Documentation]    Test ID: 6.3.5.17.5
     ...    Test title: GET Subscriptions - Filter
-    ...    Test objective: The objective is Get the list of active subscriptions using a filter
+    ...    Test objective: The objective is Get the list of active subscriptions using a "filter"
     ...    Pre-conditions: none
     ...    Reference: clause 5.4.18.3.2 - ETSI GS NFV-SOL 002 [2] v2.4.1
     ...    Config ID: Config_prod_VE
diff --git a/SOL002/VNFPerformanceManagement-API/PMJobs.robot b/SOL002/VNFPerformanceManagement-API/PMJobs.robot
index 4446a1f7..b9c9991b 100644
--- a/SOL002/VNFPerformanceManagement-API/PMJobs.robot
+++ b/SOL002/VNFPerformanceManagement-API/PMJobs.robot
@@ -324,7 +324,8 @@ Check HTTP Response Body Matches all_fields selector
     
 Check HTTP Response Body Matches filter
     Log    Checking that attribute-based filter is matched
-    Should Be Equal As Strings    ${response[0]['body']['objectInstanceIds']}    ${POS_FILTER['objectInstanceIds']}
+    @{words} =  Split String    ${POS_FILTER}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['objectInstanceIds']}    @{words}[1]
 
 Check HTTP Response Body Does Not Contain reports
     Log    Checking that field element is missing
diff --git a/SOL002/VNFPerformanceManagement-API/Thresholds.robot b/SOL002/VNFPerformanceManagement-API/Thresholds.robot
index c0a67c90..606c0bb6 100644
--- a/SOL002/VNFPerformanceManagement-API/Thresholds.robot
+++ b/SOL002/VNFPerformanceManagement-API/Thresholds.robot
@@ -195,7 +195,8 @@ Check Postcondition Threshold Exists
         
 Check HTTP Response Body Thresholds match the requested attribute-based filter
     Log    Checking that attribute-based filter is matched
-    Should Be Equal As Strings    ${response[0]['body']['objectInstanceId']}    ${FILTER_OK['objectInstanceId']}
+    @{words} =  Split String    ${FILTER_OK}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['objectInstanceId']}    @{words}[1]
     
 Check HTTP Response Status Code Is
     [Arguments]    ${expected_status}
diff --git a/SOL002/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot b/SOL002/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot
index ad37a2c9..47eec5aa 100644
--- a/SOL002/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot
+++ b/SOL002/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot
@@ -283,7 +283,7 @@ Check HTTP Response Body Is Empty
 
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes VNF Performance Management according to filter
-    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${callbackUri}
+    Should Be Equal As Strings    ${response['body'][0]['callbackUri']}    ${callbackUri_Sub}
 
 Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription
     Log    Check Response matches subscription
diff --git a/SOL002/VNFPerformanceManagement-API/environment/pmJobs.txt b/SOL002/VNFPerformanceManagement-API/environment/pmJobs.txt
index 6c80ca05..f1675679 100644
--- a/SOL002/VNFPerformanceManagement-API/environment/pmJobs.txt
+++ b/SOL002/VNFPerformanceManagement-API/environment/pmJobs.txt
@@ -3,3 +3,4 @@ ${POS_FILTER}     objectInstanceIds=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a
 ${NEG_FILTER}     criteriaPmJob=erroneousAttributeName
 ${fields}         criteria,reports
 ${response}=    httpresponse
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL002/VNFPerformanceManagement-API/environment/subscriptions.txt b/SOL002/VNFPerformanceManagement-API/environment/subscriptions.txt
index a450bb1b..c4904574 100644
--- a/SOL002/VNFPerformanceManagement-API/environment/subscriptions.txt
+++ b/SOL002/VNFPerformanceManagement-API/environment/subscriptions.txt
@@ -1,6 +1,6 @@
 *** Variables ***
-${callbackUri}    http://172.22.1.7:9091/vnfpm/subscriptions
-${filter_ok}      callbackUri=${callbackUri}
+${callbackUri_Sub}    http://172.22.1.7:9091/vnfpm/subscriptions
+${filter_ok}      callbackUri=${callbackUri_Sub}
 ${filter_ko}      erroneousFilter=erroneous
 ${total_polling_time}   2 min
 ${polling_interval}     10 sec
diff --git a/SOL002/VNFPerformanceManagement-API/environment/thresholds.txt b/SOL002/VNFPerformanceManagement-API/environment/thresholds.txt
index 256e2c90..b044c053 100644
--- a/SOL002/VNFPerformanceManagement-API/environment/thresholds.txt
+++ b/SOL002/VNFPerformanceManagement-API/environment/thresholds.txt
@@ -2,3 +2,4 @@
 ${FILTER_OK}      objectInstanceId=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a
 ${FILTER_KO}      criterias=erroneousFilter
 ${response}=    httpresponse
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot b/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot
index 2a035404..05c29e0b 100644
--- a/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot
+++ b/SOL003/VNFFaultManagement-API/FaultManagement-APIKeyword.robot
@@ -12,7 +12,7 @@ Library    Process
 ${original_etag}    1234
 
 *** Keywords ***
-Check created Subscription existance
+Check created Subscription existence
     ${subscriptionId} = ${response['body']['id']}
     Set Headers    {"Accept":"${ACCEPT}"}
     Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization":"${AUTHORIZATION}"}
diff --git a/SOL003/VNFFaultManagement-API/Subscriptions.robot b/SOL003/VNFFaultManagement-API/Subscriptions.robot
index 2755aaf8..67b733ec 100644
--- a/SOL003/VNFFaultManagement-API/Subscriptions.robot
+++ b/SOL003/VNFFaultManagement-API/Subscriptions.robot
@@ -21,7 +21,7 @@ Create a new Fault Management alarm subscription
     Check HTTP Response Status Code Is    201
     Check Operation Occurrence Id
     Check HTTP Response Body Json Schema Is  FmSubscription
-    Check created Subscription existance 
+    Check created Subscription existence 
   
 
 Create a new alarm subscription - DUPLICATION
diff --git a/SOL003/VNFIndicator-API/VNFIndicatorsKeywords.robot b/SOL003/VNFIndicator-API/VNFIndicatorsKeywords.robot
index 4b1e7758..6a5d23a1 100644
--- a/SOL003/VNFIndicator-API/VNFIndicatorsKeywords.robot
+++ b/SOL003/VNFIndicator-API/VNFIndicatorsKeywords.robot
@@ -329,8 +329,11 @@ Check Postcondition VNF Indicators Exist
     
 Check HTTP Response Body vnfIndicators Matches the requested attribute-based filter
     Log    Check Response includes VNF Indicators according to filter
-    Should Be True     "${response[0]['body']['name']}"=="${POS_FIELDS['name']}" and "${response[0]['body']['vnfInstanceId']}"=="${POS_FIELDS['vnfInstanceId']}"
-
+    @{attr} =  Split String    ${POS_FIELDS}       ,${VAR_SEPERATOR} 
+    @{var_name} = Split String    @{attr}[0]       ,${SEPERATOR}
+    @{var_id} = Split String    @{attr}[1]       ,${SEPERATOR}
+    Should Be True     "${response['body'][0]['name']}"=="@{var_name}[1]" and "${response['body'][0]['vnfInstanceId']}"=="@{var_id}[1]"
+    
 Get all indicators for a VNF instance
     Log    This resource represents VNF indicators related to a VNF instance.
     Set Headers    {"Accept": "${ACCEPT_JSON}"}
diff --git a/SOL003/VNFIndicator-API/environment/vnfIndicators.txt b/SOL003/VNFIndicator-API/environment/vnfIndicators.txt
index 626c660f..b4ca7cea 100644
--- a/SOL003/VNFIndicator-API/environment/vnfIndicators.txt
+++ b/SOL003/VNFIndicator-API/environment/vnfIndicators.txt
@@ -1,3 +1,5 @@
 *** Variables ***
 ${POS_FIELDS}     name=vnfIndicator&vnfInstanceId=80b0deba-c398-445b-bef0-ac0fe733e3d0
 ${NEG_FIELDS}     wrongName=wrongValue
+${SEPERATOR}      =
+${VAR_SEPERATOR}    &
\ No newline at end of file
diff --git a/SOL003/VNFLifecycleManagement-API/IndividualVNFInstance.robot b/SOL003/VNFLifecycleManagement-API/IndividualVNFInstance.robot
index 9af273e2..8074476a 100644
--- a/SOL003/VNFLifecycleManagement-API/IndividualVNFInstance.robot
+++ b/SOL003/VNFLifecycleManagement-API/IndividualVNFInstance.robot
@@ -66,7 +66,7 @@ PATCH Individual VNFInstance
 PATCH Individual VNFInstance Precondition failed
      [Documentation]    Test ID: 7.3.1.2.5
     ...    Test title: PATCH Individual VNFInstance Precondition failed
-    ...    Test objective: The objective is to create a new VNF instance resource
+    ...    Test objective: The objective is to test that PATCH method is not allowed to modify VNF Instance because pre-condition failed
     ...    Pre-conditions:  VNF Instance is already created (Test ID 7.3.1.2.2)
     ...    Reference: clause 5.4.3.3.4 - ETSI GS NFV-SOL 003 [1] v2.4.1
     ...    Config ID: Config_prod_VNFM
diff --git a/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot b/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
index ce939f4a..2411b8b8 100644
--- a/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
+++ b/SOL003/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
@@ -54,7 +54,10 @@ GET VNF Packages with attribute-based filter
 
 Check HTTP Response Body VnfPkgsInfo Matches the requested Attribute-Based Filter
     Log    Checking that attribute-based filter is matched
-    Should Be True     "${response[0]['body']['vnfdId']}"=="${POS_FILTER['vnfdId']}" and "${response[0]['body']['vnfProvider']}"=="${POS_FILTER['vnfProvider']}" 
+    @{attr} =  Split String    ${POS_FILTER}       ,${VAR_SEPERATOR} 
+    @{var_id} = Split String    @{attr}[0]       ,${SEPERATOR}
+    @{var_provider} = Split String    @{attr}[1]       ,${SEPERATOR}
+    Should Be True     "${response['body'][0]['vnfdId']}"=="@{var_id}[1]" and "${response['body'][0]['vnfProvider']}"=="@{var_provider}[1]"
 
 GET VNF Packages with invalid attribute-based filter
     Log    Trying to perform a negative get, filtering by the inexistent filter 'nfvId'
@@ -631,8 +634,8 @@ Check HTTP Response Body Is Empty
 
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes VNF Package Management according to filter
-    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${filter_ok['callbackUri']}
-
+    @{words} =  Split String    ${filter_ok}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['callbackUri']}    @{words}[1]
 
 Check HTTP Response Body PkgmSubscription Attributes Values Match the Issued Subscription
     Log    Check Response matches subscription
diff --git a/SOL003/VNFPackageManagement-API/environment/subscriptions.txt b/SOL003/VNFPackageManagement-API/environment/subscriptions.txt
index 171d1862..ca34ee83 100644
--- a/SOL003/VNFPackageManagement-API/environment/subscriptions.txt
+++ b/SOL003/VNFPackageManagement-API/environment/subscriptions.txt
@@ -4,3 +4,4 @@ ${filter_ko}      nfvId=f9f130e4-05eb-4082-a676-4c97d13a883d    # Not existant f
 ${callbackUri}    http://172.22.1.7:9091/vnfpkgm/subscriptions
 ${total_polling_time}   2 min
 ${polling_interval}     10 sec
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL003/VNFPackageManagement-API/environment/vnfPackages.txt b/SOL003/VNFPackageManagement-API/environment/vnfPackages.txt
index 9786732e..ff87485e 100644
--- a/SOL003/VNFPackageManagement-API/environment/vnfPackages.txt
+++ b/SOL003/VNFPackageManagement-API/environment/vnfPackages.txt
@@ -3,3 +3,5 @@ ${POS_FILTER}     vnfdId=41fdd38a-3d4c-465c-83e0-f80e014425f8 ,vnfProvider=NXW
 ${NEG_FILTER}     nfvId=41fdd38a-3d4c-465c-83e0-f80e014425f8    # Negative case, using wrong name of field
 ${fields}         softwareImages,additionalArtifacts
 ${response}       httpresponse   
+${SEPERATOR}      =
+${VAR_SEPERATOR}    &
\ No newline at end of file
diff --git a/SOL003/VNFPerformanceManagement-API/PMJobs.robot b/SOL003/VNFPerformanceManagement-API/PMJobs.robot
index d21247a5..d3cac1bf 100644
--- a/SOL003/VNFPerformanceManagement-API/PMJobs.robot
+++ b/SOL003/VNFPerformanceManagement-API/PMJobs.robot
@@ -324,7 +324,8 @@ Check HTTP Response Body PmJobs Matches the requested all_fields selector
     
 Check HTTP Response Body PmJobs Matches the requested Attribute-Based Filter 
     Log    Checking that attribute-based filter is matched
-    Should Be Equal As Strings    ${response[0]['body']['objectInstanceIds']}    ${POS_FILTER['objectInstanceIds']}
+    @{words} =  Split String    ${POS_FILTER}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['objectInstanceIds']}    @{words}[1]
 
 Check HTTP Response Body Does Not Contain reports
     Log    Checking that field element is missing
diff --git a/SOL003/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot b/SOL003/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot
index dd4afd07..a1587b8e 100644
--- a/SOL003/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot
+++ b/SOL003/VNFPerformanceManagement-API/VNFPerformanceManagementKeywords.robot
@@ -283,7 +283,7 @@ Check HTTP Response Body Is Empty
 
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes VNF Performance Management according to filter
-    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${filter_ok['callbackUri']}
+    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${callbackUri_Sub}
 
 Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription
     Log    Check Response matches subscription
diff --git a/SOL003/VNFPerformanceManagement-API/environment/pmJobs.txt b/SOL003/VNFPerformanceManagement-API/environment/pmJobs.txt
index 30b6682e..9891d3fe 100644
--- a/SOL003/VNFPerformanceManagement-API/environment/pmJobs.txt
+++ b/SOL003/VNFPerformanceManagement-API/environment/pmJobs.txt
@@ -3,3 +3,4 @@ ${POS_FILTER}     objectInstanceIds=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a
 ${NEG_FILTER}     criteriaPmJob=erroneousAttributeName
 ${fields}         criteria,objectInstanceIds
 ${response}       httpresponse         
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL003/VNFPerformanceManagement-API/environment/subscriptions.txt b/SOL003/VNFPerformanceManagement-API/environment/subscriptions.txt
index 304f9a2c..46984c68 100644
--- a/SOL003/VNFPerformanceManagement-API/environment/subscriptions.txt
+++ b/SOL003/VNFPerformanceManagement-API/environment/subscriptions.txt
@@ -1,6 +1,6 @@
 *** Variables ***
-${callbackUri}    http://172.22.1.7:9091/vnfpm/subscriptions
-${filter_ok}      callbackUri=${callbackUri}
+${callbackUri_Sub}    http://172.22.1.7:9091/vnfpm/subscriptions
+${filter_ok}      callbackUri=${callbackUri_Sub}
 ${filter_ko}      erroneousFilter=erroneous
 ${total_polling_time}   2 min
 ${polling_interval}     10 sec
diff --git a/SOL005/NSDManagement-API/NSDManagementKeywords.robot b/SOL005/NSDManagement-API/NSDManagementKeywords.robot
index 94c38ed2..4c8d1061 100644
--- a/SOL005/NSDManagement-API/NSDManagementKeywords.robot
+++ b/SOL005/NSDManagement-API/NSDManagementKeywords.robot
@@ -32,7 +32,8 @@ GET Network Service Descriptors Information with attribute-based filter
     
 Check HTTP Response Body NsdInfos Matches the requested attribute-based filter
     Log    Checking that attribute-based filter is matched
-    Should Be Equal As Strings    ${response['body'][0]['nsdName']}    ${NSD_NAME['nsdName']}
+    @{words} =  Split String    ${NSD_NAME}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['nsdName']}    @{words}[1]
 
 GET Network Service Descriptors Information with invalid attribute-based filter
     Log    The GET method queries multiple NS descriptors using Attribute-based filtering parameters. Negative case, with erroneous attribute name
@@ -503,9 +504,8 @@ GET PNF Descriptors Information with attribute-based filter
     
 Check HTTP Response Body PnfdInfos Matches the requested attribute-based filter
     Log    Checking that attribute-based filter is matched
-==== BASE ====
-    #todo
-==== BASE ====
+    @{words} =  Split String    ${PNFD_NAME}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['pnfdName']}    @{words}[1]
 
 GET PNF Descriptors Information with invalid attribute-based filter
     Log    The GET method queries multiple PNF descriptors using Attribute-based filtering parameters. Negative case, with erroneous attribute name
@@ -895,10 +895,8 @@ Check HTTP Response Body Is Empty
     
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes NSD Management Management according to filter
-==== BASE ====
-    #TODO
-
-==== BASE ====
+    @{words} =  Split String    ${filter_ok}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['callbackUri']}    @{words}[1]
 
 Check HTTP Response Body NsdmSubscription Attributes Values Match the Issued Subscription
     Log    Check Response matches subscription
diff --git a/SOL005/NSDManagement-API/environment/nsDescriptors.txt b/SOL005/NSDManagement-API/environment/nsDescriptors.txt
index 7f1abcc9..b16e19ee 100644
--- a/SOL005/NSDManagement-API/environment/nsDescriptors.txt
+++ b/SOL005/NSDManagement-API/environment/nsDescriptors.txt
@@ -30,4 +30,5 @@ ${usageState}    state
 ${length}          1024
 ${createdNsdInfoId}    f27200b1-1d8b-48c2-9d98-a993b8ab117f
 ${NSD_NAME}     nsdName=onBoardedNSD
-${PNFD_NAME}     pnfdName=onBoardedPNFD
\ No newline at end of file
+${PNFD_NAME}     pnfdName=onBoardedPNFD
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL005/NSDManagement-API/environment/subscriptions.txt b/SOL005/NSDManagement-API/environment/subscriptions.txt
index 553e803c..d8c04110 100644
--- a/SOL005/NSDManagement-API/environment/subscriptions.txt
+++ b/SOL005/NSDManagement-API/environment/subscriptions.txt
@@ -1,3 +1,4 @@
 *** Variables ***
 ${filter_ok}      callbackUri=http://172.22.1.7:9091/nsd/subscriptions
 ${filter_ko}      nfvId=f9f130e4-05eb-4082-a676-4c97d13a883d    # Not existant filter attribute-based
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL005/NSFaultManagement-API/Subscriptions.robot b/SOL005/NSFaultManagement-API/Subscriptions.robot
index fb8de853..80d37a1d 100644
--- a/SOL005/NSFaultManagement-API/Subscriptions.robot
+++ b/SOL005/NSFaultManagement-API/Subscriptions.robot
@@ -175,4 +175,4 @@ DELETE subscriptions - Method not implemented
     ...    Applicability:  none
     ...    Post-Conditions: subscription is not deleted
     DELETE Subscriptions
-    Check HTTP Response Status Code Is    405
\ No newline at end of file
+    Check HTTP Response Status Code Is    405
diff --git a/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot b/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot
index afdae114..66031086 100644
--- a/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot
+++ b/SOL005/NSPerformanceManagement-API/NSPerformanceManagementKeywords.robot
@@ -351,7 +351,7 @@ GET Performance Thresholds with attribute-based filter
     Log    Trying to get thresholds present in the NFVO with filter
     Set Headers    {"Accept": "${ACCEPT_JSON}"}
     Run Keyword If    ${AUTH_USAGE} == 1    Set Headers    {"Authorization": ${AUTHORIZATION}"}
-    GET    ${apiRoot}/${apiName}/${apiVersion}/thresholds?${FILTER_OK}
+    GET    ${apiRoot}/${apiName}/${apiVersion}/thresholds?${FILTER_OK_Threshold}
     ${output}=    Output    response
     Set Suite Variable    ${response}    ${output}
 
@@ -422,7 +422,8 @@ Check Postcondition Threshold Exists
         
 Check HTTP Response Body Thresholds match the requested attribute-based filter
     Log    Checking that attribute-based filter is matched
-    Should Be Equal As Strings    ${response[0]['body']['objectInstanceId']}    ${filter_ok['objectInstanceId']}
+    @{words} =  Split String    ${FILTER_OK_Threshold}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['objectInstanceId']}    @{words}[1]
     
 
 GET Individual NS performance Threshold
@@ -656,8 +657,8 @@ Check HTTP Response Body Is Empty
 
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes NS Package Management according to filter
-    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${filter_ok['callbackUri']}
-
+    @{words} =  Split String    ${filter_ok}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['callbackUri']}    @{words}[1]
 
 Check HTTP Response Body PmSubscription Attributes Values Match the Issued Subscription
     Log    Check Response matches subscription
diff --git a/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt b/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt
index fec8c84b..78a57419 100644
--- a/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt
+++ b/SOL005/NSPerformanceManagement-API/environment/subscriptions.txt
@@ -1,3 +1,4 @@
 *** Variables ***
 ${filter_ok}      callbackUri=http://localhost/subscriptions
 ${filter_ko}      erroneousFilter=erroneous
+${SEPERATOR}      =
diff --git a/SOL005/NSPerformanceManagement-API/environment/thresholds.txt b/SOL005/NSPerformanceManagement-API/environment/thresholds.txt
index 49461a09..587560f0 100644
--- a/SOL005/NSPerformanceManagement-API/environment/thresholds.txt
+++ b/SOL005/NSPerformanceManagement-API/environment/thresholds.txt
@@ -1,3 +1,4 @@
 *** Variables ***
-${FILTER_OK}      objectInstanceId=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a
+${FILTER_OK_Threshold}      objectInstanceId=1f50d68b-82e8-4deb-bd40-c934d4d1ac0a
 ${FILTER_KO}      criterias=erroneousFilter
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot b/SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
index 6d06f792..67cfbe57 100644
--- a/SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
+++ b/SOL005/VNFPackageManagement-API/VNFPackageManagementKeywords.robot
@@ -59,8 +59,11 @@ GET VNF Packages with attribute-based filter
 
 Check HTTP Response Body VnfPkgsInfo Matches the requested Attribute-Based Filter
     Log    Checking that attribute-based filter is matched
-    Should Be True     "${response[0]['body']['vnfdId']}"=="${POS_FILTER['vnfdId']}" and "${response[0]['body']['vnfProvider']}"=="${POS_FILTER['vnfProvider']}"
-
+    @{attr} =  Split String    ${POS_FILTER}       ,${VAR_SEPERATOR} 
+    @{var_id} = Split String    @{attr}[0]       ,${SEPERATOR}
+    @{var_provider} = Split String    @{attr}[1]       ,${SEPERATOR}
+    Should Be True     "${response['body'][0]['vnfdId']}"=="@{var_id}[1]" and "${response['body'][0]['vnfProvider']}"=="@{var_provider}[1]"
+    
 GET VNF Packages with invalid attribute-based filter
     Log    Trying to perform a negative get, filtering by the inexistent filter 'nfvId'
     Set Headers    {"Accept": "${ACCEPT_JSON}"}
@@ -907,7 +910,8 @@ Check HTTP Response Body Json Schema Is
     
 Check HTTP Response Body Subscriptions Match the requested Attribute-Based Filter
     Log    Check Response includes VNF Package Management according to filter
-    Should Be Equal As Strings    ${response[0]['body']['callbackUri']}    ${filter_ok['callbackUri']}
+    @{words} =  Split String    ${filter_ok}       ,${SEPERATOR} 
+    Should Be Equal As Strings    ${response['body'][0]['callbackUri']}    @{words}[1]
 
 Check HTTP Response Body Subscription Identifier matches the requested Subscription
     Log    Trying to check response ID
diff --git a/SOL005/VNFPackageManagement-API/environment/subscriptions.txt b/SOL005/VNFPackageManagement-API/environment/subscriptions.txt
index cddf01ee..ca34ee83 100644
--- a/SOL005/VNFPackageManagement-API/environment/subscriptions.txt
+++ b/SOL005/VNFPackageManagement-API/environment/subscriptions.txt
@@ -3,4 +3,5 @@ ${filter_ok}      callbackUri=http://172.22.1.7:9091/vnfpkgm/subscriptions
 ${filter_ko}      nfvId=f9f130e4-05eb-4082-a676-4c97d13a883d    # Not existant filter attribute-based
 ${callbackUri}    http://172.22.1.7:9091/vnfpkgm/subscriptions
 ${total_polling_time}   2 min
-${polling_interval}     10 sec
\ No newline at end of file
+${polling_interval}     10 sec
+${SEPERATOR}      =
\ No newline at end of file
diff --git a/SOL005/VNFPackageManagement-API/environment/vnfPackages.txt b/SOL005/VNFPackageManagement-API/environment/vnfPackages.txt
index e7e4eecb..8f599ef6 100644
--- a/SOL005/VNFPackageManagement-API/environment/vnfPackages.txt
+++ b/SOL005/VNFPackageManagement-API/environment/vnfPackages.txt
@@ -6,3 +6,5 @@ ${fields}         softwareImages,additionalArtifacts
 ${response}       httpresponse
 ${NEG_AUTHORIZATION}    Bearer negativetoken
 ${BAD_AUTHORIZATION}    Bear sometoken
+${SEPERATOR}      =
+${VAR_SEPERATOR}    &
-- 
GitLab