Move CSIT to integration/csit repo
[integration/csit.git] / tests / holmes / testcase / RuleMgt / Rule-Keywords.robot
diff --git a/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot b/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot
new file mode 100644 (file)
index 0000000..3ce4be4
--- /dev/null
@@ -0,0 +1,80 @@
+*** Settings ***
+Library           RequestsLibrary
+Library           Collections
+Resource          RuleAddr.robot
+Resource          ../CommonKeywords/HttpRequest.robot
+
+*** Keywords ***
+prepareRules
+    ${rule1}    create dictionary    rulename=ying001    content=package rule0001    enabled=1    description=this is first description
+    ${rule2}    create dictionary    rulename=ying002    content=package rule0002    enabled=0    description=this is seconddescription
+    ${rule3}    create dictionary    rulename=ying003    content=package rule0003    enabled=1    description=this is third description
+    @{rulesList}    create list    ${rule1}    ${rule2}    ${rule3}
+    : FOR    ${row}    IN    @{rulesList}
+    \    ${rulejson}    encode    ${row}
+    \    log    ${rulejson}
+    \    createRule    ${rulejson}
+
+ruleMgtSuiteVariable
+    ${RULEDIC}    create dictionary    rulename=gy2017001    description=create a new rule!    content=package rule2017001    enabled=1
+    set suite variable    ${RULEDIC}
+
+queryConditionRule
+    [Arguments]    ${queryParam}    ${codeFlag}=1
+    [Documentation]    ${queryParam} : The data type is Json .
+    create session    microservices    ${ruleMgtHost}
+    Comment    ${param}    set variable    queryrequest\=${queryParam}
+    ${getResponse}    get request    microservices    ${ruleMgtUrl}?queryrequest\=${queryParam}
+    log    ${getResponse.content}
+    run keyword if    ${codeFlag}==1    Should be equal as strings    ${getResponse.status_code}    200
+    run keyword if    ${codeFlag}!=1    Should be equal as strings    ${getResponse.status_code}    499
+    [Return]    ${getResponse}
+
+traversalRuleAttribute
+    [Arguments]    ${responseJsonData}    ${expectAttrDic}
+    [Documentation]    ${expectAttrDic} : The data type is dictionary;
+    ...    key is the name of the attribute, value is the expected value of the attribute.
+    @{responseRules}    Get From Dictionary    ${responseJsonData}    correlationRules
+    : FOR    ${rule}    IN    @{responseRules}
+    \    log    ${rule}
+    \    verifyRuleAttribute    ${rule}    ${expectAttrDic}
+
+verifyRuleAttribute
+    [Arguments]    ${singleRule}    ${expectAttrDic}
+    [Documentation]    ${expectAttrDic} : The data type is dictionary; key is the name of the attributes to be traversaled, value is the expected value of the attributes.
+    log    ${singleRule}
+    log    ${expectAttrDic}
+    @{attrsKeys}    get dictionary keys    ${expectAttrDic}
+    : FOR    ${attr}    IN    @{attrsKeys}
+    \    log    ${attr}
+    \    ${actualResponse}    get from dictionary    ${singleRule}    ${attr}
+    \    ${expectResponse}    get from dictionary    ${expectAttrDic}    ${attr}
+    \    Comment    log    ${actualResponse}
+    \    Comment    log    ${expectResponse}
+    Should be equal as strings    ${actualResponse}    ${expectResponse}
+
+createRule
+    [Arguments]    ${jsonParams}    ${codeFlag}=1
+    [Documentation]    ${codeFlag} : The data type is string, defult value is 1, indicating that the case need to assert thatthe statues code is 200.
+    ...    Then other values indicating that the case need to assert that the statues code is 499.
+    ${response}    httpPut    ${ruleMgtHost}    ${ruleMgtUrl}    ${jsonParams}
+    log    ${response.content}
+    run keyword if    ${codeFlag}==1    Should be equal as strings    ${response.status_code}    200
+    run keyword if    ${codeFlag}!=1    Should be equal as strings    ${response.status_code}    499
+    [Return]    ${response}
+
+modifyRule
+    [Arguments]    ${jsonParams}    ${codeFlag}=1
+    ${response}    httpPost    ${ruleMgtHost}    ${ruleMgtUrl}    ${jsonParams}
+    log    ${response.content}
+    run keyword if    ${codeFlag}==1    Should be equal as strings    ${response.status_code}    200
+    run keyword if    ${codeFlag}!=1    Should be equal as strings    ${response.status_code}    499
+    [Return]    ${response}
+
+deleteRule
+    [Arguments]    ${ruleId}    ${codeFlag}=1
+    ${response}    httpDelete    ${ruleMgtHost}    ${ruleMgtUrl}/${ruleId}
+    log    ${response.content}
+    run keyword if    ${codeFlag}==1    Should be equal as strings    ${response.status_code}    200
+    run keyword if    ${codeFlag}!=1    Should be equal as strings    ${response.status_code}    499
+    [Return]    ${response}