3
3
namespace Http \Mock ;
4
4
5
5
use Http \Client \Common \HttpAsyncClientEmulator ;
6
+ use Http \Client \Exception ;
6
7
use Http \Client \HttpAsyncClient ;
7
8
use Http \Client \HttpClient ;
8
9
use Http \Discovery \MessageFactoryDiscovery ;
10
+ use Http \Message \ResponseFactory ;
9
11
use Psr \Http \Message \RequestInterface ;
10
12
use Psr \Http \Message \ResponseInterface ;
11
13
@@ -22,10 +24,34 @@ class Client implements HttpClient, HttpAsyncClient
22
24
{
23
25
use HttpAsyncClientEmulator;
24
26
27
+ /**
28
+ * @var ResponseFactory
29
+ */
30
+ private $ responseFactory ;
31
+
32
+ /**
33
+ * @var RequestInterface[]
34
+ */
25
35
private $ requests = [];
36
+
37
+ /**
38
+ * @var ResponseInterface[]
39
+ */
26
40
private $ responses = [];
41
+
42
+ /**
43
+ * @var Exception[]
44
+ */
27
45
private $ exceptions = [];
28
46
47
+ /**
48
+ * @param ResponseFactory|null $responseFactory
49
+ */
50
+ public function __construct (ResponseFactory $ responseFactory = null )
51
+ {
52
+ $ this ->responseFactory = $ responseFactory ?: MessageFactoryDiscovery::find ();
53
+ }
54
+
29
55
/**
30
56
* {@inheritdoc}
31
57
*/
@@ -42,11 +68,11 @@ public function sendRequest(RequestInterface $request)
42
68
}
43
69
44
70
// Return success response by default
45
- return MessageFactoryDiscovery:: find () ->createResponse ();
71
+ return $ this -> responseFactory ->createResponse ();
46
72
}
47
73
48
74
/**
49
- * Add exception that will be thrown.
75
+ * Adds an exception that will be thrown.
50
76
*
51
77
* @param \Exception $exception
52
78
*/
@@ -56,7 +82,7 @@ public function addException(\Exception $exception)
56
82
}
57
83
58
84
/**
59
- * Add response that will be returned.
85
+ * Adds a response that will be returned.
60
86
*
61
87
* @param ResponseInterface $response
62
88
*/
@@ -66,7 +92,7 @@ public function addResponse(ResponseInterface $response)
66
92
}
67
93
68
94
/**
69
- * Get requests that were sent.
95
+ * Returns requests that were sent.
70
96
*
71
97
* @return RequestInterface[]
72
98
*/
0 commit comments