File tree 1 file changed +30
-22
lines changed
1 file changed +30
-22
lines changed Original file line number Diff line number Diff line change @@ -122,34 +122,42 @@ public function doSendRequest(RequestInterface $request)
122
122
*/
123
123
public function on (RequestMatcher $ requestMatcher , $ result )
124
124
{
125
- $ callable = null ;
126
-
127
- switch (true ) {
128
- case is_callable ($ result ):
129
- $ callable = $ result ;
130
-
131
- break ;
132
- case $ result instanceof ResponseInterface:
133
- $ callable = function () use ($ result ) {
134
- return $ result ;
135
- };
136
-
137
- break ;
138
- case $ result instanceof \Exception:
139
- $ callable = function () use ($ result ) {
140
- throw $ result ;
141
- };
142
-
143
- break ;
144
- default :
145
- throw new \InvalidArgumentException ('Result must be either a response, an exception, or a callable ' );
146
- }
125
+ $ callable = self ::makeCallable ($ result );
126
+
147
127
$ this ->conditionalResults [] = [
148
128
'matcher ' => $ requestMatcher ,
149
129
'callable ' => $ callable ,
150
130
];
151
131
}
152
132
133
+ /**
134
+ * @param ResponseInterface|Exception|ClientExceptionInterface|callable $result
135
+ *
136
+ * @throws \InvalidArgumentException
137
+ *
138
+ * @return callable
139
+ */
140
+ private static function makeCallable ($ result )
141
+ {
142
+ if (is_callable ($ result )) {
143
+ return $ result ;
144
+ }
145
+
146
+ if ($ result instanceof ResponseInterface) {
147
+ return function () use ($ result ) {
148
+ return $ result ;
149
+ };
150
+ }
151
+
152
+ if ($ result instanceof \Exception) {
153
+ return function () use ($ result ) {
154
+ throw $ result ;
155
+ };
156
+ }
157
+
158
+ throw new \InvalidArgumentException ('Result must be either a response, an exception, or a callable ' );
159
+ }
160
+
153
161
/**
154
162
* Adds an exception that will be thrown.
155
163
*/
You can’t perform that action at this time.
0 commit comments