/**
  * @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);
 }