/** * @dataProvider entityManagerDataProvider * @param EntityManager $em */ public function testRebuildIndicesManyToMany(EntityManager $em) { $charlie = new Charlie(); $charlie->setId('charlie')->setName('Charlie'); $delta = new Delta(); $delta->setId('delta')->setName('Delta'); $charlie->setDelta([$delta]); $em->persist($charlie)->persist($delta)->flush(); $c = $em->retrieve(Charlie::class, 'charlie'); $this->assertEquals('Charlie', $c->getName()); $this->assertCount(1, $c->getDelta()); /** @var Delta $d */ $d = $c->getDelta()[0]; $this->assertEquals('Delta', $d->getName()); $maintenance = new Maintenance($em); $maintenance->rebuild(CharlieRevised::class); /** @var DeltaRevised $d */ $d = $em->retrieve(DeltaRevised::class, 'delta'); $this->assertEquals('Delta', $d->getName()); $this->assertCount(1, $d->getCharlie()); /** @var CharlieRevised $c */ $c = $d->getCharlie()[0]; $this->assertEquals('Charlie', $c->getName()); }