test case after reboot transaction id
set to default

changes:
    - "Check After Reboot Transaction ID Set To Default"
      "Post Reboot Acquire Lock"

Change-Id: I81da56a839cd6bfa0341585a2a1e06cb179654f8
Signed-off-by: Sushil Singh <susilsi7@in.ibm.com>
diff --git a/openpower/ext_interfaces/test_lock_management.robot b/openpower/ext_interfaces/test_lock_management.robot
index 3344369..e995474 100644
--- a/openpower/ext_interfaces/test_lock_management.robot
+++ b/openpower/ext_interfaces/test_lock_management.robot
@@ -1,22 +1,23 @@
 *** Settings ***
 
-Documentation        Test lock management feature of management console on BMC.
+Documentation           Test lock management feature of management console on BMC.
 
-Resource             ../../lib/resource.robot
-Resource             ../../lib/openbmc_ffdc.robot
-Resource             ../../lib/bmc_redfish_utils.robot
-Resource             ../../lib/external_intf/management_console_utils.robot
-Resource             ../../lib/rest_response_code.robot
-Library              ../../lib/bmc_network_utils.py
+Resource                ../../lib/resource.robot
+Resource                ../../lib/openbmc_ffdc.robot
+Resource                ../../lib/bmc_redfish_utils.robot
+Resource                ../../lib/external_intf/management_console_utils.robot
+Resource                ../../lib/rest_response_code.robot
+Library                 ../../lib/bmc_network_utils.py
 
-Suite Setup          Run Keyword And Ignore Error  Delete All Redfish Sessions
-Suite Teardown       Run Keyword And Ignore Error  Delete All Redfish Sessions
-Test Setup           Printn
-Test Teardown        FFDC On Test Case Fail
+Suite Setup              Run Keyword And Ignore Error  Delete All Redfish Sessions
+Suite Teardown           Run Keyword And Ignore Error  Delete All Redfish Sessions
+Test Setup               Printn
+Test Teardown            FFDC On Test Case Fail
 
 *** Variables ***
 
-${BAD_REQUEST}       Bad Request
+${BAD_REQUEST}           Bad Request
+&{default_trans_id}      TransactionID=${1}
 
 *** Test Cases ***
 
@@ -49,6 +50,17 @@
     HMCID-01       WriteCase3    True
 
 
+Check After Reboot Transaction ID Set To Default
+    [Documentation]  After reboot, the transaction id starts with default i.e. 1,
+    ...  if any lock is aquired.
+    [Tags]  Check_After_Reboot_Transaction_ID_Set_To_Default
+    [Template]  Verify Acquire And Release Lock In Loop
+
+    # client_id    lock_type     reboot_flag
+    HMCID-01       ReadCase1     True
+    HMCID-01       WriteCase1    True
+
+
 Acquire Read Lock On Read Lock
     [Documentation]  Acquire read lock on another read lock.
     [Tags]  Acquire_Read_Lock_On_Read_Lock
@@ -818,14 +830,36 @@
     Release locks And Delete Session  ${session_info}  ${trans_id_list}
 
 
+Post Reboot Acquire Lock
+    [Documentation]  Post reboot acquire lock and verify the transaction id is 1.
+    [Arguments]  ${session_info}  ${lock_type}
+
+    # Description of argument(s):
+    # session_info     Session information.
+    # lock_type        Read lock or Write lock.
+
+    ${trans_id_list}=  Create List
+    ${trans_id_list_var}=  Create List
+    ${trans_id}=  Redfish Post Acquire Lock  ${lock_type}
+    Append To List  ${trans_id_list}  ${trans_id}
+    Append To List  ${trans_id_list_var}  ${default_trans_id}
+    Verify Lock On Resource  ${session_info}  ${trans_id_list}
+    Verify Lock On Resource  ${session_info}  ${trans_id_list_var}
+    Release Locks On Resource  ${session_info}  ${trans_id_list}  Transaction  ${HTTP_OK}
+    ${trans_id_emptylist}=  Create List
+    Verify Lock On Resource  ${session_info}  ${trans_id_emptylist}
+
+
 Verify Acquire And Release Lock In Loop
     [Documentation]  Acquire lock in loop.
-    [Arguments]  ${client_id}  ${lock_type}
+    [Arguments]  ${client_id}  ${lock_type}  ${reboot_flag}=False
 
     # Description of argument(s):
     # client_id    This client id can contain string value
     #              (e.g. 12345, "HMCID").
     # lock_type    Read lock or Write lock.
+    # reboot_flag  Flag is used to run reboot the BMC code.
+    #               (e.g. True or False).
 
     FOR  ${count}  IN RANGE  1  11
       ${trans_id_list}=  Create List
@@ -836,8 +870,17 @@
       Release Locks On Resource  ${session_info}  ${trans_id_list}  Transaction  ${HTTP_OK}
       ${trans_id_emptylist}=  Create List
       Verify Lock On Resource  ${session_info}  ${trans_id_emptylist}
+      Redfish Delete Session  ${session_info}
     END
 
+    ${session_info}=  Create Redfish Session With ClientID  ${client_id}
+    ${before_reboot_xauth_token}=  Set Variable  ${XAUTH_TOKEN}
+
+    Run Keyword If  '${reboot_flag}' == 'True'
+    ...  Run Keywords  Redfish BMC Reset Operation  AND
+    ...  Set Global Variable  ${XAUTH_TOKEN}  ${before_reboot_xauth_token}  AND
+    ...  Is BMC Standby  AND
+    ...  Post Reboot Acquire Lock  ${session_info}  ${lock_type}
     Redfish Delete Session  ${session_info}