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
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
|
*** Settings ***
Library OperatingSystem
Library RequestsLibrary
Library requests
Library Collections
Library String
*** Variables ***
${TARGET_URL} https://${DR_PROV_IP}:8443
${TARGET_URL_FEED} https://${DR_PROV_IP}:8443/feed/1
${TARGET_URL_SUBSCRIBE} https://${DR_PROV_IP}:8443/subscribe/1
${TARGET_URL_SUBSCRIPTION} https://${DR_PROV_IP}:8443/subs/1
${TARGET_URL_PUBLISH_PROV} https://${DR_PROV_IP}:8443/publish/1/csit_test
${TARGET_URL_PUBLISH_NODE} https://${DR_NODE_IP}:8443/publish/1/csit_test
${CREATE_FEED_DATA} {"name": "CSIT_Test", "version": "m1.0", "description": "CSIT_Test", "business_description": "CSIT_Test", "suspend": false, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": [], "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
${UPDATE_FEED_DATA} {"name": "CSIT_Test", "version": "m1.0", "description": "UPDATED-CSIT_Test", "business_description": "CSIT_Test", "suspend": true, "deleted": false, "changeowner": true, "authorization": {"classification": "unclassified", "endpoint_addrs": [], "endpoint_ids": [{"password": "rs873m", "id": "rs873m"}]}}
${SUBSCRIBE_DATA} {"delivery":{ "url":"https://${DR_PROV_IP}:8080/", "user":"rs873m", "password":"rs873m", "use100":true}, "metadataOnly":false, "suspend":false, "groupid":29, "subscriber":"sg481n"}
${UPDATE_SUBSCRIPTION_DATA} {"delivery":{ "url":"https://${DR_PROV_IP}:8080/", "user":"sg481n", "password":"sg481n", "use100":true}, "metadataOnly":false, "suspend":true, "groupid":29, "subscriber":"sg481n"}
${FEED_CONTENT_TYPE} application/vnd.att-dr.feed
${SUBSCRIBE_CONTENT_TYPE} application/vnd.att-dr.subscription
${PUBLISH_FEED_CONTENT_TYPE} application/octet-stream
*** Test Cases ***
Run Feed Creation
[Documentation] Feed Creation
[Timeout] 1 minute
${resp}= PostCall ${TARGET_URL} ${CREATE_FEED_DATA} ${FEED_CONTENT_TYPE} rs873m
log ${TARGET_URL}
log ${resp.text}
Should Be Equal As Strings ${resp.status_code} 201
log 'JSON Response Code:'${resp}
Run Subscribe to Feed
[Documentation] Subscribe to Feed
[Timeout] 1 minute
${resp}= PostCall ${TARGET_URL_SUBSCRIBE} ${SUBSCRIBE_DATA} ${SUBSCRIBE_CONTENT_TYPE} sg481n
log ${TARGET_URL_SUBSCRIBE}
log ${resp.text}
Should Be Equal As Strings ${resp.status_code} 201
log 'JSON Response Code:'${resp}
Run Publish Feed
[Documentation] Publish to Feed
[Timeout] 1 minute
Sleep 10s Behaviour was noticed where feed was not created in time for publish to be sent
${resp}= PutCall ${TARGET_URL_PUBLISH_PROV} ${CREATE_FEED_DATA} ${PUBLISH_FEED_CONTENT_TYPE} rs873m
log ${TARGET_URL_PUBLISH_PROV}
Should Contain ${resp.headers['Location']} https://dmaap-dr-node:8443/publish/1/csit_test
${resp}= PutCall ${TARGET_URL_PUBLISH_NODE} ${CREATE_FEED_DATA} ${PUBLISH_FEED_CONTENT_TYPE} rs873m
Should Be Equal As Strings ${resp.status_code} 204
log 'JSON Response Code:'${resp}
Run Update Subscription
[Documentation] Update Subscription to suspend and change delivery credentials
[Timeout] 1 minute
${resp}= PutCall ${TARGET_URL_SUBSCRIPTION} ${UPDATE_SUBSCRIPTION_DATA} ${SUBSCRIBE_CONTENT_TYPE} sg481n
log ${TARGET_URL_SUBSCRIPTION}
log ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
log 'JSON Response Code:'${resp}
${resp}= GetCall ${TARGET_URL_SUBSCRIPTION} ${SUBSCRIBE_CONTENT_TYPE} sg481n
log ${resp.text}
Should Contain ${resp.text} "password":"sg481n","user":"sg481n"
log 'JSON Response Code:'${resp}
Run Update Feed
[Documentation] Update Feed description and suspend
[Timeout] 1 minute
${resp}= PutCall ${TARGET_URL_FEED} ${UPDATE_FEED_DATA} ${FEED_CONTENT_TYPE} rs873m
log ${TARGET_URL_FEED}
log ${resp.text}
Should Be Equal As Strings ${resp.status_code} 200
log 'JSON Response Code:'${resp}
${resp}= GetCall ${TARGET_URL_FEED} ${FEED_CONTENT_TYPE} rs873m
log ${resp.text}
Should Contain ${resp.text} "UPDATED-CSIT_Test"
log 'JSON Response Code:'${resp}
Run Delete Subscription
[Documentation] Delete Subscription
[Timeout] 1 minute
${resp}= DeleteCall ${TARGET_URL_SUBSCRIPTION} sg481n
log ${resp.text}
Should Be Equal As Strings ${resp.status_code} 204
log 'JSON Response Code:'${resp}
Run Delete Feed
[Documentation] Delete Feed
[Timeout] 1 minute
${resp}= DeleteCall ${TARGET_URL_FEED} rs873m
log ${resp.text}
Should Be Equal As Strings ${resp.status_code} 204
log 'JSON Response Code:'${resp}
*** Keywords ***
PostCall
[Arguments] ${url} ${data} ${content_type} ${user}
${headers}= Create Dictionary X-ATT-DR-ON-BEHALF-OF=${user} Content-Type=${content_type}
${resp}= Evaluate requests.post('${url}', data='${data}', headers=${headers}, verify=False) requests
[Return] ${resp}
PutCall
[Arguments] ${url} ${data} ${content_type} ${user}
${headers}= Create Dictionary X-ATT-DR-ON-BEHALF-OF=${user} Content-Type=${content_type} Authorization=Basic cnM4NzNtOnJzODczbQ==
${resp}= Evaluate requests.put('${url}', data='${data}', headers=${headers}, verify=False, allow_redirects=False) requests
[Return] ${resp}
GetCall
[Arguments] ${url} ${content_type} ${user}
${headers}= Create Dictionary X-ATT-DR-ON-BEHALF-OF=${user} Content-Type=${content_type}
${resp}= Evaluate requests.get('${url}', headers=${headers}, verify=False) requests
[Return] ${resp}
DeleteCall
[Arguments] ${url} ${user}
${headers}= Create Dictionary X-ATT-DR-ON-BEHALF-OF=${user}
${resp}= Evaluate requests.delete('${url}', headers=${headers}, verify=False) requests
[Return] ${resp}
|