88namespace spec \Ibexa \HttpCache \ProxyClient ;
99
1010use FOS \HttpCache \ProxyClient \Dispatcher ;
11- use Http \Message \RequestFactory ;
1211use Ibexa \Contracts \Core \SiteAccess \ConfigResolverInterface ;
1312use PhpSpec \ObjectBehavior ;
1413use Prophecy \Argument ;
14+ use Psr \Http \Message \RequestFactoryInterface ;
1515use Psr \Http \Message \RequestInterface ;
1616
1717class VarnishSpec extends ObjectBehavior
@@ -24,7 +24,7 @@ class VarnishSpec extends ObjectBehavior
2424 public function let (
2525 ConfigResolverInterface $ configResolver ,
2626 Dispatcher $ httpDispatcher ,
27- RequestFactory $ messageFactory ,
27+ RequestFactoryInterface $ messageFactory ,
2828 RequestInterface $ request
2929 ): void {
3030 $ messageFactory ->createRequest (
@@ -34,12 +34,18 @@ public function let(
3434 Argument::any ()
3535 )->willReturn ($ request );
3636
37+ $ request ->withHeader (
38+ Argument::any (),
39+ Argument::any ()
40+ )->willReturn ($ request );
41+
3742 $ this ->beConstructedWith ($ configResolver , $ httpDispatcher , [], $ messageFactory );
3843 }
3944
4045 public function it_should_purge_with_additional_token_header_when_configuration_key_with_token_is_not_null (
4146 ConfigResolverInterface $ configResolver ,
42- RequestFactory $ messageFactory
47+ RequestFactoryInterface $ messageFactory ,
48+ RequestInterface $ request
4349 ): void {
4450 $ configResolver ->hasParameter ('http_cache.varnish_invalidate_token ' )->willReturn (true );
4551 $ configResolver ->getParameter ('http_cache.varnish_invalidate_token ' )->willReturn ('__TOKEN__ ' );
@@ -48,27 +54,31 @@ public function it_should_purge_with_additional_token_header_when_configuration_
4854
4955 $ this ->requestShouldHaveBeenCreatedWithHeaders (
5056 array_merge (self ::REQUEST_HEADERS , ['X-Invalidate-Token ' => '__TOKEN__ ' ]),
51- $ messageFactory
57+ $ messageFactory ,
58+ $ request
5259 );
5360 }
5461
5562 public function it_should_purge_without_additional_token_header_when_configuration_key_with_token_do_not_exist_in_configuration (
5663 ConfigResolverInterface $ configResolver ,
57- RequestFactory $ messageFactory
64+ RequestFactoryInterface $ messageFactory ,
65+ RequestInterface $ request
5866 ): void {
5967 $ configResolver ->hasParameter ('http_cache.varnish_invalidate_token ' )->willReturn (false );
6068
6169 $ this ->purge (self ::URI , self ::REQUEST_HEADERS );
6270
6371 $ this ->requestShouldHaveBeenCreatedWithHeaders (
6472 self ::REQUEST_HEADERS ,
65- $ messageFactory
73+ $ messageFactory ,
74+ $ request
6675 );
6776 }
6877
6978 public function it_should_purge_without_additional_token_header_when_configuration_key_with_token_exists_but_is_null (
7079 ConfigResolverInterface $ configResolver ,
71- RequestFactory $ messageFactory
80+ RequestFactoryInterface $ messageFactory ,
81+ RequestInterface $ request
7282 ): void {
7383 $ configResolver ->hasParameter ('http_cache.varnish_invalidate_token ' )->willReturn (true );
7484 $ configResolver ->getParameter ('http_cache.varnish_invalidate_token ' )->willReturn (null );
@@ -77,17 +87,23 @@ public function it_should_purge_without_additional_token_header_when_configurati
7787
7888 $ this ->requestShouldHaveBeenCreatedWithHeaders (
7989 self ::REQUEST_HEADERS ,
80- $ messageFactory
90+ $ messageFactory ,
91+ $ request
8192 );
8293 }
8394
84- private function requestShouldHaveBeenCreatedWithHeaders (array $ headers , RequestFactory $ messageFactory ): void
85- {
95+ private function requestShouldHaveBeenCreatedWithHeaders (
96+ array $ headers ,
97+ RequestFactoryInterface $ messageFactory ,
98+ RequestInterface $ request
99+ ): void {
86100 $ messageFactory ->createRequest (
87101 'PURGE ' ,
88102 self ::URI ,
89- $ headers ,
90- Argument::any ()
91103 )->shouldHaveBeenCalled ();
104+
105+ foreach ($ headers as $ name => $ value ) {
106+ $ request ->withHeader ($ name , $ value )->shouldHaveBeenCalled ();
107+ }
92108 }
93109}
0 commit comments