My favorites
▼
|
Sign in
apex-lang
Utility code library for force.com
Project Home
Downloads
Wiki
Source
Checkout
Browse
Changes
Source path:
svn
/
trunk
/
eclipse-project
/
src
/
classes
/
HttpUtils.cls
‹r117
r125
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
/* ============================================================
* This code is part of the "apex-lang" open source project avaiable at:
*
* http://code.google.com/p/apex-lang/
*
* This code is licensed under the Apache License, Version 2.0. You may obtain a
* copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
* ============================================================
*/
global with sharing class HttpUtils {
//holds responses which can be added to support unit testing of web service callouts
private static final List<HttpResponse> responses = new List<HttpResponse>();
/*
* Use this method to push test responses for your unit tests.
*
* HttpUtils.pushTest('<response></response>')
*
* Subsequent calls to HttpUtils.send(request) will return the response you
* specified in pushTest.
*/
global static void pushTest(HttpResponse testResponse){
responses.add(testResponse);
}
global static void pushTest(String body){
final HttpResponse testResponse = blankResponse();
testResponse.setBody(body);
responses.add(testResponse);
}
/*
* Simple HTTP send that allows test responses to be returned via pushTest.
*/
global static HttpResponse send(HttpRequest request){
if(request == null) throw new IllegalArgumentException('request argument cannot be null');
debug(request);
HttpResponse response = null;
if(Test.isRunningTest()) response = popTest();
else response = (new Http()).send(request);
debug(response);
return response;
}
global static String sendReturnBody(HttpRequest request){
final String returnValue = null;
final HttpResponse response = send(request);
if(response != null){
returnValue = response.getBody();
}
return returnValue;
}
global static Dom.Document sendReturnDocument(HttpRequest request){
final Dom.Document returnValue = null;
final HttpResponse response = send(request);
if(response != null){
returnValue = response.getBodyDocument();
}
return returnValue;
}
global static XmlStreamReader sendReturnReader(HttpRequest request){
final XmlStreamReader returnValue = null;
final HttpResponse response = send(request);
if(response != null){
returnValue = response.getXmlStreamReader();
}
return returnValue;
}
private static HttpResponse popTest(){
return responses.isEmpty() ? blankResponse() : responses.remove(0);
}
private static HttpResponse blankResponse(){
final HttpResponse returnValue = new HttpResponse();
returnValue.setBody('');
returnValue.setStatusCode(200);
return returnValue;
}
global static void debug(HttpRequest request){
System.debug(toStr(request));
}
global static String toStr(HttpRequest request){
String returnValue = '';
if(request != null){
returnValue = '\n'
+ '\n###########################################################'
+ '\nHTTP REQUEST: '
+ '\n###########################################################'
+ '\nCompressed: ' + request.getCompressed()
+ '\nEndpoint: ' + request.getEndpoint()
+ '\nMethod: ' + request.getMethod()
+ '\nBody: '
+ '\n' + request.getBody()
+ '\n'
+ '\n';
}
return returnValue;
}
global static void debug(HttpResponse response){
if(response != null){
System.debug('\n'
+ '\n###########################################################'
+ '\nHTTP RESPONSE: '
+ '\n###########################################################'
+ '\nHeaders: ' + retrieveHeaders(response)
+ '\nStatusCode: ' + response.getStatusCode()
+ '\nStatus: ' + response.getStatus()
+ '\nBody: '
+ '\n' + response.getBody()
+ '\n'
+ '\n'
);
}
}
global static String retrieveHeaders(HttpResponse response){
String returnValue = '';
if(response != null && response.getHeaderKeys() != null && response.getHeaderKeys().size() > 0){
final Map<String,String> headers = new Map<String,String>();
for(String key : response.getHeaderKeys()){
if(key != null){
headers.put(key,response.getHeader(key));
}
}
returnValue = MapUtils.joinMap(headers,'=',',');
}
returnValue = '[' + returnValue + ']';
return returnValue;
}
}
Show details
Hide details
Change log
r118
by Richard.Vanhook on Apr 13, 2011
Diff
1.17 unit test updates
Go to:
/trunk/eclipse-project/.project
...gs/com.salesforce.ide.core.prefs
...roject/src/classes/HttpUtils.cls
...-project/src/classes/OrderBy.cls
...ject/src/classes/RandomUtils.cls
.../src/classes/RandomUtilsTest.cls
...SObjectSortByFieldComparator.cls
...ectSortByFieldComparatorTest.cls
...ect/src/classes/SetCondition.cls
...ect/src/classes/SetUtilsTest.cls
...ject/src/classes/StringUtils.cls
...project/src/classes/UrlUtils.cls
.../eclipse-project/src/package.xml
Project members,
sign in
to write a code review
Older revisions
r117
by Richard.Vanhook on Apr 13, 2011
Diff
Updates
All revisions of this file
File info
Size: 4977 bytes, 141 lines
View raw file
Powered by
Google Project Hosting