/** * @dataProvider diffProvider * * @param EntityContent $a * @param EntityContent $b * @param EntityContentDiff $expected */ public function testGetDiff(EntityContent $a, EntityContent $b, EntityContentDiff $expected) { $actual = $a->getDiff($b); $this->assertInstanceOf('Wikibase\\Repo\\Content\\EntityContentDiff', $actual); $expectedEntityOps = $expected->getEntityDiff()->getOperations(); $actualEntityOps = $actual->getEntityDiff()->getOperations(); // HACK: ItemDiff always sets this, even if it's empty. Ignore. if (isset($actualEntityOps['claim']) && $actualEntityOps['claim']->isEmpty()) { unset($actualEntityOps['claim']); } $this->assertArrayEquals($expectedEntityOps, $actualEntityOps, false, true); $expectedRedirectOps = $expected->getRedirectDiff()->getOperations(); $actualRedirectOps = $actual->getRedirectDiff()->getOperations(); $this->assertArrayEquals($expectedRedirectOps, $actualRedirectOps, false, true); }