public function magicCallMethodAcceptsFindOneBySomethingCallsAndExecutesAQueryWithThatCriteria()
{
$object = new \stdClass();
$mockQueryResult = $this->createMock(Persistence\QueryResultInterface::class);
$mockQueryResult->expects($this->once())->method('getFirst')->will($this->returnValue($object));
$mockQuery = $this->createMock(Persistence\QueryInterface::class);
$mockQuery->expects($this->once())->method('equals')->with('foo', 'bar')->will($this->returnValue('matchCriteria'));
$mockQuery->expects($this->once())->method('matching')->with('matchCriteria')->will($this->returnValue($mockQuery));
$mockQuery->expects($this->once())->method('execute')->will($this->returnValue($mockQueryResult));
$repository = $this->getMockBuilder(Persistence\Repository::class)->setMethods(['createQuery'])->getMock();
$repository->expects($this->once())->method('createQuery')->will($this->returnValue($mockQuery));
$this->assertSame($object, $repository->findOneByFoo('bar'));
}