8000 [Messenger] Move MiddlewareTestCase in Test ns by ogizanagi · Pull Request #28985 · symfony/symfony · GitHub
[go: up one dir, main page]

Skip to content

[Messenger] Move Middlewa 8000 reTestCase in Test ns #28985

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 27, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
8000
Diff view

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,15 @@
use Doctrine\Common\Persistence\ManagerRegistry;
use Doctrine\DBAL\Connection;
use Doctrine\ORM\EntityManagerInterface;
use PHPUnit\Framework\TestCase;
use Symfony\Bridge\Doctrine\Messenger\DoctrineTransactionMiddleware;
use Symfony\Bridge\Doctrine\Tests\Fixtures\Messenger\DummyMiddleware;
use Symfony\Bridge\Doctrine\Tests\Fixtures\Messenger\ThrowingMiddleware;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Middleware\StackInterface;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;

class DoctrineTransactionMiddlewareTest extends TestCase
class DoctrineTransactionMiddlewareTest extends MiddlewareTestCase
{
private $connection;
private $entityManager;
private $middleware;
private $stack;

public function setUp()
{
Expand All @@ -39,8 +35,6 @@ public function setUp()
$managerRegistry->method('getManager')->willReturn($this->entityManager);

$this->middleware = new DoctrineTransactionMiddleware($managerRegistry, null);

$this->stack = $this->createMock(StackInterface::class);
}

public function testMiddlewareWrapsInTransactionAndFlushes()
Expand All @@ -54,15 +48,14 @@ public function testMiddlewareWrapsInTransactionAndFlushes()
$this->entityManager->expects($this->once())
->method('flush')
;
$this->stack
->expects($this->once())
->method('next')
->willReturn(new DummyMiddleware())
;

$this->middleware->handle(new Envelope(new \stdClass()), $this->stack);
$this->middleware->handle(new Envelope(new \stdClass()), $this->getStackMock());
}

