getMockBuilder('\\Espo\\Core\\ORM\\EntityManager')->disableOriginalConstructor()->getMock(); $config = $this->getMockBuilder('\\Espo\\Core\\Utils\\Config')->disableOriginalConstructor()->getMock(); $emailRepository = $this->getMockBuilder('\\Espo\\Core\\ORM\\Repositories\\RDB')->disableOriginalConstructor()->getMock(); $emptyRepository = $this->getMockBuilder('\\Espo\\Core\\ORM\\Repositories\\RDB')->disableOriginalConstructor()->getMock(); $emailRepository ->expects($this->any()) ->method('where') ->will($this->returnSelf()); $emptyRepository ->expects($this->any()) ->method('where') ->will($this->returnSelf()); $repositoryMap = array( array('Email', $emailRepository), array('Account', $emptyRepository), array('Contact', $emptyRepository), array('Lead', $emptyRepository) ); $email = new \Espo\Entities\Email(); $emailDefs = require('tests/testData/Core/Mail/email_defs.php'); $email->fields = $emailDefs['fields']; $email->relations = $emailDefs['relations']; $attachment = new \Espo\Entities\Attachment(); $attachmentDefs = require('tests/testData/Core/Mail/attachment_defs.php'); $attachment->fields = $attachmentDefs['fields']; $attachment->relations = $attachmentDefs['relations']; $entityManager ->expects($this->any()) ->method('getRepository') ->will($this->returnValueMap($repositoryMap)); $entityManager ->expects($this->any()) ->method('saveEntity') ->with($this->isInstanceOf('\\Espo\\Entities\\Attachment')); $entityManager ->expects($this->once()) ->method('saveEntity') ->with($this->isInstanceOf('\\Espo\\Entities\\Email')); $entityManager ->expects($this->any()) ->method('getEntity') ->with($this->equalTo('Email')) ->will($this->returnValue($email)); $config ->expects($this->any()) ->method('get') ->will($this->returnValueMap(array( array('b2cMode', false) ))); $contents = file_get_contents('tests/testData/Core/Mail/test_email_1.eml'); $importer = new \Espo\Core\Mail\Importer($entityManager, $config); $message = new \Zend\Mail\Storage\Message(array('raw' => $contents)); $importer->importMessage($message, null, ['teamTestId'], ['userTestId']); $this->assertEquals('test 3', $email->get('name')); $teamIdList = $email->getLinkMultipleIdList('teams'); $this->assertContains('teamTestId', $teamIdList); $userIdList = $email->getLinkMultipleIdList('users'); $this->assertContains('userTestId', $userIdList); $this->assertContains('
Admin Test', $email->get('body')); $this->assertContains('Admin Test', $email->get('bodyPlain')); $this->assertEquals('', $email->get('messageId')); } }