setId(2); $lead5 = new Lead(); $lead5->setId(5); $results = [2 => $lead2, 5 => $lead5]; $arrayResult = $resultHelper->getArray($results); $this->assertEquals($results, $arrayResult); $arrayResult = $resultHelper->getArray($results, function ($entity): void { $this->modifyEntityData($entity); }); foreach ($arrayResult as $entity) { $this->assertEquals($entity->getTitle(), self::NEW_TITLE); } } public function testGetArrayPaginator(): void { $resultHelper = new EntityResultHelper(); $lead2 = new Lead(); $lead2->setId(2); $lead5 = new Lead(); $lead5->setId(5); $results = [$lead2, $lead5]; $iterator = new \ArrayIterator($results); $paginator = $this->getMockBuilder(Paginator::class) ->disableOriginalConstructor() ->onlyMethods(['getIterator']) ->getMock(); $paginator->expects($this->any()) ->method('getIterator') ->willReturn($iterator); $arrayResult = $resultHelper->getArray($paginator); $this->assertEquals($results, $arrayResult); $arrayResult = $resultHelper->getArray($results, function ($entity): void { $this->modifyEntityData($entity); }); foreach ($arrayResult as $entity) { $this->assertEquals($entity->getTitle(), self::NEW_TITLE); } } public function testGetArrayAppendedData(): void { $resultHelper = new EntityResultHelper(); $lead2 = new Lead(); $lead2->setId(2); $lead5 = new Lead(); $lead5->setId(5); $lead7 = new Lead(); $lead7->setId(7); $data = [[$lead2, 'title' => 'Title 2'], [$lead5, 'title' => 'Title 5'], [$lead7, 'title' => 'Title 7']]; $expectedResult = [$lead2, $lead5, $lead7]; $arrayResult = $resultHelper->getArray($data); $this->assertEquals($expectedResult, $arrayResult); foreach ($arrayResult as $entity) { $this->assertEquals($entity->getTitle(), 'Title '.$entity->getId()); } $arrayResult = $resultHelper->getArray($data, function ($entity): void { $this->modifyEntityData($entity); }); foreach ($arrayResult as $entity) { $this->assertEquals($entity->getTitle(), self::NEW_TITLE); } } private function modifyEntityData(Lead $entity): void { $entity->setTitle(self::NEW_TITLE); } }