/** * @param $threadEmails * @param $transformationCalls * * @dataProvider threadEmailsProvider */ public function testGetThreadAttachments($threadEmails, $transformationCalls) { $emailEntity = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\Email'); $this->emailThreadProvider->expects($this->once())->method('getThreadEmails')->with($this->em, $emailEntity)->willReturn($threadEmails); $this->emailAttachmentTransformer->expects($this->exactly($transformationCalls))->method('entityToModel'); $result = $this->emailAttachmentProvider->getThreadAttachments($emailEntity); $this->assertTrue(is_array($result)); $this->assertEquals($transformationCalls, sizeof($result)); }
/** * @dataProvider updateHeadsDataProvider */ public function testUpdateHeads(array $updatedEmails, array $returnThreadEmails, array $expectedEmails) { $consecutiveThreadEmails = array_map(function (TestEmailEntity $entity, $returnEmails) { return $returnEmails ? $this->getThreadEmails($entity) : []; }, $updatedEmails, $returnThreadEmails); $this->emailThreadProvider->expects($this->any())->method('getThreadEmails')->will(call_user_func_array([$this, 'onConsecutiveCalls'], $consecutiveThreadEmails)); $this->emailThreadManager->updateHeads($updatedEmails); $this->assertEquals($expectedEmails, $updatedEmails); }