/**
  * @param array[] $serialization
  *
  * @return StatementList
  */
 private function getDeserialized(array $serialization)
 {
     $statementList = new StatementList();
     foreach ($serialization as $key => $statementArray) {
         if (is_string($key)) {
             foreach ($statementArray as $statementSerialization) {
                 $statementList->addStatement($this->statementDeserializer->deserialize($statementSerialization));
             }
         } else {
             $statementList->addStatement($this->statementDeserializer->deserialize($statementArray));
         }
     }
     return $statementList;
 }
 public function testFoo()
 {
     $statement0 = new Statement(new PropertyNoValueSnak(42));
     $statement0->setGuid('s0');
     $statement1 = new Statement(new PropertySomeValueSnak(42));
     $statement1->setGuid('s1');
     $statement2 = new Statement(new PropertyValueSnak(42, new StringValue('ohi')));
     $statement2->setGuid('s2');
     $statement3 = new Statement(new PropertyNoValueSnak(1));
     $statement3->setGuid('s3');
     $patch = new Diff(array('s0' => new DiffOpRemove($statement0), 's2' => new DiffOpAdd($statement2), 's3' => new DiffOpAdd($statement3)));
     $source = new StatementList();
     $source->addStatement($statement0);
     $source->addStatement($statement1);
     $expected = new StatementList();
     $expected->addStatement($statement1);
     $expected->addStatement($statement2);
     $expected->addStatement($statement3);
     $this->assertListResultsFromPatch($expected, $source, $patch);
 }
예제 #3
0
 public function testArrayObjectNotConstructedFromObject()
 {
     $statement1 = $this->makeStatement(new PropertyNoValueSnak(1));
     $statement2 = $this->makeStatement(new PropertyNoValueSnak(2));
     $statementList = new StatementList();
     $statementList->addStatement($statement1);
     $claims = new Claims($statementList);
     // According to the documentation append() "cannot be called when the ArrayObject was
     // constructed from an object." This test makes sure it was not constructed from an object.
     $claims->append($statement2);
     $this->assertSame(2, $claims->count());
 }
예제 #4
0
 /**
  * @param StatementList $statements
  * @param Diff $patch
  *
  * @throws InvalidArgumentException
  * @return StatementList
  */
 public function getPatchedStatementList(StatementList $statements, Diff $patch)
 {
     $statementsByGuid = array();
     /**
      * @var Statement $statement
      */
     foreach ($statements as $statement) {
         $statementsByGuid[$statement->getGuid()] = $statement;
     }
     $patchedList = new StatementList();
     foreach ($this->patcher->patch($statementsByGuid, $patch) as $statement) {
         $patchedList->addStatement($statement);
     }
     return $patchedList;
 }
 /**
  * @param StatementList $statements
  * @param int $propertyId
  * @param string $string
  * @param int $rank
  */
 private function addStatement(StatementList $statements, $propertyId, $string, $rank = Statement::RANK_NORMAL)
 {
     $statement = new Statement(new PropertyValueSnak($propertyId, new StringValue($string)));
     $statement->setRank($rank);
     $statements->addStatement($statement);
 }