1 | <?php |
||
30 | class RendererMiddlewareSpec extends ObjectBehavior |
||
31 | { |
||
32 | private $data = ['foo', 'bar']; |
||
33 | |||
34 | function let( |
||
35 | TemplateEngineInterface $templateEngine, |
||
36 | ViewInflectorInterface $viewInflector, |
||
37 | Route $route, |
||
38 | ServerRequestInterface $request, |
||
39 | ResponseInterface $response, |
||
40 | RequestHandlerInterface $handler |
||
41 | ) |
||
42 | { |
||
43 | $request->getAttribute('route')->willReturn($route); |
||
44 | $request->getAttribute('viewData', [])->willReturn($this->data); |
||
45 | $handler->handle($request)->willReturn($response); |
||
46 | $this->beConstructedWith($templateEngine, $viewInflector); |
||
47 | } |
||
48 | |||
49 | function it_is_initializable() |
||
50 | { |
||
51 | $this->shouldHaveType(RendererMiddleware::class); |
||
52 | } |
||
53 | |||
54 | function its_a_server_middleware() |
||
55 | { |
||
56 | $this->shouldBeAnInstanceOf(MiddlewareInterface::class); |
||
57 | } |
||
58 | |||
59 | function it_handles_the_request_by_populating_the_response_body( |
||
60 | TemplateEngineInterface $templateEngine, |
||
61 | ViewInflectorInterface $viewInflector, |
||
62 | Route $route, |
||
63 | ResponseInterface $response, |
||
64 | ServerRequestInterface $request, |
||
65 | RequestHandlerInterface $handler |
||
66 | ) |
||
67 | { |
||
68 | $template = 'som/twig.twig'; |
||
69 | $viewInflector->inflect($route)->shouldBeCalled()->willReturn($template); |
||
70 | $templateEngine->parse($template) |
||
71 | ->shouldBeCalled() |
||
72 | ->willReturn($templateEngine); |
||
73 | $templateEngine->process($this->data) |
||
74 | ->shouldBeCalled() |
||
75 | ->willReturn('test'); |
||
76 | $response->withBody(Argument::type(StreamInterface::class)) |
||
77 | ->shouldBeCalled() |
||
78 | ->willReturn($response); |
||
79 | $this->process($request, $handler)->shouldBe($response); |
||
80 | } |
||
81 | } |
||
82 |