entityTypeManager = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityTypeManager')->disableOriginalConstructor()->getMock(); $this->storage = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityStorageInterface')->getMock(); $this->query = $this->getMockBuilder('\\Drupal\\Core\\Entity\\Query\\QueryInterface')->getMock(); $this->entityTypeManager->method('getStorage')->willReturn($this->storage); $this->storage->method('getQuery')->willReturn($this->query); } function testFieldIsUpdatedOnEntityReturnedByQuery():void { $this->query->method('execute')->willReturn([1]); $this->entity = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityBase')->disableOriginalConstructor()->getMock(); $this->storage->expects($this->once())->method('load')->with(1)->willReturn($this->entity); $updater = new TimeBasedFieldUpdater($this->entityTypeManager, 'dummy_entity', 'dummy_date_field'); $updater->update('3 months', ['dummy_status_field' => 3], ['dummy_status_field' => 4]); $this->assertEquals($this->entity->dummy_status_field, 4); } function testFieldIsUpdatedOnAllEntitiesReturnedByQuery():void { $this->query->method('execute')->willReturn([1, 2]); $this->entity = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityBase')->disableOriginalConstructor()->getMock(); $this->entity2 = $this->getMockBuilder('\\Drupal\\Core\\Entity\\EntityBase')->disableOriginalConstructor()->getMock(); $this->storage->method('load')->willReturnMap([[1, $this->entity], [2, $this-> entity2]]); $updater = new TimeBasedFieldUpdater($this->entityTypeManager, 'dummy_entity', 'dummy_date_field'); $updater->update('3 months', ['dummy_status_field' => 3], ['dummy_status_field' => 4]); $this->assertEquals($this->entity->dummy_status_field, 4); $this->assertEquals($this->entity2->dummy_status_field, 4); } }