diff --git a/tests/Container/MySqlProjectionManagerFactoryTest.php b/tests/Container/MySqlProjectionManagerFactoryTest.php index 8faec373..172a41dd 100644 --- a/tests/Container/MySqlProjectionManagerFactoryTest.php +++ b/tests/Container/MySqlProjectionManagerFactoryTest.php @@ -17,6 +17,7 @@ use Prooph\EventStore\EventStore; use Prooph\EventStore\Pdo\Container\MySqlProjectionManagerFactory; use Prooph\EventStore\Pdo\Exception\InvalidArgumentException; +use Prooph\EventStore\Pdo\HasQueryHint; use Prooph\EventStore\Pdo\MySqlEventStore; use Prooph\EventStore\Pdo\PersistenceStrategy; use Prooph\EventStore\Pdo\Projection\MySqlProjectionManager; @@ -39,11 +40,15 @@ public function it_creates_service(): void $connection = TestUtil::getConnection(); + $messageFactory = $this->prophesize(MessageFactory::class); + $persistenceStrategy = $this->prophesize(PersistenceStrategy::class); + $persistenceStrategy->willImplement(HasQueryHint::class); + $container = $this->prophesize(ContainerInterface::class); $eventStore = new MySqlEventStore( - $this->createMock(MessageFactory::class), + $messageFactory->reveal(), TestUtil::getConnection(), - $this->createMock(PersistenceStrategy::class) + $persistenceStrategy->reveal() ); $container->get('my_connection')->willReturn($connection)->shouldBeCalled(); @@ -67,11 +72,15 @@ public function it_creates_service_via_callstatic(): void $connection = TestUtil::getConnection(); + $messageFactory = $this->prophesize(MessageFactory::class); + $persistenceStrategy = $this->prophesize(PersistenceStrategy::class); + $persistenceStrategy->willImplement(HasQueryHint::class); + $container = $this->prophesize(ContainerInterface::class); $eventStore = new MySqlEventStore( - $this->createMock(MessageFactory::class), + $messageFactory->reveal(), TestUtil::getConnection(), - $this->createMock(PersistenceStrategy::class) + $persistenceStrategy->reveal() ); $container->get('my_connection')->willReturn($connection)->shouldBeCalled(); diff --git a/tests/MySqlEventStoreTest.php b/tests/MySqlEventStoreTest.php index 1940353f..d53b402e 100644 --- a/tests/MySqlEventStoreTest.php +++ b/tests/MySqlEventStoreTest.php @@ -17,8 +17,10 @@ use Prooph\EventStore\Exception\ConcurrencyException; use Prooph\EventStore\Metadata\MetadataMatcher; use Prooph\EventStore\Metadata\Operator; +use Prooph\EventStore\Pdo\Exception\InvalidArgumentException; use Prooph\EventStore\Pdo\Exception\RuntimeException; use Prooph\EventStore\Pdo\MySqlEventStore; +use Prooph\EventStore\Pdo\PersistenceStrategy; use Prooph\EventStore\Pdo\PersistenceStrategy\MySqlAggregateStreamStrategy; use Prooph\EventStore\Pdo\PersistenceStrategy\MySqlSingleStreamStrategy; use Prooph\EventStore\Stream; @@ -53,6 +55,22 @@ protected function setUp(): void ); } + /** + * @test + */ + public function it_requires_has_query_hint_implementation_for_persistence_strategy(): void + { + $this->expectException(InvalidArgumentException::class); + + $persistenceStrategy = $this->prophesize(PersistenceStrategy::class); + + new MySqlEventStore( + new FQCNMessageFactory(), + $this->connection, + $persistenceStrategy->reveal() + ); + } + /** * @test */