public function testGetReferenceChanges() { $expected = new Diff(array(new DiffOpAdd(new Reference())), false); $difference = new ClaimDifference(null, null, $expected); $actual = $difference->getReferenceChanges(); $this->assertInstanceOf('Diff\\DiffOp\\Diff\\Diff', $actual); $this->assertEquals($expected, $actual); }
/** * @dataProvider diffClaimsProvider */ public function testDiffClaims(Statement $oldStatement = null, Statement $newStatement = null, ClaimDifference $expected) { $differ = new ClaimDiffer(new OrderedListDiffer(new ComparableComparer())); $actual = $differ->diffClaims($oldStatement, $newStatement); $this->assertTrue($expected->equals($actual)); // Additional fail-safe checks to guard against an ArrayObject bug in PHP 5.3, that returned // true when using == to compare two ArrayObject instances with differing content. $this->assertEquals($expected->getQualifierChanges()->getArrayCopy(), $actual->getQualifierChanges()->getArrayCopy()); $this->assertEquals($expected->getReferenceChanges()->getArrayCopy(), $actual->getReferenceChanges()->getArrayCopy()); }
/** * Generates HTML of a statement change. * * @since 0.4 * * @param ClaimDifference $claimDifference * @param Statement $baseStatement The new statement, if it exists. Otherwise the old statement. * * @return string HTML */ public function visualizeClaimChange(ClaimDifference $claimDifference, Statement $baseStatement) { $newestMainSnak = $baseStatement->getMainSnak(); $oldestMainSnak = $newestMainSnak; $html = ''; $mainSnakChange = $claimDifference->getMainSnakChange(); if ($mainSnakChange !== null) { $oldestMainSnak = $mainSnakChange->getOldValue() ?: $newestMainSnak; $html .= $this->visualizeMainSnakChange($mainSnakChange, $oldestMainSnak, $newestMainSnak); } $rankChange = $claimDifference->getRankChange(); if ($rankChange !== null) { $html .= $this->visualizeRankChange($rankChange, $oldestMainSnak, $newestMainSnak); } $qualifierChanges = $claimDifference->getQualifierChanges(); if ($qualifierChanges !== null) { $html .= $this->visualizeQualifierChanges($qualifierChanges, $oldestMainSnak, $newestMainSnak); } $referenceChanges = $claimDifference->getReferenceChanges(); if ($referenceChanges !== null) { $html .= $this->visualizeReferenceChanges($referenceChanges, $oldestMainSnak, $newestMainSnak); } return $html; }