예제 #1
0
 /**
  * Tests the getFieldStorageDefinitions() method with caching.
  *
  * @covers ::getFieldStorageDefinitions
  */
 public function testGetFieldStorageDefinitionsWithCaching()
 {
     $field_definition = $this->setUpEntityWithFieldDefinition(TRUE, 'id');
     $field_storage_definition = $this->getMock('\\Drupal\\Core\\Field\\FieldStorageDefinitionInterface');
     $field_storage_definition->expects($this->any())->method('getName')->will($this->returnValue('field_storage'));
     $this->moduleHandler->expects($this->any())->method('getImplementations')->will($this->returnValueMap(array(array('entity_field_storage_info', array('example_module')), array('entity_type_build', array()))));
     $this->moduleHandler->expects($this->once())->method('invoke')->with('example_module')->will($this->returnValue(array('field_storage' => $field_storage_definition)));
     $expected = array('id' => $field_definition, 'field_storage' => $field_storage_definition);
     $this->cacheBackend->expects($this->at(0))->method('get')->with('entity_base_field_definitions:test_entity_type:en', FALSE)->will($this->returnValue((object) array('data' => array('id' => $expected['id']))));
     $this->cacheBackend->expects($this->at(1))->method('get')->with('entity_field_storage_definitions:test_entity_type:en', FALSE)->will($this->returnValue(FALSE));
     $this->cacheBackend->expects($this->at(2))->method('get')->with('entity_type', FALSE)->will($this->returnValue(FALSE));
     $this->cacheBackend->expects($this->at(3))->method('set')->with('entity_type');
     $this->cacheBackend->expects($this->at(4))->method('set')->with('entity_field_storage_definitions:test_entity_type:en');
     $this->cacheBackend->expects($this->at(5))->method('get')->with('entity_base_field_definitions:test_entity_type:en', FALSE)->will($this->returnValue((object) array('data' => array('id' => $expected['id']))));
     $this->cacheBackend->expects($this->at(6))->method('get')->with('entity_field_storage_definitions:test_entity_type:en', FALSE)->will($this->returnValue((object) array('data' => $expected)));
     $this->assertSame($expected, $this->entityManager->getFieldStorageDefinitions('test_entity_type'));
     $this->entityManager->testClearEntityFieldInfo();
     $this->assertSame($expected, $this->entityManager->getFieldStorageDefinitions('test_entity_type'));
 }
예제 #2
0
 /**
  * Tests the getFieldStorageDefinitions() method with caching.
  *
  * @covers ::getFieldStorageDefinitions
  */
 public function testGetFieldStorageDefinitionsWithCaching()
 {
     $field_definition = $this->setUpEntityWithFieldDefinition(TRUE, 'id');
     $field_storage_definition = $this->prophesize(FieldStorageDefinitionInterface::class);
     $field_storage_definition->getName()->willReturn('field_storage');
     $definitions = ['field_storage' => $field_storage_definition->reveal()];
     $this->moduleHandler->getImplementations('entity_field_storage_info')->willReturn(['example_module']);
     $this->moduleHandler->invoke('example_module', 'entity_field_storage_info', [$this->entityType])->willReturn($definitions);
     $this->moduleHandler->alter('entity_field_storage_info', $definitions, $this->entityType)->willReturn(NULL);
     $expected = array('id' => $field_definition, 'field_storage' => $field_storage_definition->reveal());
     $this->cacheBackend->get('entity_base_field_definitions:test_entity_type:en')->willReturn((object) ['data' => ['id' => $expected['id']]])->shouldBeCalledTimes(2);
     $this->cacheBackend->get('entity_field_storage_definitions:test_entity_type:en')->willReturn(FALSE);
     $this->cacheBackend->get('entity_type')->willReturn(FALSE);
     $this->cacheBackend->set('entity_type', Argument::any(), Cache::PERMANENT, ['entity_types'])->shouldBeCalled();
     $this->cacheBackend->set('entity_field_storage_definitions:test_entity_type:en', Argument::any(), Cache::PERMANENT, ['entity_types', 'entity_field_info'])->will(function () use($expected) {
         $this->get('entity_field_storage_definitions:test_entity_type:en')->willReturn((object) ['data' => $expected])->shouldBeCalled();
     })->shouldBeCalled();
     $this->assertSame($expected, $this->entityManager->getFieldStorageDefinitions('test_entity_type'));
     $this->entityManager->testClearEntityFieldInfo();
     $this->assertSame($expected, $this->entityManager->getFieldStorageDefinitions('test_entity_type'));
 }