public function testFind() { $index = $this->getMockBuilder('Elastica\\Index')->disableOriginalConstructor()->setMethods(array('getType'))->getMock(); $result = $this->getMockBuilder('Elastica\\ResultSet')->disableOriginalConstructor()->getMock(); $this->elasticaClient->expects($this->once())->method('getIndex')->with('comments')->will($this->returnValue($index)); $type = $this->getMockBuilder('Elastica\\Type')->disableOriginalConstructor()->setMethods(array('getDocument'))->getMock(); $index->expects($this->once())->method('getType')->with('comment')->will($this->returnValue($type)); $document = $this->getMockBuilder('Elastica\\Document')->disableOriginalConstructor()->getMock(); $type->expects($this->once())->method('getDocument')->with('123', array('foo' => 'bar'))->will($this->returnValue($document)); $class = new ClassMetadata('Doctrine\\Tests\\Models\\Comments\\Comment'); $class->index = 'comments'; $class->type = 'comment'; $this->assertSame($document, $this->client->find($class, '123', array('foo' => 'bar'))); }