Spaces:
No application file
No application file
File size: 2,892 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
<?php
namespace Mautic\EmailBundle\Tests\MonitoredEmail\Processor;
use Mautic\CoreBundle\Translation\Translator;
use Mautic\EmailBundle\Entity\Email;
use Mautic\EmailBundle\Entity\Stat;
use Mautic\EmailBundle\MonitoredEmail\Message;
use Mautic\EmailBundle\MonitoredEmail\Processor\FeedbackLoop;
use Mautic\EmailBundle\MonitoredEmail\Search\ContactFinder;
use Mautic\EmailBundle\MonitoredEmail\Search\Result;
use Mautic\LeadBundle\Entity\Lead;
use Mautic\LeadBundle\Model\DoNotContact;
use Monolog\Logger;
class FeedbackLoopTest extends \PHPUnit\Framework\TestCase
{
/**
* @testdox Test that the message is processed appropriately
*
* @covers \Mautic\EmailBundle\MonitoredEmail\Processor\FeedbackLoop::process
* @covers \Mautic\EmailBundle\MonitoredEmail\Search\Result::getStat
* @covers \Mautic\EmailBundle\MonitoredEmail\Search\Result::getContacts
*/
public function testContactIsFoundFromMessage(): void
{
$contactFinder = $this->getMockBuilder(ContactFinder::class)
->disableOriginalConstructor()
->getMock();
$contactFinder->method('find')
->willReturnCallback(
function ($email) {
$stat = new Stat();
$lead = new Lead();
$lead->setEmail($email);
$stat->setLead($lead);
$email = new Email();
$stat->setEmail($email);
$result = new Result();
$result->setStat($stat);
$result->setContacts(
[
$lead,
]
);
return $result;
}
);
$translator = $this->getMockBuilder(Translator::class)
->disableOriginalConstructor()
->getMock();
$logger = $this->getMockBuilder(Logger::class)
->disableOriginalConstructor()
->getMock();
$doNotContact = $this->getMockBuilder(DoNotContact::class)
->disableOriginalConstructor()
->getMock();
$processor = new FeedbackLoop($contactFinder, $translator, $logger, $doNotContact);
$message = new Message();
$message->fblReport = <<<'BODY'
Feedback-Type: abuse
User-Agent: SomeGenerator/1.0
Version: 1
Original-Mail-From: <[email protected]>
Original-Rcpt-To: <[email protected]>
Received-Date: Thu, 8 Mar 2005 14:00:00 EDT
Source-IP: 192.0.2.2
Authentication-Results: mail.example.com
[email protected];
spf=fail
Reported-Domain: example.net
Reported-Uri: http://example.net/earn_money.html
Reported-Uri: mailto:[email protected]
Removal-Recipient: [email protected]
BODY;
$this->assertTrue($processor->process($message));
}
}
|