blob: 9097c1a91f919f81f564ff1e01954da8989869b7 [file] [log] [blame]
Bartosz Gardziejewski03591ab2020-09-29 13:50:12 +02001*** Settings ***
Bartosz Gardziejewski64b0fe12020-10-06 08:12:12 +02002Resource ./resources/vnfsdk_keywords.robot
Bartosz Gardziejewski03591ab2020-09-29 13:50:12 +02003
4*** Test Cases ***
Bartosz Gardziejewski64b0fe12020-10-06 08:12:12 +02005
Bartosz Gardziejewski03591ab2020-09-29 13:50:12 +02006Perform vnf refrepo healthcheck
7 [Documentation] Check if vnf refrepo is up and running
Bartosz Gardziejewskie8725132020-10-06 14:03:36 +02008
Bartosz Gardziejewski03591ab2020-09-29 13:50:12 +02009 Create Session refrepo ${base_url}
10 ${response}= Get Request refrepo /PackageResource/healthcheck
11 Should Be Equal As Strings ${response.status_code} 200
Bartosz Gardziejewski64b0fe12020-10-06 08:12:12 +020012
13Validate correct, no security CSAR
14 [Documentation] Valid CSAR with no security should PASS validation and should return no error
Bartosz Gardziejewskie8725132020-10-06 14:03:36 +020015
16 ${response}= Validate CSAR usign Post request ${csar_valid_no_security} ${execute_no_security_csar_validation}
Bartosz Gardziejewski64b0fe12020-10-06 08:12:12 +020017 # Removing strings that are causing errors during evaluation,
18 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
19 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
20 ${json_response}= evaluate json.loads('''${response}''') json
Bartosz Gardziejewski81df68b2020-12-22 14:39:02 +010021 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_PASS}
Bartosz Gardziejewski64b0fe12020-10-06 08:12:12 +020022 FOR ${resault} IN @{json_response[0]["results"]["results"]}
23 Should Be Equal As Strings ${resault["errors"]} []
24 Should Be Equal As Strings ${resault["passed"]} True
Bartosz Gardziejewski81df68b2020-12-22 14:39:02 +010025 run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}"
26 ... Should Be Equal As Strings ${resault["warnings"]} ${expected_valid_no_security_warnings}
Bartosz Gardziejewski64b0fe12020-10-06 08:12:12 +020027 END
Bartosz Gardziejewskie8725132020-10-06 14:03:36 +020028
29
Bartosz Gardziejewski81df68b2020-12-22 14:39:02 +010030Validate secure CSAR with invalid certificate
31 [Documentation] Valid CSAR with cms signature in manifest file and certificate in TOSCA, containing individual signatures for multiple artifacts, using common certificate and individual certificate
32
33 ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation}
34 # Removing strings that are causing errors during evaluation,
35 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
36 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
37 ${json_response}= evaluate json.loads('''${response}''') json
38 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED}
39 ${validated_rules}= Get Length ${json_response[0]["results"]["results"]}
40 Should Be Equal As Strings ${validated_rules} 14
41 FOR ${resault} IN @{json_response[0]["results"]["results"]}
42 ${validation_errors}= Get Length ${resault["errors"]}
43 run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}"
Bartosz Gardziejewskif24ffce2021-01-13 09:28:01 +010044 ... Should Be Equal As Strings ${validation_errors} 9
Bartosz Gardziejewski81df68b2020-12-22 14:39:02 +010045 run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}"
46 ... Should Be Equal As Strings ${validation_errors} 1
47 run keyword if "${resault["vnfreqName"]}" == "${MANIFEST_FILE_RULE}"
48 ... Should Be Equal As Strings ${validation_errors} 1
49 run keyword if "${resault["vnfreqName"]}" == "${NON_MANO_FILES_RULE}"
50 ... Should Be Equal As Strings ${validation_errors} 4
51 END
52
53
54Validate CSAR using selected rules
55 [Documentation] Valid CSAR using only selected rules provided in request parameters
56
57 ${response}= Validate CSAR usign Post request ${csar_invalid_with_security} ${execute_security_csar_validation_selected_rules}
58 # Removing strings that are causing errors during evaluation,
59 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
60 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
61 ${json_response}= evaluate json.loads('''${response}''') json
62 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} ${OPERATION_STATUS_FAILED}
63 ${validated_rules}= Get Length ${json_response[0]["results"]["results"]}
64 Should Be Equal As Strings ${validated_rules} 3
65 FOR ${resault} IN @{json_response[0]["results"]["results"]}
66 ${validation_errors}= Get Length ${resault["errors"]}
67 run keyword if "${resault["vnfreqName"]}" == "${CERTIFICATION_RULE}"
Bartosz Gardziejewskif24ffce2021-01-13 09:28:01 +010068 ... Should Be Equal As Strings ${validation_errors} 9
Bartosz Gardziejewski81df68b2020-12-22 14:39:02 +010069 run keyword if "${resault["vnfreqName"]}" == "${PM_DICTIONARY_YAML_RULE}"
70 ... Should Be Equal As Strings ${validation_errors} 1
71 END
72
73
74
Bartosz Gardziejewski3a55c902020-10-08 13:04:24 +020075Validate CSAR using rule r130206 and use get method to receive outcome
76 [Documentation] Validate CSAR with invalid PM_Dictionary (r130206) using rule r130206 , then use get method with validation id to receive valdiation outcome
Bartosz Gardziejewskie8725132020-10-06 14:03:36 +020077
Bartosz Gardziejewski3a55c902020-10-08 13:04:24 +020078 ${response}= Validate CSAR usign Post request ${csar_invalid_pm_dictionary} ${execute_invalid_pm_dictionary_r130206_validation}
Bartosz Gardziejewskie8725132020-10-06 14:03:36 +020079 # Removing strings that are causing errors during evaluation,
80 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
81 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
82 ${json_response}= evaluate json.loads('''${response}''') json
83
84 ${get_response}= Get validation result using GET request ${json_response[0]["executionId"]}
85 # Removing strings that are causing errors during evaluation,
86 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
87 ${get_response}= Remove String ${get_response} \\\\ \\u0027
88 ${json_get_response}= evaluate json.loads('''${get_response}''') json
89 Should Be Equal As Strings ${json_get_response[0]["status"]} failed
90 ${errors_number}= Get Length ${json_get_response[0]["results"]}
91 Should Be Equal As Strings ${errors_number} 4
92 FOR ${error} IN @{json_get_response[0]["results"]}
93 Should Contain ${error["code"]} R130206
94 END
Bartosz Gardziejewski3a55c902020-10-08 13:04:24 +020095
96Validate CSAR using all rule and use get method to receive outcome
97 [Documentation] Validate CSAR with invalid PM_Dictionary (r130206) using all rules, then use get method with validation id to receive valdiation outcome
98
99 ${response}= Validate CSAR usign Post request ${csar_invalid_pm_dictionary} ${execute_invalid_pm_dictionary_validation}
100 # Removing strings that are causing errors during evaluation,
101 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
102 ${response}= Remove String ${response} \\\\ \\u003c \\u003e \\"
103 ${json_response}= evaluate json.loads('''${response}''') json
104
105 ${get_response}= Get validation result using GET request ${json_response[0]["executionId"]}
106 # Removing strings that are causing errors during evaluation,
107 # those strings are dependent on validation response and may need to be changed if vnf refrepo response changes
108 ${get_response}= Remove String ${get_response} \\\\ \\u0027 \\u003c \\u003e \\"
109 ${json_get_response}= evaluate json.loads('''${get_response}''') json
110 Should Be Equal As Strings ${json_response[0]["results"]["criteria"]} FAILED
111 FOR ${resault} IN @{json_response[0]["results"]["results"]}
112 Should Be Equal As Strings ${resault["warnings"]} []
113 Run keyword if "${resault["vnfreqName"]}" == "r130206"
114 ... Should Be Equal As Strings ${resault["passed"]} False
115 END