Added two testcases

1.Enable Multiple Properties via Redfish And Verify
2.Disable Multiple Properties via Redfish And Verify

Change-Id: Ic7255d4fd43c241a25c43aa7a0bd5e00946d9692
Signed-off-by: Anves Kumar rayankula <anvesr77@in.ibm.com>
diff --git a/network/test_bmc_dhcp_conf.robot b/network/test_bmc_dhcp_conf.robot
index 9156337..a8ad9f5 100644
--- a/network/test_bmc_dhcp_conf.robot
+++ b/network/test_bmc_dhcp_conf.robot
@@ -9,95 +9,46 @@
 Suite Setup            Suite Setup Execution
 Suite Teardown         Redfish.Logout
 
+*** Variables ***
+
+&{dhcp_enable_dict}                DHCPEnabled=${True}
+&{dhcp_disable_dict}               DHCPEnabled=${False}
+
+&{dns_enable_dict}                 UseDNSServers=${True}
+&{dns_disable_dict}                UseDNSServers=${False}
+
+&{ntp_enable_dict}                 UseNTPServers=${True}
+&{ntp_disable_dict}                UseNTPServers=${False}
+
+&{domain_name_enable_dict}         UseDomainName=${True}
+&{domain_name_disable_dict}        UseDomainName=${False}
+
+&{enable_multiple_properties}      UseDomainName=${True}
+...                                UseNTPServers=${True}
+...                                UseDNSServers=${True}
+
+&{disable_multiple_properties}     UseDomainName=${False}
+...                                UseNTPServers=${False}
+...                                UseDNSServers=${False}
+
 *** Test Cases ***
 
-Enable DHCP Via Redfish And Verify
-    [Documentation]  Enable DHCP via Redfish and verify.
-    [Tags]  Enable_DHCP_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
+Set Network Property via Redfish And Verify
+   [Documentation]  Set network property via Redfish and verify.
+   [Tags]  Set_Network_Property_via_Redfish_And_Verify
+   [Template]  Apply Ethernet Config
 
-    # property            Value
-    DHCPEnabled           ${True}
-
-
-Disable DHCP Via Redfish And Verify
-    [Documentation]  Disable DHCP via Redfish and verify.
-    [Tags]  Disable_DHCP_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    DHCPEnabled           ${False}
-
-
-Enable UseDNSServers Via Redfish And Verify
-    [Documentation]  Enable UseDNSServers via Redfish and verify.
-    [Tags]  Enable_UseDNSServers_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    UseDNSServers         ${True}
-
-
-Disable UseDNSServers Via Redfish And Verify
-    [Documentation]  Disable UseDNSServers via Redfish and verify.
-    [Tags]  Disable_UseDNSServers_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    UseDNSServers         ${False}
-
-
-Enable UseDomainName Via Redfish And Verify
-    [Documentation]  Enable UseDomainName via Redfish and verify.
-    [Tags]  Enable_UseDomainName_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    UseDomainName         ${True}
-
-
-
-Disable UseDomainName Via Redfish And Verify
-    [Documentation]  Disable UseDomainName via Redfish and verify.
-    [Tags]  Disable_UseDomainName_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    UseDomainName         ${False}
-
-
-Enable UseNTPServers Via Redfish And Verify
-    [Documentation]  Enable UseNTPServers via Redfish and verify.
-    [Tags]  Enable_UseNTPServers_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    UseNTPServers         ${True}
-
-
-Disable UseNTPServers Via Redfish And Verify
-    [Documentation]  Disable UseNTPServers via Redfish and verify.
-    [Tags]  Disable_UseNTPServers_Via_Redfish_And_Verify
-    [Teardown]  Run Keywords  Restore Configuration
-    ...  AND  FFDC On Test Case Fail
-    [Template]  Apply Ethernet Config
-
-    # property            Value
-    UseNTPServers         ${False}
+    # property
+    ${dhcp_enable_dict}
+    ${dhcp_disable_dict}
+    ${dns_enable_dict}
+    ${dns_disable_dict}
+    ${domain_name_enable_dict}
+    ${domain_name_disable_dict}
+    ${ntp_enable_dict}
+    ${ntp_disable_dict}
+    ${enable_multiple_properties}
+    ${disable_multiple_properties}
 
 
 *** Keywords ***
@@ -155,19 +106,46 @@
 
 
 Apply Ethernet Config
-   [Documentation]  Set the given Ethernet config property.
-   [Arguments]  ${property}   ${value}
+    [Documentation]  Set the given Ethernet config property.
+    [Arguments]  ${property}
+    [Teardown]  Run Keywords  Restore Configuration  AND
+    ...  Set Global Variable  ${TEST_STATUS}  ${KEYWORD STATUS}  AND  FFDC On Test Case Fail
 
-   # Description of argument(s):
-   # property   Ethernet property to be set..
-   # value      Value to be set. E.g. True or False.
+    # Description of argument(s):
+    # property   Ethernet property to be set..
 
-   ${active_channel_config}=  Get Active Channel Config
-   Redfish.Patch
-   ...  /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}/
-   ...  body={"DHCPv4":{"${property}":${value}}}
+    ${active_channel_config}=  Get Active Channel Config
+    Redfish.Patch
+    ...  /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}/
+    ...  body={"DHCPv4":${property}}  valid_status_codes=[${HTTP_OK}, ${HTTP_NO_CONTENT}]
 
-   ${resp}=  Redfish.Get
-   ...  /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}
-   Should Be Equal As Strings  ${resp.dict["DHCPv4"]["${property}"]}  ${value}
+    ${resp}=  Redfish.Get
+    ...  /redfish/v1/Managers/bmc/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}
+    Verify Ethernet Config Property  ${property}  ${resp.dict["DHCPv4"]}
+
+
+Verify Ethernet Config Property
+    [Documentation]  verify ethernet config properties.
+    [Arguments]  ${property}  ${response_data}
+
+    # Description of argument(s):
+    # ${property}       DHCP Properties in dictionary.
+    # Example:
+    # property         value
+    # DHCPEnabled      :False
+    # UseDomainName    :True
+    # UseNTPServers    :True
+    # UseDNSServers    :True
+    # ${response_data}  DHCP Response data in dictionary.
+    # Example:
+    # property         value
+    # DHCPEnabled      :False
+    # UseDomainName    :True
+    # UseNTPServers    :True
+    # UseDNSServers    :True
+
+   ${key_map}=  Get Dictionary Items  ${property}
+   FOR  ${key}  ${value}  IN  @{key_map}
+      Should Be Equal As Strings  ${response_data['${key}']}  ${value}
+   END