Added tests to verify VPD for assembly component

Test cases added:
    - Verify TPM VPD Data Via Redfish
    - Verify TOD Battery VPD Data Via Redfish
    - Verify VRM VPD Data Via Redfish
    - Verify OP Panel VPD Data Via Redfish
    - Verify OP Panel LCD VPD Data Via Redfish
    - Verify Disk Backplane VPD Data Via Redfish

Change-Id: Id074128d9e2dd6e322c9abc13a94e9d1bbba8673
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
index 8a0bf9e..eb55254 100644
--- a/openpower/vpd/test_redfish_vpd.robot
+++ b/openpower/vpd/test_redfish_vpd.robot
@@ -51,21 +51,117 @@
     CPU          Location
 
 
+Verify TPM VPD Data Via Redfish
+    [Documentation]  Verify TPM VPD details via Redfish output.
+    [Tags]  Verify_TPM_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component     Field
+    TPM             Model
+    TPM             PartNumber
+    TPM             SerialNumber
+    TPM             SparePartNumber
+    TPM             Location
+
+
+Verify TOD Battery VPD Data Via Redfish
+    [Documentation]  Verify TOD battery VPD details via Redfish output.
+    [Tags]  Verify_TOD_Battery_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component     Field
+    TOD Battery     Model
+    TOD Battery     PartNumber
+    TOD Battery     SerialNumber
+    TOD Battery     SparePartNumber
+    TOD Battery     Location
+
+
+Verify VRM VPD Data Via Redfish
+    [Documentation]  Verify voltage regulator module VPD details via Redfish output.
+    [Tags]  Verify_VRM_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component     Field
+    VRM             Model
+    VRM             PartNumber
+    VRM             SerialNumber
+    VRM             SparePartNumber
+    VRM             Location
+
+
+Verify OP Panel VPD Data Via Redfish
+    [Documentation]  Verify operator panel VPD details via Redfish output.
+    [Tags]  Verify_OP_Panel_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component     Field
+    OP Panel        Model
+    OP Panel        PartNumber
+    OP Panel        SerialNumber
+    OP Panel        SparePartNumber
+    OP Panel        Location
+
+
+Verify OP Panel LCD VPD Data Via Redfish
+    [Documentation]  Verify operator panel LCD VPD details via Redfish output.
+    [Tags]  Verify_OP_Panel_LCD_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component     Field
+    OP Panel LCD    Model
+    OP Panel LCD    PartNumber
+    OP Panel LCD    SerialNumber
+    OP Panel LCD    SparePartNumber
+    OP Panel LCD    Location
+
+
+Verify Disk Backplane VPD Data Via Redfish
+    [Documentation]  Verify disk backplane VPD details via Redfish output.
+    [Tags]  Verify_Disk_Backplane_VPD_Data_Via_Redfish
+    [Template]  Verify Redfish VPD Data
+
+    # Component     Field
+    Disk Backplane  Model
+    Disk Backplane  PartNumber
+    Disk Backplane  SerialNumber
+    Disk Backplane  SparePartNumber
+    Disk Backplane  Location
+
+
 *** Keywords ***
 
 Verify Redfish VPD Data
     [Documentation]  Verify Redfish VPD data of given component.
     [Arguments]  ${component}  ${field}
+
     # Description of arguments:
     # component       VPD component (e.g. /system/chassis/motherboard/vdd_vrm1).
     # field           VPD field (e.g. Model, PartNumber etc.).
 
-    ${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
+    ${redfish_component_uri}  ${redfish_component_name}=  Run Keyword If
+    ...  '${component}' == 'BMC'  Set Variable  /redfish/v1/Managers/bmc  OpenBmc Manager
+    ...  ELSE IF  '${component}' == 'Chassis'
+    ...    Set Variable  /redfish/v1/Chassis/chassis  RackMount
+    ...  ELSE IF  '${component}' == 'CPU'
+    ...    Set Variable  /redfish/v1/Systems/system/Processors/cpu0  Processor
+    ...  ELSE IF  '${component}' == 'TPM'
+    ...    Set Variable  /redfish/v1/Chassis/chassis/Assembly  tpm_wilson
+    ...  ELSE IF  '${component}' == 'TOD Battery'
+    ...    Set Variable  /redfish/v1/Chassis/chassis/Assembly  tod_battery
+    ...  ELSE IF  '${component}' == 'VRM'
+    ...    Set Variable  /redfish/v1/Chassis/chassis/Assembly  vdd_vrm0
+    ...  ELSE IF  '${component}' == 'OP Panel'
+    ...    Set Variable  /redfish/v1/Chassis/chassis/Assembly  base_op_panel_blyth
+    ...  ELSE IF  '${component}' == 'OP Panel LCD'
+    ...    Set Variable  /redfish/v1/Chassis/chassis/Assembly  lcd_op_panel_hill
+    ...  ELSE IF  '${component}' == 'Disk Backplane'
+    ...    Set Variable  /redfish/v1/Chassis/chassis/Assembly  disk_backplane0
 
-    ${resp}=  Redfish.Get Properties  ${component_uri}
+    ${resp}=  Run Keyword If  '${redfish_component_uri}' == '/redfish/v1/Chassis/chassis/Assembly'
+    ...  Get Assembly Component VPD  ${redfish_component_name}
+    ...  ELSE  Redfish.Get Properties  ${redfish_component_uri}
+
     ${vpd_field}=  Set Variable If
     ...  '${field}' == 'Model'  CC
     ...  '${field}' == 'PartNumber'  PN
@@ -77,6 +173,12 @@
     ...  '${component}' == 'CPU'  /system/chassis/motherboard/dcm0/cpu0
     ...  '${component}' == 'Chassis'  /system/chassis
     ...  '${component}' == 'BMC'  /system/chassis/motherboard/ebmc_card_bmc
+    ...  '${component}' == 'TPM'  /system/chassis/motherboard/tpm_wilson
+    ...  '${component}' == 'TOD Battery'  /system/chassis/motherboard/tod_battery
+    ...  '${component}' == 'VRM'  /system/chassis/motherboard/vdd_vrm0
+    ...  '${component}' == 'OP Panel'  /system/chassis/motherboard/base_op_panel_blyth
+    ...  '${component}' == 'OP Panel LCD'  /system/chassis/motherboard/lcd_op_panel_hill
+    ...  '${component}' == 'Disk Backplane'  /system/chassis/motherboard/disk_backplane0
 
     ${vpd_records}=  Vpdtool  -o -O ${vpd_component}
 
@@ -85,3 +187,19 @@
     ...    ${vpd_records['${vpd_component}']['${vpd_field}']}
     ...  ELSE
     ...    Should Be Equal As Strings  ${resp["${field}"]}  ${vpd_records['${vpd_component}']['${vpd_field}']}
+
+
+Get Assembly Component VPD
+    [Documentation]  Returns Redfish VPD data of given assembly component.
+    [Arguments]  ${component_name}
+
+    # Description of argument(s):
+    # component_name  Assembly's component name (e.g. tpm_wilson, tod_battery).
+
+    ${resp}=  Redfish.Get Properties  /redfish/v1/Chassis/chassis/Assembly
+    FOR  ${assembly_component}  IN  @{resp["Assemblies"]}
+        ${output}=  Set Variable If
+        ...  "${component_name}" == "${assembly_component["Name"]}"  ${assembly_component}
+        Exit For Loop IF  "${component_name}" == "${assembly_component["Name"]}"
+    END
+    [Return]  ${output}