getTestClient('S3', []); $strategy = new InstructionFileMetadataStrategy($client); $args = [ 'Bucket' => 'foo', 'Key' => 'bar', 'Metadata' => [] ]; $this->addMockResults($client, [ new Result(['ObjectURL' => 'file_url']) ]); $updatedArgs = $strategy->save( $this->getMetadataEnvelope($fields), $args ); $this->assertNotEmpty($updatedArgs); $this->assertCount(0, $updatedArgs['Metadata']); } /** * @dataProvider getMetadataResult */ public function testLoad($args, $metadata) { /** @var S3Client $client */ $client = $this->getTestClient('S3', []); $strategy = new InstructionFileMetadataStrategy($client); $this->addMockResults($client, [ new Result(['Body' => json_encode($metadata)]) ]); $envelope = $strategy->load($args); foreach ($envelope as $field => $value) { $this->assertEquals($value, $metadata[$field]); } } }