-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMockHttpResponseGenerator.cls
20 lines (20 loc) · 3.67 KB
/
MockHttpResponseGenerator.cls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/********************************************************************************************************************
* @ClassName : MockHttpResponseGenerator
* @Description : Sample mock callout class for testing the API response handling
********************************************************************************************************************/
global class MockHttpResponseGenerator implements HttpCalloutMock {
global HTTPResponse respond(HTTPRequest req) {
// Create a fake response
HttpResponse res = new HttpResponse();
res.setHeader('Content-Type', 'application/json');
String baseCode = req.getEndpoint().substring(req.getEndpoint().indexOf('base')+5);
if('EUR'.equals(baseCode)){
res.setBody('{"success":true,"timestamp":1545205146,"base":"EUR","date":"2018-12-19","rates":{"AED":4.185926,"AFN":86.37852,"ALL":123.168454,"AMD":553.111135,"ANG":2.024726,"AOA":351.404595,"ARS":43.600001,"AUD":1.584503,"AWG":2.051852,"AZN":1.940167,"BAM":1.95806,"BBD":2.283248,"BDT":95.576071,"BGN":1.956237,"BHD":0.429556,"BIF":2076.923293,"BMD":1.139601,"BND":1.796183,"BOB":7.87322,"BRL":4.458688,"BSD":1.139772,"BTC":0.000306,"BTN":79.958934,"BWP":12.207387,"BYN":2.425756,"BYR":22336.184658,"BZD":2.299254,"CAD":1.534074,"CDF":1851.852006,"CHF":1.130747,"CLF":0.028544,"CLP":785.516353,"CNY":7.858805,"COP":3643.305222,"CRC":680.712321,"CUC":1.139601,"CUP":30.199433,"CVE":111.125368,"CZK":25.736642,"DJF":202.530082,"DKK":7.46832,"DOP":57.339017,"DZD":135.167833,"EGP":20.417075,"ERN":17.093957,"ETB":32.041601,"EUR":1,"FJD":2.420342,"FKP":0.90041,"GBP":0.899937,"GEL":303.704892,"GGP":0.899952,"GHS":5.573221,"GIP":0.900297,"GMD":56.427394,"GNF":10495.727188,"GTQ":8.828836,"GYD":238.546988,"HKD":8.915841,"HNL":27.823323,"HRK":7.420456,"HTG":87.690607,"HUF":322.336569,"IDR":16421.084328,"ILS":4.281835,"IMP":0.899952,"INR":79.945878,"IQD":1356.125497,"IRR":47982.910991,"ISK":139.008469,"JEP":0.899952,"JMD":146.256128,"JOD":0.808889,"JPY":128.133916,"KES":116.364853,"KGS":79.580289,"KHR":4581.196572,"KMF":493.304875,"KPW":1025.763309,"KRW":1281.549849,"KWD":0.346551,"KYD":0.950599,"KZT":422.598402,"LAK":9743.590702,"LBP":1716.866661,"LKR":205.629202,"LRD":179.028974,"LSL":16.352976,"LTL":3.364946,"LVL":0.689333,"LYD":1.596752,"MAD":10.894365,"MDL":19.773793,"MGA":4056.869526,"MKD":61.669479,"MMK":1803.47598,"MNT":3008.992871,"MOP":9.188716,"MRO":406.838026,"MUR":39.0431,"MVR":17.618592,"MWK":845.814367,"MXN":22.862564,"MYR":4.763362,"MZN":70.170946,"NAD":16.341563,"NGN":415.954124,"NIO":37.015955,"NOK":9.917494,"NPR":128.575496,"NZD":1.661105,"OMR":0.438701,"PAB":1.139316,"PEN":3.815898,"PGK":3.706154,"PHP":60.488321,"PKR":158.581249,"PLN":4.28098,"PYG":6748.830751,"QAR":4.149263,"RON":4.648662,"RSD":118.347563,"RUB":76.431348,"RWF":1017.96022,"SAR":4.27493,"SBD":9.267295,"SCR":15.54473,"SDG":54.31792,"SEK":10.308379,"SGD":1.56046,"SHP":1.505302,"SLL":9743.590609,"SOS":662.107643,"SRD":8.499182,"STD":23989.289798,"SVC":9.981482,"SYP":586.89422,"SZL":16.330059,"THB":37.262611,"TJS":10.751338,"TMT":4,"TND":3.348371,"TOP":2.570484,"TRY":6.06881,"TTD":7.679716,"TWD":35.092828,"TZS":2621.316211,"UAH":31.796052,"UGX":4220.509018,"USD":1.139601,"UYU":36.785899,"UZS":9493.961376,"VEF":283268.12124,"VND":26561.940083,"VUV":129.34753,"WST":2.951166,"XAF":656.706928,"XAG":0.077527,"XAU":0.000912,"XCD":3.07983,"XDR":0.822729,"XOF":656.71819,"XPF":119.395853,"YER":285.361552,"ZAR":16.247863,"ZMK":10257.772676,"ZMW":13.659272,"ZWL":367.356176}}');
}
else{
res.setBody('{"success":false,"timestamp":1545205146,"base":"'+baseCode+'","date":"2018-12-19","rates":{}}');
}
res.setStatusCode(200);
return res;
}
}