View source
<?php
namespace Drupal\Tests\acquia_contenthub\Unit;
use Acquia\ContentHubClient\Asset;
use Acquia\ContentHubClient\Attribute;
use Acquia\ContentHubClient\Entity;
trait ContentHubEntityTrait {
private function createContentHubEntity(array $values = []) {
$values = $values + [
'uuid' => '00000000-1111-0000-0000-000000000000',
'type' => 'node',
'origin' => '00000000-0000-0000-0000-000000000000',
'created' => '2017-12-21T20:12:11+00:00Z',
'modified' => '2014-12-21T20:12:11+00:00Z',
'attributes' => [
'type' => [
'type' => 'string',
'value' => [
'en' => 'article',
],
],
'langcode' => [
'type' => 'string',
'value' => [
'en' => 'en',
],
],
'title' => [
'type' => 'string',
'value' => [
'en' => 'Title Test',
],
],
'url' => [
'type' => 'string',
'value' => [
'en' => 'http://localhost/test/node/1',
],
],
],
'assets' => [],
];
$entity = new Entity();
$entity
->setUuid($values['uuid']);
$entity
->setType($values['type']);
$entity
->setOrigin($values['origin']);
$entity
->setCreated($values['created']);
$entity
->setModified($values['modified']);
foreach ($values['attributes'] as $name => $attr) {
$attribute = new Attribute($attr['type']);
$attribute
->setValues($attr['value']);
$entity
->setAttribute($name, $attribute);
}
foreach ($values['assets'] as $myasset) {
$asset = new Asset();
$asset
->setUrl($myasset['url']);
$asset
->setReplaceToken($myasset['replace-token']);
$entity
->addAsset($asset);
}
return $entity;
}
private function createMultilanguageContentHubEntity(array $values = []) {
$values = $values + [
'uuid' => '00000000-1111-0000-0000-000000000000',
'type' => 'node',
'origin' => '00000000-0000-0000-0000-000000000000',
'created' => '2017-12-21T20:12:11+00:00Z',
'modified' => '2014-12-21T20:12:11+00:00Z',
'attributes' => [
'type' => [
'type' => 'string',
'value' => [
'en' => 'article',
'es' => 'articulo',
],
],
'langcode' => [
'type' => 'string',
'value' => [
'en' => 'en',
'es' => 'es',
],
],
'default_langcode' => [
'type' => 'array<boolean>',
'value' => [
'en' => [
0 => 1,
],
'es' => [
0 => 0,
],
],
],
'title' => [
'type' => 'string',
'value' => [
'en' => 'Title Test',
'es' => 'Titulo de Prueba',
],
],
'url' => [
'type' => 'string',
'value' => [
'en' => 'http://localhost/test/node/1',
],
],
],
'assets' => [],
];
$entity = new Entity();
$entity
->setUuid($values['uuid']);
$entity
->setType($values['type']);
$entity
->setOrigin($values['origin']);
$entity
->setCreated($values['created']);
$entity
->setModified($values['modified']);
foreach ($values['attributes'] as $name => $attr) {
$attribute = new Attribute($attr['type']);
$attribute
->setValues($attr['value']);
$entity
->setAttribute($name, $attribute);
}
foreach ($values['assets'] as $myasset) {
$asset = new Asset();
$asset
->setUrl($myasset['url']);
$asset
->setReplaceToken($myasset['replace-token']);
$entity
->addAsset($asset);
}
return $entity;
}
}