public function testInsertJobUpload()
{
$actualRequest = null;
$config = ['configuration' => ['load' => ['destinationTable' => ['tableId' => 'myTableId', 'datasetId' => 'myDatasetId', 'projectId' => 'myProjectId']]]];
$options = ['data' => 'justSomeData', 'projectId' => 'myProjectId'] + $config;
$response = new Response(200, [], json_encode(['jobReference' => ['jobId' => 'myJobId']]));
$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;
})->shouldBeCalledTimes(1);
$rest = new Rest();
$rest->setRequestWrapper($this->requestWrapper->reveal());
$uploader = $rest->insertJobUpload($options);
$uploader->upload();
$metadata = $this->getMetadata($actualRequest);
$this->assertEquals($config, $metadata);
$this->assertInstanceOf(AbstractUploader::class, $uploader);
}