public function testDecoratorProxiesToAllMethods()
{
$this->assertEquals('1.1', $this->response->getProtocolVersion());
$stream = $this->getMock('Psr\\Http\\Message\\StreamInterface');
$response = $this->response->withBody($stream);
$this->assertNotSame($this->response, $response);
$this->assertSame($stream, $response->getBody());
$this->assertSame($this->original->getHeaders(), $this->response->getHeaders());
$response = $this->response->withHeader('Accept', 'application/xml');
$this->assertNotSame($this->response, $response);
$this->assertTrue($response->hasHeader('Accept'));
$this->assertEquals('application/xml', $response->getHeaderLine('Accept'));
$response = $this->response->withAddedHeader('X-URL', 'http://example.com/foo');
$this->assertNotSame($this->response, $response);
$this->assertTrue($response->hasHeader('X-URL'));
$response = $this->response->withoutHeader('X-URL');
$this->assertNotSame($this->response, $response);
$this->assertFalse($response->hasHeader('X-URL'));
$response = $this->response->withStatus(200, 'FOOBAR');
$this->assertNotSame($this->response, $response);
$this->assertEquals('FOOBAR', $response->getReasonPhrase());
}