public function testRevertIndexComposite() { $self = $this; $registry = $this->getMock('Doctrine\\Common\\Persistence\\ManagerRegistry'); $registry->expects($this->any())->method('getManagerForClass')->will($this->returnCallback(function () use($self) { $metadataFactory = $self->getMock('Doctrine\\ORM\\Mapping\\ClassMetadataFactory'); $metadataFactory->expects($self->any())->method('getMetadataFor')->will($self->returnCallback(function () use($self) { $classMetadata = $self->getMockBuilder('Doctrine\\ORM\\Mapping\\ClassMetadata')->disableOriginalConstructor()->getMock(); $classMetadata->expects($self->any())->method('getIdentifierFieldNames')->will($self->returnValue(array('id', 'name'))); return $classMetadata; })); $em = new EntityManagerMock(); $em->_setMetadataFactory($metadataFactory); return $em; })); $strategy = new EntityIndexingStrategy($registry); foreach (array('_', '|') as $separator) { $index = '1' . $separator . 'Foo'; $strategy->setSeparator($separator); $this->assertSame(array('id' => '1', 'name' => 'Foo'), $strategy->revertIndex($index, 'Entity')); } }