public function testConstructorCanAcceptAllMessageParts()
{
$uri = new Uri('http://example.com/');
$body = new Stream('php://memory');
$headers = ['x-foo' => ['bar']];
$request = new Request($uri, 'POST', $body, $headers);
$this->assertSame($uri, $request->getUri());
$this->assertEquals('POST', $request->getMethod());
$this->assertSame($body, $request->getBody());
$testHeaders = $request->getHeaders();
foreach ($headers as $key => $value) {
$this->assertArrayHasKey($key, $testHeaders);
$this->assertEquals($value, $testHeaders[$key]);
}
}