Skip to content
This repository was archived by the owner on Jan 29, 2020. It is now read-only.

Commit bef2791

Browse files
committed
Merge branch 'hotfix/response-factory' into release-1.0.0
Forward port #32 Conflicts: CHANGELOG.md src/HalResponseFactoryFactory.php
2 parents fb58116 + ac776c1 commit bef2791

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

CHANGELOG.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,32 @@ Versions prior to 0.4.0 were released as the package "weierophinney/hal".
4949

5050
- Nothing.
5151

52+
## 0.6.3 - 2018-03-12
53+
54+
### Added
55+
56+
- Nothing.
57+
58+
### Changed
59+
60+
- [#32](https://github.com/zendframework/zend-expressive-hal/pull/32) modifies
61+
`HalResponseFactoryFactory` to test if a `ResponseInterface` service instance
62+
is `callable` before returning it; if it is, it calls it first. This allows
63+
the `ResponseInterface` service to return a response _factory_ instead of an
64+
instance.
65+
66+
### Deprecated
67+
68+
- Nothing.
69+
70+
### Removed
71+
72+
- Nothing.
73+
74+
### Fixed
75+
76+
- Nothing.
77+
5278
## 0.6.2 - 2018-01-03
5379

5480
### Added

test/HalResponseFactoryFactoryTest.php

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,4 +70,36 @@ public function testReturnsHalResponseFactoryInstanceWithoutConfiguredDependenci
7070
self::assertAttributeInstanceOf(Renderer\XmlRenderer::class, 'xmlRenderer', $instance);
7171
self::assertResponseFactoryReturns($response, $instance);
7272
}
73+
74+
public function testReturnsHalResponseFactoryInstanceWhenResponseInterfaceReturnsFactory()
75+
{
76+
$jsonRenderer = $this->prophesize(Renderer\JsonRenderer::class)->reveal();
77+
$xmlRenderer = $this->prophesize(Renderer\XmlRenderer::class)->reveal();
78+
$response = $this->prophesize(ResponseInterface::class)->reveal();
79+
$responseFactory = function () use ($response) {
80+
return $response;
81+
};
82+
$stream = new class()
83+
{
84+
public function __invoke()
85+
{
86+
}
87+
};
88+
89+
$container = $this->prophesize(ContainerInterface::class);
90+
$container->has(Renderer\JsonRenderer::class)->willReturn(true);
91+
$container->get(Renderer\JsonRenderer::class)->willReturn($jsonRenderer);
92+
$container->has(Renderer\XmlRenderer::class)->willReturn(true);
93+
$container->get(Renderer\XmlRenderer::class)->willReturn($xmlRenderer);
94+
$container->has(ResponseInterface::class)->willReturn(true);
95+
$container->get(ResponseInterface::class)->willReturn($responseFactory);
96+
$container->has(StreamInterface::class)->willReturn(true);
97+
$container->get(StreamInterface::class)->willReturn($stream);
98+
99+
$instance = (new HalResponseFactoryFactory())($container->reveal());
100+
self::assertInstanceOf(HalResponseFactory::class, $instance);
101+
self::assertAttributeSame($jsonRenderer, 'jsonRenderer', $instance);
102+
self::assertAttributeSame($xmlRenderer, 'xmlRenderer', $instance);
103+
self::assertAttributeSame($stream, 'streamFactory', $instance);
104+
}
73105
}

0 commit comments

Comments
 (0)