Added test case to test VPD data via Redfish

Change-Id: Ie9c87a9a43007be7caa87508901a3290ae75e4a6
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/openpower/vpd/test_redfish_vpd.robot b/openpower/vpd/test_redfish_vpd.robot
new file mode 100644
index 0000000..7635e78
--- /dev/null
+++ b/openpower/vpd/test_redfish_vpd.robot
@@ -0,0 +1,62 @@
+*** Settings ***
+Documentation   This suite tests Vital Product Data (VPD) using Redfish.
+
+Resource        ../../lib/openbmc_ffdc.robot
+Library         ../../lib/vpd_utils.py
+
+Test Teardown   FFDC On Test Case Fail
+
+
+*** Test Cases ***
+
+Verify VPD Data Via Redfish
+    [Documentation]  Verify VPD details via Redfish output.
+    [Tags]  Verify_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component
+    BMC
+    Chassis
+    CPU
+
+
+*** Keywords ***
+
+Verify Redfish VPD Data
+    [Documentation]  Verify Redfish VPD data of given component.
+    [Arguments]  ${component}
+    # Description of arguments:
+    # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
+
+    ${component_uri}=  Set Variable If
+    ...  '${component}' == 'BMC'  /redfish/v1/Managers/bmc
+    ...  '${component}' == 'Chassis'  /redfish/v1/Chassis/chassis
+    ...  '${component}' == 'CPU'  /redfish/v1/Systems/system/Processors/cpu0
+
+    # TODO: Currently serial number is verified. Verification for other fields will be added later.
+    Verify Redfish VPD  ${component}  ${component_uri}  SerialNumber
+
+
+Verify Redfish VPD
+    [Documentation]  Verify Redfish VPD of given URI.
+    [Arguments]  ${component}  ${component_uri}  ${field}
+    # Description of arguments:
+    # component_uri       Redfish VPD uri (e.g. /redfish/v1/Systems/system/Processors/cpu1).
+    # field              Redfish VPD field (Model)
+
+    ${resp}=  Redfish.Get Properties  ${component_uri}
+
+    ${vpd_field}=  Set Variable If
+    ...  '${field}' == 'Model'  CC
+    ...  '${field}' == 'PartNumber'  PN
+    ...  '${field}' == 'SerialNumber'  SN
+    ...  '${field}' == 'SparePartNumber'  FN
+    ...  '${field}' == 'Location'  LocationCode
+
+    ${vpd_component}=  Set Variable If
+    ...  '${component}' == 'CPU'  /system/chassis/motherboard/cpu0
+    ...  '${component}' == 'Chassis'  /system/chassis
+    ...  '${component}' == 'BMC'  /system/chassis/motherboard/ebmc_card_bmc
+
+    ${vpd_records}=  Vpdtool  -r -O ${vpd_component} -R VINI -K ${vpd_field}
+    Should Be Equal As Strings  ${resp["SerialNumber"]}  ${vpd_records['${vpd_component}']['${vpd_field}']}