From 3b8a6dbc9d783e096b4262c5b064dcdcc5e2f51c Mon Sep 17 00:00:00 2001
From: Benjamin Franzke <bfr@qbus.de>
Date: Fri, 5 Jul 2019 13:25:51 +0200
Subject: [PATCH] [BUGFIX] Adapt SendEmailCommandTest for symfony/mailer

The tests produced a warning which didn't cause CI to abort,
but the test was actually skipped:

1) TYPO3\CMS\Core\Tests\Unit\Command\SendEmailCommandTest
     ::executeWillFlushTheQueue
   Trying to configure method "flushQueue" which cannot be configured
   because it does not exist, has not been specified, is final, or is
   static

Resolves: #88692
Related: #88643
Releases: master
Change-Id: I3077a011e19050986585e9c788f5db03d18595d3
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61233
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de>
Tested-by: Benjamin Franzke <bfr@qbus.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Alexander Schnitzler <review.typo3.org@alexanderschnitzler.de>
Reviewed-by: Benjamin Franzke <bfr@qbus.de>
---
 .../Unit/Command/SendEmailCommandTest.php     | 22 ++++++++-----------
 1 file changed, 9 insertions(+), 13 deletions(-)

diff --git a/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php b/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php
index 4f789a2fa8c7..1d293f34e54f 100644
--- a/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php
+++ b/typo3/sysext/core/Tests/Unit/Command/SendEmailCommandTest.php
@@ -15,8 +15,11 @@ namespace TYPO3\CMS\Core\Tests\Unit\Command;
  * The TYPO3 project - inspiring people to share!
  */
 
+use Prophecy\Argument;
 use Symfony\Component\Console\Tester\CommandTester;
+use Symfony\Component\Mailer\Transport\TransportInterface;
 use TYPO3\CMS\Core\Command\SendEmailCommand;
+use TYPO3\CMS\Core\Mail\DelayedTransportInterface;
 use TYPO3\CMS\Core\Mail\Mailer;
 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
@@ -30,16 +33,9 @@ class SendEmailCommandTest extends UnitTestCase
      */
     public function executeWillFlushTheQueue()
     {
-        $realTransport = $this->getMockBuilder(\Swift_Transport::class)->getMock();
-
-        $spool = $this->getMockBuilder(\Swift_Spool::class)->getMock();
-        $spool
-            ->expects($this->once())
-            ->method('flushQueue')
-            ->with($realTransport)
-            ->will($this->returnValue(5))
-        ;
-        $spoolTransport = new \Swift_Transport_SpoolTransport(new \Swift_Events_SimpleEventDispatcher(), $spool);
+        $delayedTransportProphecy = $this->prophesize(DelayedTransportInterface::class);
+        $delayedTransportProphecy->flushQueue(Argument::any())->willReturn(5);
+        $realTransportProphecy = $this->prophesize(TransportInterface::class);
 
         $mailer = $this->getMockBuilder(Mailer::class)
             ->disableOriginalConstructor()
@@ -49,16 +45,16 @@ class SendEmailCommandTest extends UnitTestCase
         $mailer
             ->expects($this->any())
             ->method('getTransport')
-            ->will($this->returnValue($spoolTransport));
+            ->will($this->returnValue($delayedTransportProphecy->reveal()));
 
         $mailer
             ->expects($this->any())
             ->method('getRealTransport')
-            ->will($this->returnValue($realTransport));
+            ->will($this->returnValue($realTransportProphecy->reveal()));
 
         /** @var SendEmailCommand|\PHPUnit_Framework_MockObject_MockObject $command */
         $command = $this->getMockBuilder(SendEmailCommand::class)
-            ->setConstructorArgs(['swiftmailer:spool:send'])
+            ->setConstructorArgs(['mailer:spool:send'])
             ->setMethods(['getMailer'])
             ->getMock();
 
-- 
GitLab