Add test to verify GetPLDMCommands for supported pldm types.

Change-Id: I43ebdf03d98f2322aa1fd71262c987d4e682c839
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
diff --git a/data/pldm_variables.py b/data/pldm_variables.py
index 54eb8f8..482e2b8 100755
--- a/data/pldm_variables.py
+++ b/data/pldm_variables.py
@@ -18,69 +18,13 @@
 VERSION_BIOS = {'VALUE': ['f1', 'f1', 'f1', '00'], 'STRING': '1.0.0'}
 VERSION_FRU = {'VALUE': ['f1', 'f0', 'f0', '00'], 'STRING': '1.0.0'}
 
-# PLDM base related variables.
-PLDM_BASE_CMD = {
-    'GET_TID': '02',
-    'GET_PLDM_VERSION': '03',
-    'GET_PLDM_TYPES': '04',
-    'GET_PLDM_COMMANDS': '05'}
 
-# Response lengths are inclusive of completion code.
-GET_TID_RESP_BYTES = 2
-GET_PLDM_VERSION_RESP_BYTES = 10
-GET_PLDM_TYPES_RESP_BYTES = 9
-GET_PLDM_COMMANDS_RESP_BYTES = 33
-
-# PLDM bios related variables.
-PLDM_BIOS_CMD = {
-    'GET_BIOS_TABLE': '01',
-    'SET_BIOS_ATTRIBUTE_CURRENT_VALUE': '07',
-    'GET_BIOS_ATTRIBUTE_CURRENT_VALUE_BY_HANDLE': '08',
-    'GET_DATE_TIME': '0c'}
-
-PLDM_BIOS_TABLE_TYPES = {
-    'STRING_TABLE': '00',
-    'ATTRIBUTE_TABLE': '01',
-    'ATTRIBUTE_VAL_TABLE': '02'}
-
-TRANSFER_OPERATION_FLAG = {
-    'GETNEXTPART': '00',
-    'GETFIRSTPART': '01'}
-
-TRANSFER_RESP_FLAG = {
-    'PLDM_START': '01',
-    'PLDM_MIDDLE': '02',
-    'PLDM_END': '04',
-    'PLDM_START_AND_END': '05'}
-
-# PLDM platform related variables.
-PLDM_PLATFORM_CMD = {
-    'SET_STATE_EFFECTER_STATES': '39',
-    'GET_PDR': '51'}
-
-PLDM_PDR_TYPES = {
-    'STATE_EFFECTER_PDR': '11'}
-
-# PLDM OEM related variables.
-PLDM_FILEIO_CMD = {
-    'GET_FILE_TABLE': '1',
-    'READ_FILE': '4',
-    'WRITE_FILE': '5',
-    'READ_FILE_INTO_MEMORY': '6',
-    'WRITE_FILE_FROM_MEMORY': '7'}
-
-PLDM_FILEIO_COMPLETION_CODES = {
-    'INVALID_FILE_HANDLE': '80',
-    'DATA_OUT_OF_RANGE': '81',
-    'INVALID_READ_LENGTH': '82',
-    'INVALID_WRITE_LENGTH': '83',
-    'FILE_TABLE_UNAVAILABLE': '84',
-    'INVALID_FILE_TABLE_TYPE': '85'}
-
-# PLDM FRU related variables.
-PLDM_FRU_CMD = {
-    'PLDM_GET_FRU_RECORD_TABLE_METADATA': '01',
-    'PLDM_GET_FRU_RECORD_TABLE': '02'}
+PLDM_BASE_CMDS = ['2(GetTID)', '3(GetPLDMVersion)', '4(GetPLDMTypes)', '5(GetPLDMCommands)']
+PLDM_PLATFORM_CMDS = ['57(SetStateEffecterStates)', '81(GetPDR)']
+PLDM_BIOS_CMDS = ['1(GetBIOSTable)', '7(SetBIOSAttributeCurrentValue)',
+                  '8(GetBIOSAttributeCurrentValueByHandle)', '12(GetDateTime)',
+                  '13(SetDateTime)']
+PLDM_FRU_CMDS = ['1(GetFRURecordTableMetadata)', '2(GetFRURecordTable)']
 
 # PLDM command format.
 
diff --git a/lib/pldm_utils.py b/lib/pldm_utils.py
index 81fbbf0..13005b3 100644
--- a/lib/pldm_utils.py
+++ b/lib/pldm_utils.py
@@ -56,6 +56,10 @@
                 supported_types['text'].append(record[1].rstrip(")"))
             result['supported_types'] = supported_types
 
+        elif 'supported_commands' in result:
+            commands = result['supported_commands'].split(":")[0].split(" ")
+            return commands
+
         elif 'yyyy-mm-dd_hh' in result:
             # Date & Time :
             # YYYY-MM-DD HH:MM:SS - 2020-02-24 06:44:16
diff --git a/pldm/test_pldm_base.robot b/pldm/test_pldm_base.robot
index 0d05182..70929f4 100644
--- a/pldm/test_pldm_base.robot
+++ b/pldm/test_pldm_base.robot
@@ -10,6 +10,7 @@
 
 
 *** Test Cases ***
+
 Verify Get PLDM Types
     [Documentation]  Verify supported PLDM types.
     [Tags]  Verify_Get_PLDM_Types
@@ -64,3 +65,33 @@
     Rprint Vars  pldm_output
 
     Valid Dict  pldm_output  valid_values={'tid': ['1']}
+
+Verify GetPLDMCommands
+    [Documentation]  Verify GetPLDMCommands response message.
+    [Tags]  Verify_GetPLDMCommands
+    [Template]  Verify GetPLDMCommands For PLDM Type
+
+    # pldm_type    # expected_pldm_cmds
+
+    '0'            ${PLDM_BASE_CMDS}
+    '2'            ${PLDM_PLATFORM_CMDS}
+    '3'            ${PLDM_BIOS_CMDS}
+    '4'            ${PLDM_FRU_CMDS}
+
+*** keywords ***
+
+Verify GetPLDMCommands For PLDM Type
+    [Documentation]  Verify GetPLDMCommands for given input pldm type with expected pldm cmds.
+    [Arguments]  ${pldm_type}  ${expected_pldm_cmds}
+
+    # Description of argument(s):
+    # pldm_type             pldm type (e.g. '0', '2', '3', '4').
+    #                      '0' -> base, '2' -> platform, '3' -> 'bios', '4' -> 'fru'.
+    # expected_pldm_cmds    expected pldm commands for given pldm type.
+
+    # Example output:
+    # Supported Commands : 2(GetTID) 3(GetPLDMVersion) 4(GetPLDMTypes) 5(GetPLDMCommands)
+
+    ${pldm_output}=  Pldmtool  base GetPLDMCommands -t ${pldm_type}
+    Rprint Vars  pldm_output
+    Valid List  pldm_output  ${expected_pldm_cmds}