-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathFrank2OpenBanking-soapui-project.xml
71 lines (62 loc) · 11.8 KB
/
Frank2OpenBanking-soapui-project.xml
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
<?xml version="1.0" encoding="UTF-8"?>
<con:soapui-project id="938cf600-70a4-4583-b84c-304bb5be6c33" activeEnvironment="Default" name="Frank2OpenBanking" resourceRoot="" soapui-version="5.7.2" abortOnError="false" runType="SEQUENTIAL" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:testSuite id="16e41180-9ea0-48e4-95f6-073b32159eed" name="ING"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase id="d5452643-f768-4c2b-b7a5-57a18c717473" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="ING AIS" searchProperties="true"><con:settings/><con:testStep type="properties" name="Properties" id="801fd257-8d27-4b0b-b707-ed29ef483d7e"><con:settings/><con:config xsi:type="con:PropertiesStep" saveFirst="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:properties><con:property><con:name>AuthCode</con:name><con:value>5674909c-5656-4c37-b418-45e1a6921345</con:value></con:property><con:property><con:name>XSRFToken</con:name><con:value>DLIGoQUzimbmRNBrQzm3TKWd-DDEn8cm0lvTl2EQZZV9hEdBJGQPuZ4K1mV8iFmZ</con:value></con:property><con:property><con:name>Code</con:name><con:value>d1536216219b4be16588aa4ea18ee35307c6f3298c59b6716dfad38bc4f4a33312f94c7b4a064ccd894a2bc91c6bdff8</con:value></con:property></con:properties></con:config></con:testStep><con:testStep type="httprequest" name="Request Login URL" id="875c8631-bbb7-4879-8fda-5990134a588c"><con:settings/><con:config method="GET" xsi:type="con:HttpRequest" id="201f76b0-1232-498d-961d-4d235853e7aa" name="Request Login URL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost/api/ing/ais</con:endpoint><con:request/><con:assertion type="Simple Contains" id="3b237c93-0dd0-4436-8a16-f82a0414a770" name="URL Regex"><con:configuration><token>https:\/\/myaccount\.sandbox\.ing\.com\/granting\/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\/NL\?scope=payment-accounts%3Abalances%3Aview\+payment-accounts%3Atransactions%3Aview&redirect_uri=https%3A%2F%2Fwww\.example\.com&client_id=[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}&state=anything&response_type=code</token><ignoreCase>false</ignoreCase><useRegEx>true</useRegEx></con:configuration></con:assertion><con:assertion type="Valid HTTP Status Codes" id="08e0cdda-3b4e-4f05-8d1e-4cfe40dd4643" name="Valid HTTP Status Codes"><con:configuration><codes>200</codes></con:configuration></con:assertion><con:assertion type="GroovyScriptAssertion" id="2bab0e18-7fc2-4617-8714-306711602eca" name="Script Assertion"><con:configuration><scriptText>def authUrl = messageExchange.responseContent
// Define a regex pattern to extract the auth code from the URL
def pattern = /([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})/
// Initialize variable to store the auth code
def authCode = null
// Use the pattern to find the auth code in the URL
def matcher = authUrl =~ pattern
if (matcher.find()) {
authCode = matcher.group(1)
log.info("Extracted Auth Code: ${authCode}")
// Store the auth code in a test case property
context.testCase.testSteps["Properties"].setPropertyValue("AuthCode", authCode)
} else {
log.warn("Auth code not found in the URL.")
context.testCase.testSteps["Properties"].setPropertyValue("AuthCode", "Not Found")
throw new Exception("AuthCode not present.")
}</scriptText></con:configuration></con:assertion><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:testStep type="transfer" name="Transfer Requested URL" id="aa3231af-2c6a-42f0-b04f-952cb42c4631"><con:settings/><con:config xsi:type="con:PropertyTransfersStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:transfers setNullOnMissingSource="true" transferTextContent="true" failOnError="true" ignoreEmpty="false" transferToAll="false" entitize="false" transferChildNodes="false"><con:name>Transfer URL</con:name><con:sourceType>Response</con:sourceType><con:sourceStep>Request Login URL</con:sourceStep><con:targetType>Endpoint</con:targetType><con:targetStep>Get XSRF Token</con:targetStep><con:upgraded>true</con:upgraded></con:transfers></con:config></con:testStep><con:testStep type="httprequest" name="Get XSRF Token" id="3f128dae-fe47-45c0-8392-42e63c2b1b78"><con:settings/><con:config method="GET" xsi:type="con:HttpRequest" id="5b446fc4-e629-495f-a170-ff0dc61467d3" name="Get XSRF Token" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:endpoint>https://myaccount.sandbox.ing.com/granting/5674909c-5656-4c37-b418-45e1a6921345/NL?scope=payment-accounts%3Abalances%3Aview+payment-accounts%3Atransactions%3Aview&redirect_uri=https%3A%2F%2Fwww.example.com&client_id=5ca1ab1e-c0ca-c01a-cafe-154deadbea75&state=anything&response_type=code</con:endpoint><con:request/><con:assertion type="Valid HTTP Status Codes" id="1935ebd7-8851-494a-9180-a5ef4864501d" name="Valid HTTP Status Codes"><con:configuration><codes>200</codes></con:configuration></con:assertion><con:assertion type="GroovyScriptAssertion" id="83962293-eec7-4a29-b542-6840b462315f" name="Script Assertion"><con:configuration><scriptText>// Get the raw response headers
def rawHeaders = messageExchange.getResponseHeaders()
// Initialize variable to store the XSRF token
def xsrfToken = null
// Iterate through the raw headers to find the Set-Cookie header
rawHeaders.each { header ->
if (header.key == "Set-Cookie") {
// Extract the XSRF token from the Set-Cookie header
def cookieValue = header.value[0]
def matcher = cookieValue =~ /XSRF-TOKEN=([^;]+)/
if (matcher.find()) {
xsrfToken = matcher.group(1)
}
}
}
// Log and store the extracted XSRF token if found
if (xsrfToken != null) {
log.info("XSRF Token: ${xsrfToken}")
// Store the XSRF token in the test case property for later use
context.testCase.testSteps["Properties"].setPropertyValue("XSRFToken", xsrfToken)
} else {
log.warn("XSRF token not found in the response headers.")
context.testCase.testSteps["Properties"].setPropertyValue("XSRFToken", "Not Found")
throw new Exception("XSRF Token not present.")
}</scriptText></con:configuration></con:assertion><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:testStep type="httprequest" name="Simulate User Login" id="2a80b27f-58ec-4da8-bd89-b189b39b0b7d"><con:settings/><con:config method="POST" xsi:type="con:HttpRequest" id="5013a8f8-b645-445f-99f8-07d841d9317c" name="Simulate User Login" postQueryString="false" mediaType="application/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment xmlns:con="http://eviware.com/soapui/config">
<con:entry key="Cookie" value="XSRF-TOKEN=${Properties#XSRFToken}"/>
<con:entry key="x-xsrf-token" value="${Properties#XSRFToken}"/>
<con:entry key="Content-Type" value="application/json"/>
</xml-fragment></con:setting></con:settings><con:endpoint>https://api.myaccount.sandbox.ing.com/grantssupport/${Properties#AuthCode}/auth-code</con:endpoint><con:request>{"id":"286c4b2f-b989-43c9-82f4-0bdfe668d37f","client_id":"5ca1ab1e-c0ca-c01a-cafe-154deadbea75","scopes":"payment-accounts:balances:view payment-accounts:transactions:view","state":"anything","redirectURL":"https://www.example.com"}</con:request><con:assertion type="Valid HTTP Status Codes" id="9452bca7-6744-4abd-8f11-8dd9d86532b7" name="Valid HTTP Status Codes"><con:configuration><codes>200</codes></con:configuration></con:assertion><con:assertion type="GroovyScriptAssertion" id="167fc631-142e-4f9b-8c3d-ab826206b55f" name="Script Assertion"><con:configuration><scriptText>def responseBody = messageExchange.responseContent
// Define a regex pattern to extract the code from the URL
def pattern = /code=([^"&]+)/
// Initialize variable to store the code
def code = null
// Use the pattern to find the code in the URL
def matcher = (responseBody =~ pattern)
if (matcher.find()) {
code = matcher.group(1)
println("Extracted Code: ${code}")
context.testCase.testSteps["Properties"].setPropertyValue("Code", code)
} else {
println("Code not found in the URL.")
context.testCase.testSteps["Properties"].setPropertyValue("Code", "Not Found")
throw new Exception("Code not present.")
}</scriptText></con:configuration></con:assertion><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:testStep type="httprequest" name="Request User Data" id="e01f0d81-ee2c-408b-a7d7-85181a334e36"><con:settings/><con:config method="GET" xsi:type="con:HttpRequest" id="931b0be0-fd0b-4bf9-b736-bfaf53648879" name="Request User Data" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost/api/ing/token?state=anything&code=${Properties#code}</con:endpoint><con:request/><con:assertion type="Valid HTTP Status Codes" id="0f53fcd2-0647-4c89-a5f1-2a5bdf646e91" name="Valid HTTP Status Codes"><con:configuration><codes>200</codes></con:configuration></con:assertion><con:assertion type="Simple Contains" id="3994beda-e2a1-4101-9b4a-e2f1c0bdfc1e" name="Contains"><con:configuration><token>accounts</token><ignoreCase>false</ignoreCase><useRegEx>false</useRegEx></con:configuration></con:assertion><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:properties/></con:testCase><con:testCase id="a8ec18db-d64f-4206-a5c5-67f4c4b03220" failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="ING PIS" searchProperties="true"><con:settings/><con:testStep type="httprequest" name="Request Payment URL" id="a28dfb5d-b694-4a42-b968-59c3e04d697f"><con:settings/><con:config method="GET" xsi:type="con:HttpRequest" id="0720f7c5-3479-4813-ae24-b723037f0998" name="Request Payment URL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:endpoint>http://localhost/api/ing/pis</con:endpoint><con:request/><con:assertion type="Valid HTTP Status Codes" id="3a26a227-befc-451b-9d88-128283712373" name="Valid HTTP Status Codes"><con:configuration><codes>200
</codes></con:configuration></con:assertion><con:assertion type="Simple Contains" id="f8092489-fa41-416e-b889-a15bda44a424" name="has _links"><con:configuration><token>_links</token><ignoreCase>false</ignoreCase><useRegEx>false</useRegEx></con:configuration></con:assertion><con:assertion type="Simple Contains" id="c92aee00-4e2e-4406-ba93-bb393f9b6c23" name="has scaRedirect"><con:configuration><token>scaRedirect</token><ignoreCase>false</ignoreCase><useRegEx>false</useRegEx></con:configuration></con:assertion><con:credentials><con:authType>No Authorization</con:authType></con:credentials><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:parameters/></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/><con:oAuth2ProfileContainer/><con:oAuth1ProfileContainer/><con:sensitiveInformation/></con:soapui-project>