/**
* @expectedException \RuntimeException
* @expectedExceptionMessage Thrown from next middleware.
*/
public function testTransactionIsRolledBackOnException()
{
$this->connection->expects($this->once())
Expand All @@ -71,14 +64,7 @@ public function testTransactionIsRolledBackOnException()
$this->connection->expects($this->once())
->method('rollBack')
;
$this->stack
->expects($this->once())
->method('next')
->willReturn(new ThrowingMiddleware())
;
$this->expectException(\RuntimeException::class);
$this->expectExceptionMessage('Thrown from middleware.');

$this->middleware->handle(new Envelope(new \stdClass()), $this->stack);
$this->middleware->handle(new Envelope(new \stdClass()), $this->getThrowingStackMock());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,16 @@
* file that was distributed with this source code.
*/

namespace Symfony\Component\Messenger\Tests\Middleware;
namespace Symfony\Component\Messenger\Test\Middleware;

use PHPUnit\Framework\TestCase;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
use Symfony\Component\Messenger\Middleware\StackInterface;

/**
* @author Nicolas Grekas <p@tchwork.com>
*/
abstract class MiddlewareTestCase extends TestCase
{
protected function getStackMock(bool $nextIsCalled = true)
Expand All @@ -23,9 +27,9 @@ protected function getStackMock(bool $nextIsCalled = true)
$nextMiddleware
->expects($nextIsCalled ? $this->once() : $this->never())
->method('handle')
->will($this->returnCallback(function ($envelope, StackInterface $stack) {
->willReturnCallback(function (Envelope $envelope, StackInterface $stack): Envelope {
return $envelope;
}))
})
;

$stack = $this->createMock(StackInterface::class);
Expand All @@ -37,4 +41,23 @@ protected function getStackMock(bool $nextIsCalled = true)

return $stack;
}

protected function getThrowingStackMock(\Throwable $throwable = null)
{
$nextMiddleware = $this->getMockBuilder(MiddlewareInterface::class)->getMock();
$nextMiddleware
->expects($this->once())
->method('handle')
->willThrowException($throwable ?? new \RuntimeException('Thrown from next middleware.'))
;

$stack = $this->createMock(StackInterface::class);
$stack
->expects($this->once())
->method('next')
->willReturn($nextMiddleware)
;

return $stack;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Middleware\ActivationMiddleware;
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
use Symfony\Component\Messenger\Middleware\StackInterface;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;

/**
Expand All @@ -27,8 +27,7 @@ public function testExecuteMiddlewareOnActivated()
$message = new DummyMessage('Hello');
$envelope = new Envelope($message);

$stack = $this->createMock(StackInterface::class);
$stack->expects($this->never())->method('next');
$stack = $this->getStackMock(false);

$middleware = $this->createMock(MiddlewareInterface::class);
$middleware->expects($this->once())->method('handle')->with($envelope, $stack)->willReturn($envelope);
Expand All @@ -46,8 +45,7 @@ public function testExecuteMiddlewareOnActivatedWithCallable()
$activated = $this->createPartialMock(\stdClass::class, array('__invoke'));
$activated->expects($this->once())->method('__invoke')->with($envelope)->willReturn(true);

$stack = $this->createMock(StackInterface::class);
$stack->expects($this->never())->method('next');
$stack = $this->getStackMock(false);

$middleware = $this->createMock(MiddlewareInterface::class);
$middleware->expects($this->once())->method('handle')->with($envelope, $stack)->willReturn($envelope);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
use Symfony\Component\Messenger\Handler\Locator\HandlerLocator;
use Symfony\Component\Messenger\Middleware\HandleMessageMiddleware;
use Symfony\Component\Messenger\Middleware\StackMiddleware;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;

class HandleMessageMiddlewareTest extends MiddlewareTestCase
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
use Psr\Log\LoggerInterface;
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Middleware\LoggingMiddleware;
use Symfony\Component\Messenger\Middleware\StackInterface;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;

class LoggingMiddlewareTest extends MiddlewareTestCase
Expand All @@ -34,7 +34,8 @@ public function testDebugLogAndNextMiddleware()
}

/**
* @expectedException \Exception
* @expectedException \RuntimeException
* @expectedExceptionMessage Thrown from next middleware.
*/
public function testWarningLogOnException()
{
Expand All @@ -50,12 +51,7 @@ public function testWarningLogOnException()
->expects($this->once())
->method('warning')
;
$stack = $this->createMock(StackInterface::class);
$stack
->expects($this->once())
->method('next')
->willThrowException(new \Exception())
;
$stack = $this->getThrowingStackMock();

(new LoggingMiddleware($logger))->handle($envelope, $stack);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@
namespace Symfony\Component\Messenger\Tests\Middleware;

use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
use Symfony\Component\Messenger\Middleware\SendMessageMiddleware;
use Symfony\Component\Messenger\Stamp\ReceivedStamp;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
use Symfony\Component\Messenger\Tests\Fixtures\ChildDummyMessage;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessageInterface;
Expand Down Expand Up @@ -114,7 +114,6 @@ public function testItCallsTheNextMiddlewareWhenNoSenderForThisMessage()
$envelope = new Envelope($message);

$middleware = new SendMessageMiddleware(new InMemorySenderLocator(null));
$handler = $this->getMockBuilder(MiddlewareInterface::class)->getMock();

$middleware->handle($envelope, $this->getStackMock());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
use Symfony\Component\Messenger\Middleware\MiddlewareInterface;
use Symfony\Component\Messenger\Middleware\StackInterface;
use Symfony\Component\Messenger\Middleware\TraceableMiddleware;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
use Symfony\Component\Stopwatch\Stopwatch;

Expand Down Expand Up @@ -55,7 +56,7 @@ public function testHandle()

/**
* @expectedException \RuntimeException
* @expectedExceptionMessage Foo exception from next callable
* @expectedExceptionMessage Thrown from next middleware.
*/
public function testHandleWithException()
{
Expand All @@ -71,12 +72,7 @@ public function testHandleWithException()
}))
;

$stack = $this->createMock(StackInterface::class);
$stack
->expects($this->once())
->method('next')
->willThrowException(new \RuntimeException('Foo exception from next callable'))
;
$stack = $this->getThrowingStackMock();

$stopwatch = $this->createMock(Stopwatch::class);
$stopwatch->expects($this->once())->method('isStarted')->willReturn(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
use Symfony\Component\Messenger\Envelope;
use Symfony\Component\Messenger\Middleware\ValidationMiddleware;
use Symfony\Component\Messenger\Stamp\ValidationStamp;
use Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase;
use Symfony\Component\Messenger\Tests\Fixtures\DummyMessage;
use Symfony\Component\Validator\ConstraintViolationListInterface;
use Symfony\Component\Validator\Validator\ValidatorInterface;
Expand Down
0