/** * @dataProvider newFromArraysProvider */ public function testNewFromArrays(array $from, array $to, array $additions, array $removals) { $differ = new ListDiffer(new NativeArrayComparer()); $diff = new Diff($differ->doDiff($from, $to), false); $this->assertInstanceOf('\\Diff\\DiffOp\\DiffOp', $diff); $this->assertInstanceOf('\\Diff\\DiffOp\\Diff\\Diff', $diff); $this->assertInstanceOf('\\ArrayObject', $diff); // array_values because we only care about the values, not promises are made about the keys. $resultAdditions = array_values($diff->getAddedValues()); $resultRemovals = array_values($diff->getRemovedValues()); // Sort everything since no promises are made about ordering. asort($resultAdditions); asort($resultRemovals); asort($additions); asort($removals); $this->assertEquals($additions, $resultAdditions, 'additions mismatch'); $this->assertEquals($removals, $resultRemovals, 'removals mismatch'); $this->assertEquals($additions === array() && $removals === array(), $diff->isEmpty()); }
/** * @see Differ::doDiff * * @since 0.9 * * @param array $oldValues The first array * @param array $newValues The second array * * @return DiffOp[] */ public function doDiff(array $oldValues, array $newValues) { return $this->differ->doDiff($oldValues, $newValues); }
public function testDiffCallsArrayComparatorCorrectly() { $arrayComparer = $this->getMock('Diff\\ArrayComparer\\ArrayComparer'); $arrayComparer->expects($this->exactly(2))->method('diffArrays')->with($this->equalTo(array(42)), $this->equalTo(array(42)))->will($this->returnValue(array())); $differ = new ListDiffer($arrayComparer); $differ->doDiff(array(42), array(42)); }