Version 1
[yaffs-website] / web / modules / contrib / ctools / src / Testing / EntityCreationTrait.php
diff --git a/web/modules/contrib/ctools/src/Testing/EntityCreationTrait.php b/web/modules/contrib/ctools/src/Testing/EntityCreationTrait.php
new file mode 100644 (file)
index 0000000..358f8a1
--- /dev/null
@@ -0,0 +1,55 @@
+<?php
+
+namespace Drupal\ctools\Testing;
+
+
+use Drupal\Component\Render\FormattableMarkup;
+
+trait EntityCreationTrait {
+
+  /**
+   * The entity type manager.
+   *
+   * @var \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected $entityTypeManager;
+
+  /**
+   * Creates a custom content type based on default settings.
+   *
+   * @param string $entity_type
+   *   The type of entity to create.
+   * @param array $values
+   *   An array of settings to change from the defaults.
+   *   Example: 'type' => 'foo'.
+   *
+   * @return \Drupal\Core\Entity\EntityInterface
+   *   Created entity.
+   */
+  protected function createEntity($entity_type, array $values = array()) {
+    $storage = $this->getEntityTypeManager()->getStorage($entity_type);
+    $entity = $storage->create($values);
+    $status = $entity->save();
+    \Drupal::service('router.builder')->rebuild();
+
+    if ($this instanceof \PHPUnit_Framework_TestCase) {
+      $this->assertSame($status, SAVED_NEW, (new FormattableMarkup('Created entity %id of type %type.', ['%id' => $entity->id(), '%type' => $entity_type]))->__toString());
+    }
+    else {
+      $this->assertEqual($status, SAVED_NEW, (new FormattableMarkup('Created entity %id of type %type.', ['%id' => $entity->id(), '%type' => $entity_type]))->__toString());
+    }
+
+    return $entity;
+  }
+
+  /**
+   * @return \Drupal\Core\Entity\EntityTypeManagerInterface
+   */
+  protected function getEntityTypeManager() {
+    if (!isset($this->entityTypeManager)) {
+      $this->entityTypeManager = $this->container->get('entity_type.manager');
+    }
+    return $this->entityTypeManager;
+  }
+
+}