https://test.bsn.neo.ondemand.com/http/hello?client=NPL&system_id=e6975e7a-4c7f-11ea-b77f-2e728ce881...
{
"client": "NPL",
"system_id": "e6975e7a-4c7f-11ea-b77f-2e728ce88125",
"scope": "COMPANY",
"start_date": "2020-01-02",
"redirect_uri": "http://remote.com.au/Callback",
"category": null
}
The Client makes a GET operation to the endpoint by using URL
https://test.bsn.neo.ondemand.com/http/hello?client=<client>&system_id=<system_id>&scope=<COMPANY|DI...;
The Sroovey script has been executed
The payload as below should be set to message body
{
"client": <client>,
"system_id": <system_id>,
"scope": <COMPANY|DISTRIBUTION|PLANT>,
"start_date": <DATE>,
"redirect_uri": <http://remote.com.au/Callback>,
"category": <category>
}
static void main(String[] args) {
Initialization()
//GIVEN
SetHeaders()
SetBody()
//WHEN
ExecuteTest()
//THEN
UnitTestCases()
DisplayResultToConsole()
}
https://test.bsn.neo.ondemand.com/http/hello?
client=NPL&system_id=e6975e7a-4c7f-11ea-b77f-2e728ce88125&
scope=COMPANY&start_date=2020-01-02&
redirect_uri=http://remote.com.au/Callback&category='
private static void UT_HTTPURLIsCorrect(payload){
String uttpurl = 'https://test.bsn.neo.ondemand.com/http/hello'
assert payload.find{it.key == 'CamelHttpUrl'}.value== uttpurl
}
private static void UT_ParemterNameIsCorrect(payload){
Set parameterList = ["client", "system_id", "start_date", "redirect_uri","category"]
int i
payload.each {
it ->
if(parameterList.contains(it.key)) {
i++
}
}
assert i == 5
}
private static void DisplayResultToConsole(){
// Print Headers
msg.getHeaders().each {
println it
}
// Print body
println msg.getBody()
}
package test.com
import com.sap.gateway.ip.core.customdev.util.Message;
import groovy.json.*;
Message processData(Message message) {
def params = [:]
def urlParameters = message.getHeaders().get("CamelHttpQuery")
// Parse all URL parameters into message payload
urlParameters.split("&").each {
it ->
String[] pair = it.split("=")
params[pair[0]] = (pair as List)[1]
}
// Parse all header parameters into message payload
message.getHeaders().each {
it ->
params << it
}
message.setBody(JsonOutput.toJson(params))
message.setHeader('Content-Type', 'application/json');
return message
}
package test.com
import com.sap.gateway.ip.core.customdev.util.Message
import com.sap.gateway.ip.core.customdev.processor.MessageImpl
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
class UnitTest {
// Global Variables
private final static String TEST_PROGRAM = './src/test/com/ParseURLParameter02.groovy'
private static String testURL = 'https://test.bsn.neo.ondemand.com/http/hello?client=NPL&system_id=e6975e7a-4c7f-11ea-b77f-2e728ce88125&scope=COMPANY&start_date=2020-01-02&redirect_uri=http://remote.com.au/Callback&category='
private static Message msg
static void main(String[] args) {
Initialization()
//GIVEN
SetHeaders()
SetBody()
//WHEN
ExecuteTest()
//THEN
UnitTestCases()
DisplayResultToConsole()
}
/*----------------------------------Unit Test----------------------------------------*/
private static void UnitTestCases(){
def jsonSlurper = new JsonSlurper()
def payload = jsonSlurper.parseText(msg.getBody());
UT_ParemterNameIsCorrect(payload)
UT_HTTPURLIsCorrect(payload)
}
private static void UT_HTTPURLIsCorrect(payload){
String uttpurl = 'https://test.bsn.neo.ondemand.com/http/hello'
assert payload.find{it.key == 'CamelHttpUrl'}.value== uttpurl
}
private static void UT_ParemterNameIsCorrect(payload){
Set parameterList = ["client", "system_id", "start_date", "redirect_uri","category"]
int i
payload.each {
it ->
if(parameterList.contains(it.key)) {
i++
}
}
assert i == 5
}
/*---------------------------------Utility Methods-----------------------------------------*/
private static void DisplayResultToConsole(){
// Print Headers
msg.getHeaders().each {
println it
}
// Print body
println msg.getBody()
}
private static void ExecuteTest(){
GroovyShell shell = new GroovyShell()
def script = shell.parse(new File(TEST_PROGRAM))
script.processData(msg)
}
private static void SetBody(){
def payload = [:]
msg.setBody(JsonOutput.toJson(payload))
}
private static void SetHeaders(){
// Parse URL
def urlComponents = [:]
(this.testURL =~ /([^?]*)+/)[0..-1].eachWithIndex{
it,i->
switch(i) {
case 0:
urlComponents [ 'CamelHttpUrl' ] = it [ 0 ];
break;
case 2:
urlComponents [ 'CamelHttpQuery' ] = it [ 0 ];
break;
}
}
// Set URL parameters
msg.setHeader('CamelHttpUrl',urlComponents.CamelHttpUrl)
msg.setHeader('CamelHttpQuery', urlComponents.CamelHttpQuery)
}
private static void Initialization(){
msg = new MessageImpl()
}
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
9 | |
8 | |
7 | |
6 | |
5 | |
4 | |
4 | |
3 | |
3 | |
3 |