Open Data Catalog v2.0.0
ReferencerTest.php
Go to the documentation of this file.
1 <?php
2 
4 
5 use MockChain\Sequence;
6 use Drupal\Core\Config\ConfigFactory;
7 use Drupal\Core\Config\ImmutableConfig;
8 use Drupal\Core\Entity\EntityStorageInterface;
9 use Drupal\Core\Entity\EntityTypeManager;
11 use Drupal\node\Entity\Node;
12 use MockChain\Chain;
13 use PHPUnit\Framework\TestCase;
14 
18 class ReferencerTest extends TestCase {
19 
23  public function testReference() {
24  $node = (new Chain($this))
25  ->add(Node::class, "uuid", "123456789")
26  ->getMock();
27 
28  $entityTypeManager = (new Chain($this))
29  ->add(EntityTypeManager::class, 'getStorage', EntityStorageInterface::class)
30  ->add(EntityStorageInterface::class, 'loadByProperties', [$node])
31  ->getMock();
32 
33  $configService = (new Chain($this))
34  ->add(ConfigFactory::class, 'get', ImmutableConfig::class)
35  ->add(ImmutableConfig::class, 'get', ['publisher'])
36  ->getMock();
37 
38  $valueReferencer = new Referencer($configService, $entityTypeManager);
39  $referenced = $valueReferencer->reference((object) ['publisher' => (object) ['name' => 'Gerardo', 'company' => 'CivicActions']]);
40 
41  $this->assertTrue(is_object($referenced));
42  $this->assertEquals("123456789", $referenced->publisher);
43  }
44 
48  public function testReferenceMultiple() {
49  $uuids = (new Sequence())
50  ->add("123456789")
51  ->add("987654321");
52 
53  $node = (new Chain($this))
54  ->add(Node::class, "uuid", $uuids)
55  ->getMock();
56 
57  $entityTypeManager = (new Chain($this))
58  ->add(EntityTypeManager::class, 'getStorage', EntityStorageInterface::class)
59  ->add(EntityStorageInterface::class, 'loadByProperties', [$node])
60  ->getMock();
61 
62  $configService = (new Chain($this))
63  ->add(ConfigFactory::class, 'get', ImmutableConfig::class)
64  ->add(ImmutableConfig::class, 'get', ['keyword'])
65  ->getMock();
66 
67  $valueReferencer = new Referencer($configService, $entityTypeManager);
68  $referenced = $valueReferencer->reference((object) ['keyword' => ['Gerardo', 'CivicActions']]);
69 
70  $this->assertTrue(is_object($referenced));
71  $this->assertEquals("123456789", $referenced->keyword[0]);
72  $this->assertEquals("987654321", $referenced->keyword[1]);
73  }
74 
75 }
Drupal\Tests\dkan_data\Unit
Definition: ConfigurationOverriderTest.php:3
Drupal\dkan_data\Reference\Referencer
Definition: Referencer.php:13
Drupal\Tests\dkan_data\Unit\ReferencerTest\testReference
testReference()
Definition: ReferencerTest.php:23
Drupal\Tests\dkan_data\Unit\ReferencerTest\testReferenceMultiple
testReferenceMultiple()
Definition: ReferencerTest.php:48
Drupal\Tests\dkan_data\Unit\ReferencerTest
Definition: ReferencerTest.php:18