FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
IRWebAPIKit/IRWebAPIMockJSONPConnection.j at develop · iridia/IRWebAPIKit · GitHub
iridia
IRWebAPIKit
Repository navigation
Code
Issues
Pull requests
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
IRWebAPIKit
/
IRWebAPIMockJSONPConnection.j
Copy path
More file actions
More file actions
Latest commit
History
History
History
115 lines (46 loc) · 2.62 KB
Breadcrumbs
IRWebAPIKit
/
IRWebAPIMockJSONPConnection.j
Copy path
File metadata and controls
115 lines (46 loc) · 2.62 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
//
IRWebAPIMockJSONPConnection.j
//
Evadne Wu at Iridia, 2010
@
import
<Foundation/CPJSONPConnection.j>
kIRWebAPIMockEndpointGeneralException
=
@"
IRWebAPIMockEndpointGeneralException
"
;
//
Notice that we also will probably set a different timeout tolerance for the API engine.
//
The timeout here is set for mockup purposes only.
var
kIRJSONPMockConnectionTimeoutDefaultTimeInterval
=
15.0
,
kIRJSONPMockConnectionTimeoutTimeIntervalInfoDictionaryKey
=
@"
IRJSONPMockConnectionTimeoutDefaultTimeInterval
"
,
kIRJSONPMockConnectionTimeoutDefaultProbability
=
0.05
,
kIRJSONPMockConnectionTimeoutProbabilityInfoDictionaryKey
=
@"
IRJSONPMockConnectionTimeoutProbability
"
;
@implementation
IRJSONPMockConnection
:
CPJSONPConnection
{
CPMutableDictionary requestHandlers;
//
Simulated timeout
CPTimeInterval simulatedTimeoutInterval;
float simulatedTimeoutProbability;
//
Simulated error
Object
simulatedErroneousResponse;
float simulatedErroneousResponseProbability;
}
- (IRWebAPIMockJSONPConnection)
initWithRequest
:
(
CPURLRequest
)
aRequest
callback
:
(
CPString
)
aString
delegate
:
(
id
)
aDelegate
startImmediately
:
(
BOOL
)
shouldStartImmediately
{
if
(shouldStartImmediately)
[CPException raise
:
kIRWebAPIMockEndpointGeneralException reason
:
[CPString stringWithFormat
:
@
"
To use a mocked connection, startImmediately must be set to false because it works with the monkey-patched connection.methodName property.
"
]];
self
=
[
super
initWithRequest
:
aRequest callback
:
aString delegate
:
aDelegate startImmediately
:
NO
];
var
infoDict
=
[[CPBundle mainBundle] infoDictionary];
simulatedTimeoutInterval
=
[infoDict objectForKey
:
kIRJSONPMockConnectionTimeoutTimeIntervalInfoDictionaryKey]
||
kIRJSONPMockConnectionTimeoutDefaultTimeInterval;
simulatedTimeoutProbability
=
[infoDict objectForKey
:
kIRJSONPMockConnectionTimeoutProbabilityInfoDictionaryKey]
||
kIRJSONPMockConnectionTimeoutDefaultProbability;
return
self
;
}
- (
void
)
start
{
CPLog
(@
"
self.methodName is %@
"
,
self
.
methodName
);
if
([
self
shouldSimulateFailure]) {
CPLog
(@
"
Simulating a connection failure
"
);
}
else
{
CPLog
(@
"
Simulating a successful connection
"
);
}
}
- (
void
)
mockRequestNamed
:
(
CPString
)
requestName
withHandler
:
(
Function
)
handler
{
if
([requestHandlers objectForKey
:
requestName]
!==
nil)
[CPException raise
:
kIRWebAPIMockEndpointGeneralException reason
:
[CPString stringWithFormat
:
@
"
Mock handler for request named %@ already exists
"
, requestName]];
[requestHandlers addObject
:
handler forKey
:
requestName];
}
- (
BOOL
)
shouldSimulateFailure
{
if
(
Math
.
random
()
<
simulatedTimeoutProbability)
return
YES
;
return
NO
;
}
@end
Back
|
FazBrowse Home
|
New Git URL