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;
11 use MockChain\Options;
12 use MockChain\Sequence;
13 use PHPUnit\Framework\TestCase;
14 use Drupal\Core\Entity\EntityTypeRepository;
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)
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',
'{}')
48 \Drupal::setContainer($container);
51 $ids = $plugin->getItemIds(0);
52 $this->assertEquals(json_encode([
'xyz',
'xyz']), json_encode($ids));
54 $items = $plugin->loadMultiple($ids);
55 $this->assertEquals(Dataset::class, get_class($items[
'xyz']));