Add test to verify session timeout setting

Signed-off-by: David Wang <davidwang@quantatw.com>
Change-Id: I09c9a3927e30192469381cea4491317b4815c36d
diff --git a/redfish/service_root/test_sessions_management.robot b/redfish/service_root/test_sessions_management.robot
index d3f52cb..1ef3717 100644
--- a/redfish/service_root/test_sessions_management.robot
+++ b/redfish/service_root/test_sessions_management.robot
@@ -36,6 +36,25 @@
     operator_user        TestPwd123           ${HTTP_CREATED}
 
 
+Set Session Timeout And Verify Response Code
+    [Documentation]  Set Session Timeout And Verify Response Code.
+    [Tags]  Set_Session_Timeout_And_Verify_Response_Code
+    [Template]  Set Session Timeout And Verify
+    [Teardown]  Set Session Timeout And Verify  ${3600}  ${HTTP_OK}
+
+    # The mininum & maximum allowed values for session timeout are 30
+    # seconds and 86400 seconds respectively as per the session service
+    # schema mentioned at
+    # https://redfish.dmtf.org/schemas/v1/SessionService.v1_1_7.json
+
+    # value             valid_status_code
+    ${25}               ${HTTP_BAD_REQUEST}
+    ${30}               ${HTTP_OK}
+    ${3600}             ${HTTP_OK}
+    ${86400}            ${HTTP_OK}
+    ${86500}            ${HTTP_BAD_REQUEST}
+
+
 Verify SessionService Defaults
     [Documentation]  Verify SessionService default property values.
     [Tags]  Verify_SessionService_Defaults
@@ -179,6 +198,26 @@
     ...  valid_status_codes=[${valid_status_code}]
 
 
+Set Session Timeout And Verify
+    [Documentation]  Set Session Timeout And Verify.
+    [Arguments]  ${value}=3600  ${valid_status_code}=${HTTP_OK}
+
+    # Description of argument(s):
+    # value               The value to patch session timeout.
+    # valid_status_code   Expected response code, default is ${HTTP_OK}.
+
+    ${data}=  Create Dictionary  SessionTimeout=${value}
+    Redfish.Patch  ${REDFISH_BASE_URI}SessionService
+    ...  body=&{data}
+    ...  valid_status_codes=[${valid_status_code}]
+
+    ${session_timeout}=  Redfish.Get Attribute
+    ...  ${REDFISH_BASE_URI}SessionService  SessionTimeout
+
+    Run Keyword If  ${valid_status_code}==${HTTP_OK}
+    ...  Valid Value  session_timeout  [${value}]
+
+
 Suite Setup Execution
     [Documentation]  Suite Setup Execution.