Spaces:
No application file
No application file
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)); | |
} | |
} | |