Google\Cloud\Tests\Storage\Connection\RestTest::testInsertObject PHP Method

testInsertObject() public method

public testInsertObject ( array $options, $expectedUploaderType, $expectedContentType, array $expectedMetadata )
$options array
$expectedMetadata array
    public function testInsertObject(array $options, $expectedUploaderType, $expectedContentType, array $expectedMetadata)
    {
        $actualRequest = null;
        $response = new Response(200, ['Location' => 'http://www.mordor.com'], $this->successBody);
        $this->requestWrapper->send(Argument::type('Psr\\Http\\Message\\RequestInterface'), Argument::type('array'))->will(function ($args) use(&$actualRequest, $response) {
            $request = $args[0];
            if ($request->getMethod() === 'POST') {
                $actualRequest = $request;
            }
            return $response;
        });
        $rest = new Rest();
        $rest->setRequestWrapper($this->requestWrapper->reveal());
        $uploader = $rest->insertObject($options);
        $uploader->upload();
        list($contentType, $metadata) = $this->getContentTypeAndMetadata($actualRequest);
        $this->assertInstanceOf($expectedUploaderType, $uploader);
        $this->assertEquals($expectedContentType, $contentType);
        foreach ($expectedMetadata as $key => $value) {
            $this->assertEquals($value, $metadata[$key]);
        }
    }