33namespace Http \Mock ;
44
55use Http \Client \Common \HttpAsyncClientEmulator ;
6+ use Http \Client \Exception ;
67use Http \Client \HttpAsyncClient ;
78use Http \Client \HttpClient ;
89use Http \Discovery \MessageFactoryDiscovery ;
10+ use Http \Message \ResponseFactory ;
911use Psr \Http \Message \RequestInterface ;
1012use Psr \Http \Message \ResponseInterface ;
1113
@@ -22,10 +24,34 @@ class Client implements HttpClient, HttpAsyncClient
2224{
2325 use HttpAsyncClientEmulator;
2426
27+ /**
28+ * @var ResponseFactory
29+ */
30+ private $ responseFactory ;
31+
32+ /**
33+ * @var RequestInterface[]
34+ */
2535 private $ requests = [];
36+
37+ /**
38+ * @var ResponseInterface[]
39+ */
2640 private $ responses = [];
41+
42+ /**
43+ * @var Exception[]
44+ */
2745 private $ exceptions = [];
2846
47+ /**
48+ * @param ResponseFactory|null $responseFactory
49+ */
50+ public function __construct (ResponseFactory $ responseFactory = null )
51+ {
52+ $ this ->responseFactory = $ responseFactory ?: MessageFactoryDiscovery::find ();
53+ }
54+
2955 /**
3056 * {@inheritdoc}
3157 */
@@ -42,11 +68,11 @@ public function sendRequest(RequestInterface $request)
4268 }
4369
4470 // Return success response by default
45- return MessageFactoryDiscovery:: find () ->createResponse ();
71+ return $ this -> responseFactory ->createResponse ();
4672 }
4773
4874 /**
49- * Add exception that will be thrown.
75+ * Adds an exception that will be thrown.
5076 *
5177 * @param \Exception $exception
5278 */
@@ -56,7 +82,7 @@ public function addException(\Exception $exception)
5682 }
5783
5884 /**
59- * Add response that will be returned.
85+ * Adds a response that will be returned.
6086 *
6187 * @param ResponseInterface $response
6288 */
@@ -66,7 +92,7 @@ public function addResponse(ResponseInterface $response)
6692 }
6793
6894 /**
69- * Get requests that were sent.
95+ * Returns requests that were sent.
7096 *
7197 * @return RequestInterface[]
7298 */
0 commit comments