/** * @dataProvider provideSaveEntityError */ public function testSaveEntityError(Entity $entity, $flags, $baseRevId, $error) { /** @var WikiPageEntityStore $store */ list($store, ) = $this->createStoreAndLookup(); $user = $GLOBALS['wgUser']; // setup target item $one = new Item(); $one->setLabel('en', 'one'); $r1 = $store->saveEntity($one, 'create one', $user, EDIT_NEW); // inject ids if (is_int($baseRevId)) { // use target item's revision as an offset $baseRevId += $r1->getRevisionId(); } if ($entity->getId() === null) { // use target item's id $entity->setId($r1->getEntity()->getId()); } // check for error $this->setExpectedException($error); $store->saveEntity($entity, '', $GLOBALS['wgUser'], $flags, $baseRevId); }
private function createEntity(Entity $entity) { $entity->setId(null); $entity->setStatements(new StatementList()); if ($entity instanceof Item) { $siteLinkList = $this->badgeItemUpdater->replaceBadges($entity->getSiteLinkList()); $entity->setSiteLinkList($siteLinkList); } return $this->entityStore->saveEntity($entity, 'Import entity', $this->importUser, EDIT_NEW); }