public function testCanCreateServerRequestViaFromGlobalsMethod()
{
$server = ['SERVER_PROTOCOL' => '1.1', 'HTTP_HOST' => 'example.com', 'HTTP_ACCEPT' => 'application/json', 'REQUEST_METHOD' => 'POST', 'REQUEST_URI' => '/foo/bar', 'QUERY_STRING' => 'bar=baz'];
$cookies = $query = $body = $files = ['bar' => 'baz'];
$cookies['cookies'] = true;
$query['query'] = true;
$body['body'] = true;
$files = ['files' => ['tmp_name' => 'php://temp', 'size' => 0, 'error' => 0, 'name' => 'foo.bar', 'type' => 'text/plain']];
$expectedFiles = ['files' => new UploadedFile('php://temp', 0, 0, 'foo.bar', 'text/plain')];
$request = ServerRequestFactory::fromGlobals($server, $query, $body, $cookies, $files);
$this->assertInstanceOf('Phly\\Http\\ServerRequest', $request);
$this->assertEquals($cookies, $request->getCookieParams());
$this->assertEquals($query, $request->getQueryParams());
$this->assertEquals($body, $request->getParsedBody());
$this->assertEquals($expectedFiles, $request->getUploadedFiles());
$this->assertEmpty($request->getAttributes());
}