-
Notifications
You must be signed in to change notification settings - Fork 201
Expand file tree
/
Copy pathCreateEntityTest.php
More file actions
82 lines (70 loc) · 1.99 KB
/
CreateEntityTest.php
File metadata and controls
82 lines (70 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
namespace Drupal\Tests\graphql\Kernel\DataProducer\Entity;
use Drupal\node\Entity\NodeType;
use Drupal\Tests\graphql\Kernel\GraphQLTestBase;
use Drupal\Tests\graphql\Traits\DataProducerExecutionTrait;
use Drupal\Tests\user\Traits\UserCreationTrait;
/**
* Test the CreateEntity producer.
*
* @group graphql
*/
class CreateEntityTest extends GraphQLTestBase {
use DataProducerExecutionTrait;
use UserCreationTrait;
/**
* The plugin ID.
*
* @var string
*/
protected $pluginId = 'create_entity';
/**
* Test creating entities.
*/
public function testCreateEntity() {
$content_type = NodeType::create([
'type' => 'lorem',
'name' => 'ipsum',
]);
$content_type->save();
$result = $this->executeDataProducer($this->pluginId, [
'entity_type' => 'node',
'values' => [],
'entity_return_key' => 'foo',
]);
$this->assertSame('Access was forbidden.', $result['errors'][0]);
$this->setCurrentUser($this->createUser(['bypass node access', 'access content']));
$result = $this->executeDataProducer($this->pluginId, [
'entity_type' => 'node',
'values' => [
'type' => 'lorem'
],
'entity_return_key' => 'foo',
]);
$this->assertSame([
'title: This value should not be null.',
], $result['errors']);
$result = $this->executeDataProducer($this->pluginId, [
'entity_type' => 'node',
'save' => TRUE,
'values' => [
'type' => 'lorem',
'title' => 'bar',
],
'entity_return_key' => 'foo',
]);
$this->assertEquals('bar', $result['foo']->label());
$this->assertFalse($result['foo']->isNew());
$result = $this->executeDataProducer($this->pluginId, [
'entity_type' => 'node',
'save' => FALSE,
'values' => [
'type' => 'lorem',
'title' => 'bar',
],
'entity_return_key' => 'foo',
]);
$this->assertEquals('bar', $result['foo']->label());
$this->assertTrue($result['foo']->isNew());
}
}