5 use Drupal\Core\Entity\EntityTypeManagerInterface;
6 use Drupal\Core\Entity\Query\QueryInterface;
7 use Drupal\Core\Field\FieldItemInterface;
8 use Drupal\Core\Field\FieldItemListInterface;
10 use Drupal\node\NodeInterface;
11 use Drupal\node\NodeStorageInterface;
12 use PHPUnit\Framework\TestCase;
27 $store =
new Data($this->getEntityTypeManagerMock());
28 $store->setSchema(
'dataset');
29 $all = $store->retrieveAll();
31 $object =
'{"name":"blah"}';
33 $this->assertEquals([$object, $object], $all);
40 $this->node = $this->getNodeMock();
41 $store =
new Data($this->getEntityTypeManagerMock());
42 $store->setSchema(
'dataset');
43 $obj = $store->retrieve(1);
45 $object =
'{"name":"blah"}';
47 $this->assertEquals($object, $obj);
54 $this->node = $this->getNodeMock();
55 $object =
'{"name":"blah"}';
57 $store =
new Data($this->getEntityTypeManagerMock());
58 $store->setSchema(
'dataset');
59 $id = $store->store($object, 1);
61 $this->assertEquals(1, $id);
69 $object =
'{"name":"blah"}';
71 $store =
new Data($this->getEntityTypeManagerMock());
72 $store->setSchema(
'dataset');
73 $id = $store->store($object, 1);
75 $this->assertEquals(1, $id);
82 $this->node = $this->getNodeMock();
83 $store =
new Data($this->getEntityTypeManagerMock());
84 $store->setSchema(
'dataset');
85 $removed = $store->remove(1);
87 $this->assertEquals(NULL, $removed);
94 $this->expectExceptionMessage(
"Data schemaId not set in retrieveAll()");
95 $store =
new Data($this->getEntityTypeManagerMock());
96 $store->retrieveAll();
103 $this->expectExceptionMessage(
"Data schemaId not set in retrieve()");
104 $store =
new Data($this->getEntityTypeManagerMock());
112 $this->expectExceptionMessage(
"Data schemaId not set in store()");
113 $object =
'{"name":"blah"}';
114 $store =
new Data($this->getEntityTypeManagerMock());
115 $store->store($object, 1);
121 private function getEntityTypeManagerMock() {
122 $entityTypeManager = $this->getMockBuilder(EntityTypeManagerInterface::class)
123 ->disableOriginalConstructor()
124 ->setMethods([
'getStorage'])
125 ->getMockForAbstractClass();
127 $entityTypeManager->method(
'getStorage')
128 ->willReturn($this->getNodeStorageMock());
130 return $entityTypeManager;
136 private function getNodeStorageMock() {
137 $nodeStorage = $this->getMockBuilder(NodeStorageInterface::class)
138 ->disableOriginalConstructor()
139 ->setMethods([
'getQuery',
'load',
'loadByProperties',
'create'])
140 ->getMockForAbstractClass();
142 $nodeStorage->method(
'getQuery')
143 ->willReturn($this->getQueryMock());
145 $nodeStorage->method(
'load')
146 ->willReturn($this->getNodeMock());
148 $nodeStorage->method(
'loadByProperties')
149 ->willReturn([$this->node]);
151 $nodeStorage->method(
'create')
152 ->willReturn($this->getNodeMock());
160 private function getNodeMock() {
161 $node = $this->getMockBuilder(NodeInterface::class)
162 ->disableOriginalConstructor()
163 ->setMethods([
'get',
'uuid',
'save'])
164 ->getMockForAbstractClass();
167 ->willReturn($this->getFieldItemListMock());
169 $node->method(
'uuid')
172 $node->method(
'save')
181 private function getFieldItemListMock() {
182 $list = $this->getMockBuilder(FieldItemListInterface::class)
183 ->disableOriginalConstructor()
184 ->setMethods([
'get'])
185 ->getMockForAbstractClass();
187 $list->method(
'get')->willReturn($this->getFieldItemMock());
195 private function getFieldItemMock() {
196 $item = $this->getMockBuilder(FieldItemInterface::class)
197 ->disableOriginalConstructor()
198 ->setMethods([
'getValue'])
199 ->getMockForAbstractClass();
201 $item->method(
'getValue')->willReturn([
'value' => json_encode([
"name" =>
"blah"])]);
209 private function getQueryMock() {
210 $query = $this->getMockBuilder(QueryInterface::class)
211 ->disableOriginalConstructor()
212 ->setMethods([
'condition',
'execute'])
213 ->getMockForAbstractClass();
215 $query->method(
'condition')
216 ->willReturn($query);
218 $query->method(
'execute')->willReturn([1, 2]);