public function validateProvider()
 {
     $p11 = new PropertyId('P11');
     $q17 = new ItemId('Q17');
     $item = new Item($q17);
     $claimGuid = $this->mockProvider->getGuidGenerator()->newGuid($q17);
     $oldSnak = new PropertyValueSnak($p11, new StringValue("old qualifier"));
     $snak = new PropertyNoValueSnak($p11);
     $qualifiers = new SnakList(array($oldSnak));
     $item->getStatements()->addNewStatement($snak, $qualifiers, null, $claimGuid);
     //NOTE: the mock validator will consider the string "INVALID" to be invalid.
     $badSnak = new PropertyValueSnak($p11, new StringValue('INVALID'));
     $brokenSnak = new PropertyValueSnak($p11, new NumberValue(23));
     $snakHash = $oldSnak->getHash();
     $cases = array();
     $cases['invalid snak value'] = array($item, $claimGuid, $badSnak, '');
     $cases['invalid snak value type'] = array($item, $claimGuid, $brokenSnak, $snakHash);
     return $cases;
 }
 private function makeNewItemWithClaim($itemIdString, $snak)
 {
     $item = new Item(new ItemId($itemIdString));
     $item->getStatements()->addNewStatement($snak, null, null, $this->mockProvider->getGuidGenerator()->newGuid($item->getId()));
     return $item;
 }