summaryrefslogtreecommitdiffstats
path: root/test/csit/tests/holmes/testcase/RuleMgt/Rule-Keywords.robot
blob: 03f840904a6dbaceb6c0d4564320564baf14abcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
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}    rules
    : 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]    ${jsonParam}    ${codeFlag}=1
    ${response}    httpDelete    ${ruleMgtHost}    ${ruleMgtUrl}    ${jsonParam}
    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}