public function testNextReceivesRequestWithNewAttributes()
{
$middleware = new OriginalMessages();
$expected = $this->prophesize(ResponseInterface::class)->reveal();
$next = function ($request, $response) use($expected) {
return $expected;
};
$this->request->getUri()->will([$this->uri, 'reveal']);
$this->request->withAttribute('originalUri', Argument::that(function ($arg) {
$this->assertSame($this->uri->reveal(), $arg);
return $arg;
}))->will([$this->request, 'reveal']);
$this->request->withAttribute('originalRequest', Argument::that(function ($arg) {
$this->assertSame($this->request->reveal(), $arg);
return $arg;
}))->will([$this->request, 'reveal']);
$this->request->withAttribute('originalResponse', Argument::that(function ($arg) {
$this->assertSame($this->response->reveal(), $arg);
return $arg;
}))->will([$this->request, 'reveal']);
$response = $middleware($this->request->reveal(), $this->response->reveal(), $next);
$this->assertSame($expected, $response);
}