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