Open Data Catalog v2.0.0
ServiceTest.php
Go to the documentation of this file.
1 <?php
2 
6 use PHPUnit\Framework\TestCase;
8 use Drupal\Component\DependencyInjection\Container;
9 use MockChain\Options;
10 use MockChain\Chain;
11 use Drupal\dkan_datastore\Service\Factory\Resource as ResourceServiceFactory;
12 use Drupal\dkan_datastore\Service\Factory\Import as ImportServiceFactory;
13 use Drupal\Core\Queue\QueueFactory;
14 use Drupal\dkan_datastore\Service\Resource as ResourceService;
15 use Drupal\dkan_datastore\Service\Import as ImportService;
16 use Dkan\Datastore\Resource;
17 use Procrastinator\Result;
18 use Drupal\Core\Queue\Memory;
19 
23 class ServiceTest extends TestCase {
24 
28  public function test() {
29 
30  $chain = (new Chain($this))
31  ->add(Container::class, "get", $this->getContainerOptions())
32  ->add(ResourceServiceFactory::class, "getInstance", ResourceService::class)
33  ->add(ResourceService::class, "get", new Resource("1", "file:///hello.txt", "text/csv"))
34  ->add(ResourceService::class, "getResult", new Result())
35  ->add(ImportServiceFactory::class, "getInstance", ImportService::class)
36  ->add(ImportService::class, "import", NULL)
37  ->add(ImportService::class, "getResult", new Result())
38  ->add(QueueFactory::class, "get", NULL);
39 
40  $service = Service::create($chain->getMock());
41  $result = $service->import("1");
42 
43  $this->assertTrue(is_array($result));
44  }
45 
49  public function testDeferred() {
50 
51  $chain = (new Chain($this))
52  ->add(Container::class, "get", $this->getContainerOptions())
53  ->add(ResourceServiceFactory::class, "getInstance", ResourceService::class)
54  ->add(ResourceService::class, "get", new Resource("1", "file:///hello.txt", "text/csv"))
55  ->add(ImportServiceFactory::class, "getInstance", ImportService::class)
56  ->add(QueueFactory::class, "get", Memory::class)
57  ->add(Memory::class, "createItem", "123");
58 
59  $service = Service::create($chain->getMock());
60  $result = $service->import("1", TRUE);
61 
62  $this->assertTrue(is_array($result));
63  }
64 
68  public function testDrop() {
69  $container = (new Chain($this))
70  ->add(Container::class, "get", $this->getContainerOptions())
71  ->add(QueueFactory::class, "get", NULL)
72  ->add(ResourceServiceFactory::class, "getInstance", ResourceService::class)
73  ->add(ResourceService::class, "get", new Resource("1", "file:///hello.txt", "text/csv"))
74  ->add(ResourceService::class, "remove", NULL)
75  ->add(ImportServiceFactory::class, "getInstance", ImportService::class)
76  ->add(ImportService::class, "getStorage", DatabaseTable::class)
77  ->add(DatabaseTable::class, "destroy", NULL)
78  ->add(JobStoreFactory::class, "getInstance", JobStore::class)
79  ->add(JobStore::class, "remove", NULL)
80  ->getMock();
81 
82  $service = Service::create($container);
83  $service->drop("1");
84 
85  $this->assertTrue(TRUE);
86  }
87 
91  private function getContainerOptions() {
92  return (new Options())
93  ->add('dkan_datastore.service.factory.resource', ResourceServiceFactory::class)
94  ->add('dkan_datastore.service.factory.import', ImportServiceFactory::class)
95  ->add('queue', QueueFactory::class)
96  ->add('dkan_datastore.job_store_factory', JobStoreFactory::class)
97  ->index(0);
98 
99  }
100 
101 }
ServiceTest\testDrop
testDrop()
Definition: ServiceTest.php:68
ServiceTest\testDeferred
testDeferred()
Definition: ServiceTest.php:49
Drupal\dkan_datastore\Service\Factory\Resource
Definition: Resource.php:16
Drupal\dkan_datastore\Storage\DatabaseTable
Definition: DatabaseTable.php:16
Drupal\dkan_datastore\Service\Resource
Definition: Resource.php:16
Drupal\dkan_datastore\Storage\JobStore
Definition: JobStore.php:12
Drupal\dkan_datastore\Service\Factory\Import
Definition: Import.php:15
ServiceTest
Definition: ServiceTest.php:23
ServiceTest\test
test()
Definition: ServiceTest.php:28
Drupal\dkan_datastore\Service\Import
Definition: Import.php:16
Drupal\dkan_datastore\Storage\JobStoreFactory
Definition: JobStoreFactory.php:11
Drupal\dkan_datastore\Service