Open Data Catalog v2.0.0
DkanDatasetTest.php
Go to the documentation of this file.
1 <?php
2 
3 use Drupal\Core\DependencyInjection\Container;
4 use Drupal\Core\Entity\EntityStorageInterface;
5 use Drupal\Core\Entity\EntityTypeManager;
6 use Drupal\Core\Entity\Query\QueryInterface;
9 use Drupal\node\NodeInterface;
10 use MockChain\Chain;
11 use MockChain\Options;
12 use MockChain\Sequence;
13 use PHPUnit\Framework\TestCase;
14 use Drupal\Core\Entity\EntityTypeRepository;
16 
20 class DkanDatasetTest extends TestCase {
21 
25  public function test() {
26  $containerOptions = (new Options())
27  ->add('entity_type.manager', EntityTypeManager::class)
28  ->add('entity_type.repository', EntityTypeRepository::class)
29  ->add('dkan_data.storage', Data::class)
30  ->index(0);
31 
32  $nids = [1, 2];
33  $executeSequence = (new Sequence())->add(2)->add($nids);
34  $container = (new Chain($this))
35  ->add(Container::class, 'get', $containerOptions)
36  ->add(EntityTypeManager::class, 'getStorage', EntityStorageInterface::class)
37  ->add(EntityStorageInterface::class, 'getQuery', QueryInterface::class)
38  ->add(EntityStorageInterface::class, 'load', NodeInterface::class)
39  ->add(NodeInterface::class, 'uuid', 'xyz')
40  ->add(QueryInterface::class, 'condition', QueryInterface::class)
41  ->add(QueryInterface::class, 'count', QueryInterface::class)
42  ->add(QueryInterface::class, 'execute', $executeSequence)
43  ->add(QueryInterface::class, 'range', QueryInterface::class)
44  ->add(EntityTypeRepository::class, 'getEntityTypeFromClass', NULL)
45  ->add(Data::class, 'retrieve', '{}')
46  ->getMock();
47 
48  \Drupal::setContainer($container);
49 
50  $plugin = new DkanDataset([], 'id', []);
51  $ids = $plugin->getItemIds(0);
52  $this->assertEquals(json_encode(['xyz', 'xyz']), json_encode($ids));
53 
54  $items = $plugin->loadMultiple($ids);
55  $this->assertEquals(Dataset::class, get_class($items['xyz']));
56  }
57 
58 }
Drupal\dkan_data\Storage\Data
Definition: Data.php:16
Drupal\dkan_search\ComplexData\Dataset
Definition: Dataset.php:14
Drupal\dkan_search\Plugin\search_api\datasource\DkanDataset
Definition: DkanDataset.php:18
DkanDatasetTest
Definition: DkanDatasetTest.php:20
DkanDatasetTest\test
test()
Definition: DkanDatasetTest.php:25