/** * Tests referencing content entities with string IDs. */ public function testContentEntityReferenceItemWithStringId() { $entity = EntityTest::create(); $entity->field_test_entity_test_string_id->target_id = $this->entityStringId->id(); $entity->save(); $storage = \Drupal::entityManager()->getStorage('entity_test'); $storage->resetCache(); $this->assertEqual($this->entityStringId->id(), $storage->load($entity->id())->field_test_entity_test_string_id->target_id); }
/** * Tests referencing content entities with string IDs. */ public function testContentEntityReferenceItemWithStringId() { $entity = EntityTest::create(); $entity->field_test_entity_test_string_id->target_id = $this->entityStringId->id(); $entity->save(); $storage = \Drupal::entityManager()->getStorage('entity_test'); $storage->resetCache(); $this->assertEqual($this->entityStringId->id(), $storage->load($entity->id())->field_test_entity_test_string_id->target_id); // Verify that the label for the target ID property definition is correct. $label = $entity->field_test_taxonomy_term->getFieldDefinition()->getFieldStorageDefinition()->getPropertyDefinition('target_id')->getLabel(); $this->assertTrue($label instanceof TranslatableMarkup); $this->assertEqual($label->render(), 'Taxonomy term ID'); }
/** * Tests referencing entities with string IDs. */ public function testReferencedEntitiesStringId() { $field_name = 'entity_reference_string_id'; $this->installEntitySchema('entity_test_string_id'); $this->createEntityReferenceField($this->entityType, $this->bundle, $field_name, 'Field test', 'entity_test_string_id', 'default', array('target_bundles' => array($this->bundle)), FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED); // Create the parent entity. $entity = $this->container->get('entity_type.manager')->getStorage($this->entityType)->create(array('type' => $this->bundle)); // Create the default target entity. $target_entity = EntityTestStringId::create(['id' => $this->randomString(), 'type' => $this->bundle]); $target_entity->save(); // Set the field value. $entity->{$field_name}->setValue(array(array('target_id' => $target_entity->id()))); // Load the target entities using EntityReferenceField::referencedEntities(). $entities = $entity->{$field_name}->referencedEntities(); $this->assertEqual($entities[0]->id(), $target_entity->id()); // Test that a string ID works as a default value and the field's config // schema is correct. $field = FieldConfig::loadByName($this->entityType, $this->bundle, $field_name); $field->setDefaultValue($target_entity->id()); $field->save(); $this->assertConfigSchema(\Drupal::service('config.typed'), 'field.field.' . $field->id(), $field->toArray()); // Test that the default value works. $entity = $this->container->get('entity_type.manager')->getStorage($this->entityType)->create(array('type' => $this->bundle)); $entities = $entity->{$field_name}->referencedEntities(); $this->assertEqual($entities[0]->id(), $target_entity->id()); }