Chris@0: createStub($entity_type_id); Chris@0: $this->assertTrue($entity_id, 'Stub successfully created'); Chris@0: if ($entity_id) { Chris@0: $violations = $this->validateStub($entity_type_id, $entity_id); Chris@0: if (!$this->assertIdentical(count($violations), 0, 'Stub is a valid entity')) { Chris@0: foreach ($violations as $violation) { Chris@0: $this->fail((string) $violation->getMessage()); Chris@0: } Chris@0: } Chris@0: } Chris@0: } Chris@0: Chris@0: /** Chris@0: * Create a stub of the given entity type. Chris@0: * Chris@0: * @param string $entity_type_id Chris@0: * The entity type we are stubbing. Chris@0: * Chris@0: * @return int Chris@0: * ID of the created entity. Chris@0: */ Chris@0: protected function createStub($entity_type_id) { Chris@0: // Create a dummy migration to pass to the destination plugin. Chris@0: $definition = [ Chris@0: 'migration_tags' => ['Stub test'], Chris@0: 'source' => ['plugin' => 'empty'], Chris@0: 'process' => [], Chris@0: 'destination' => ['plugin' => 'entity:' . $entity_type_id], Chris@0: ]; Chris@0: $migration = \Drupal::service('plugin.manager.migration')->createStubMigration($definition); Chris@0: $destination_plugin = $migration->getDestinationPlugin(TRUE); Chris@0: $stub_row = new Row([], [], TRUE); Chris@0: $destination_ids = $destination_plugin->import($stub_row); Chris@0: return reset($destination_ids); Chris@0: } Chris@0: Chris@0: /** Chris@0: * Perform validation on a stub entity. Chris@0: * Chris@0: * @param string $entity_type_id Chris@0: * The entity type we are stubbing. Chris@0: * @param string $entity_id Chris@0: * ID of the stubbed entity to validate. Chris@0: * Chris@0: * @return \Drupal\Core\Entity\EntityConstraintViolationListInterface Chris@0: * List of constraint violations identified. Chris@0: */ Chris@0: protected function validateStub($entity_type_id, $entity_id) { Chris@0: $controller = \Drupal::entityManager()->getStorage($entity_type_id); Chris@0: /** @var \Drupal\Core\Entity\ContentEntityInterface $stub_entity */ Chris@0: $stub_entity = $controller->load($entity_id); Chris@0: return $stub_entity->validate(); Chris@0: } Chris@0: Chris@0: }