예제 #1
0
  /**
   * @covers ::onFieldDefinitionDelete
   */
  public function testOnFieldDefinitionDeleteSingleBundles() {
    $field_definition = $this->prophesize(FieldDefinitionInterface::class);
    $field_definition->getTargetEntityTypeId()->willReturn('test_entity_type');
    $field_definition->getTargetBundle()->willReturn('test_bundle');
    $field_definition->getName()->willReturn('test_field');
    $field = $field_definition->reveal();

    $storage = $this->prophesize(DynamicallyFieldableEntityStorageInterface::class);
    $storage->onFieldDefinitionDelete($field)
      ->shouldBeCalledTimes(1);
    $this->entityManager->setHandler('storage', 'test_entity_type', $storage->reveal());
    $entity = $this->prophesize(EntityTypeInterface::class);
    $this->setUpEntityManager(array('test_entity_type' => $entity));

    // Set up the stored bundle field map.
    $key_value_store = $this->prophesize(KeyValueStoreInterface::class);
    $this->keyValueFactory->get('entity.definitions.bundle_field_map')->willReturn($key_value_store->reveal());
    $key_value_store->get('test_entity_type')->willReturn([
        'test_field' => [
          'type' => 'test_type',
          'bundles' => ['test_bundle' => 'test_bundle', 'second_bundle' => 'second_bundle'],
        ],
      ]);
    $key_value_store->set('test_entity_type', [
        'test_field' => [
          'type' => 'test_type',
          'bundles' => ['second_bundle' => 'second_bundle'],
        ],
      ])
      ->shouldBeCalled();

    $this->entityManager->onFieldDefinitionDelete($field);
  }