/**
* @dataProvider provideRemoveSnippetWithReferencesDereference
*/
public function testRemoveSnippetWithReferencesDereference($multiple = false)
{
$document = $this->documentManager->create('page');
$document->setTitle('test');
$document->setResourceSegment('/url/foo');
if ($multiple) {
$document->getStructure()->bind(['animals' => [$this->snippet1->getUuid(), $this->snippet2->getUuid()]], false);
} else {
$document->getStructure()->bind(['animals' => $this->snippet1->getUuid()], false);
}
$document->setParent($this->parent);
$document->setStructureType('test_page');
$this->documentManager->persist($document, 'de');
$this->documentManager->flush();
$this->contentMapper->delete($this->snippet1->getUuid(), 'sulu_io', true);
try {
$this->session->getNode($this->snippet1OriginalPath);
$this->assertTrue(false, 'Snippet was found FAIL');
} catch (\PHPCR\PathNotFoundException $e) {
$this->assertTrue(true, 'Snippet was removed');
}
$referrer = $this->documentManager->find('/cmf/sulu_io/contents/test', 'de');
if ($multiple) {
$contents = $referrer->getStructure()->getProperty('animals')->getValue();
$this->assertCount(1, $contents);
$content = reset($contents);
$this->assertEquals($this->snippet2->getUuid(), $content);
} else {
$contents = $referrer->getStructure()->getProperty('animals')->getValue();
$this->assertCount(0, $contents);
}
}