/**
  * Tests searchResultToAsset().
  *
  * @covers ::searchResultToAsset
  * @covers ::loadFromAssetId
  *
  * @test
  */
 public function searchResultToAssetReturnsNewAssetWhenNoneExist()
 {
     $mock_search_result = ['id' => '123', 'sourcepath' => 'test/123.png', 'filesize' => 123456789, 'name' => '123.png'];
     $mock_query = $this->getMock('\\Drupal\\Core\\Entity\\Query\\QueryInterface');
     $mock_query->expects($this->once())->method('condition')->with('asset_id', $mock_search_result['id']);
     $mock_query->expects($this->once())->method('execute')->willReturn([]);
     $mock_asset = $this->getMockBuilder('\\Drupal\\embridge\\EmbridgeAssetEntityInterface')->disableOriginalConstructor()->getMock();
     $mock_asset->expects($this->once())->method('setTemporary')->willReturn($this->returnSelf());
     $mock_asset->expects($this->once())->method('save');
     $expected_mime = 'image/png';
     $this->mimeGuesser->expects($this->once())->method('guess')->with($mock_search_result['name'])->willReturn($expected_mime);
     $expected_values = ['asset_id' => $mock_search_result['id'], 'source_path' => $mock_search_result['sourcepath'], 'filesize' => $mock_search_result['filesize'], 'filename' => $mock_search_result['name'], 'filemime' => $expected_mime, 'catalog_id' => 'testcatalog'];
     $mock_entity_storage = $this->getMock(EntityStorageInterface::class);
     $mock_entity_storage->expects($this->once())->method('getQuery')->willReturn($mock_query);
     $mock_entity_storage->expects($this->once())->method('create')->with($expected_values)->willReturn($mock_asset);
     $this->entityTypeManager->expects($this->once())->method('getStorage')->with('embridge_asset_entity')->willReturn($mock_entity_storage);
     $this->assertEquals($mock_asset, $this->emdbHelper->searchResultToAsset($mock_search_result, 'testcatalog'));
 }
Esempio n. 2
0
 /**
  * Formats a response from EMDB to be themed into results.
  *
  * @param array $search_response
  *   The response.
  * @param \Drupal\embridge\EnterMediaAssetHelper $asset_helper
  *   A helper service.
  * @param string $catalog_id
  *   An ID of the catalog to save against temp assets.
  *
  * @return array
  *   A renderable array.
  */
 private function formatSearchResults(array $search_response, EnterMediaAssetHelper $asset_helper, $catalog_id)
 {
     /** @var \Drupal\Core\Entity\EntityStorageInterface $storage */
     $storage = $this->entityTypeManager->getStorage('embridge_catalog');
     /** @var \Drupal\embridge\EmbridgeCatalogInterface $catalog */
     $catalog = $storage->load($catalog_id);
     $application_id = $catalog->getApplicationId();
     $render_array = [];
     foreach ($search_response['results'] as $result) {
         $asset = $asset_helper->searchResultToAsset($result, $catalog_id);
         $render_array[$asset->id()] = ['#theme' => 'embridge_image', '#asset' => $asset, '#conversion' => 'thumb', '#link_to' => '', '#application_id' => $application_id];
     }
     return $render_array;
 }