From 2bfc7ceaef77645879aa1009d8ce4c6d3ebb53f4 Mon Sep 17 00:00:00 2001 From: Bas Kamer Date: Fri, 3 Mar 2017 20:17:09 +0100 Subject: [PATCH 1/3] Update composer.json --- composer.json | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index f144bf8..6ca258a 100644 --- a/composer.json +++ b/composer.json @@ -23,8 +23,8 @@ }, "require-dev": { "prooph/pdo-event-store": "1.0.x-dev", - "phpunit/phpunit": "^5.7", - "phpspec/prophecy": "dev-patch-1 as 1.6.2", + "phpunit/phpunit": "^6.0", + "phpspec/prophecy": "^1.7", "prooph/php-cs-fixer-config": "^0.1.1", "satooshi/php-coveralls": "^1.0", "malukenho/docheader": "^0.1.4", @@ -46,11 +46,5 @@ "ProophTest\\StandardProjections\\": "tests/", "ProophTest\\EventStore\\": "vendor/prooph/event-store/tests/" } - }, - "repositories": [ - { - "type": "git", - "url": "https://github.com/prolic/prophecy.git" - } - ] + } } From 50c0b487373c984b66eaaa0ae391f734b7688129 Mon Sep 17 00:00:00 2001 From: Bas Kamer Date: Fri, 3 Mar 2017 21:09:21 +0100 Subject: [PATCH 2/3] use ProjectionManager --- src/AllStreamProjectionRunner.php | 21 +++++++-------------- src/CategoryStreamProjectionRunner.php | 21 +++++++-------------- src/MessageNameStreamProjectionRunner.php | 21 +++++++-------------- 3 files changed, 21 insertions(+), 42 deletions(-) diff --git a/src/AllStreamProjectionRunner.php b/src/AllStreamProjectionRunner.php index 0582f0d..acf811c 100644 --- a/src/AllStreamProjectionRunner.php +++ b/src/AllStreamProjectionRunner.php @@ -12,31 +12,24 @@ namespace Prooph\StandardProjections; -use Prooph\EventStore\EventStore; -use Prooph\EventStore\Projection\ProjectionOptions; +use Prooph\EventStore\Projection\ProjectionManager; class AllStreamProjectionRunner { /** - * @var EventStore + * @var ProjectionManager */ - private $eventStore; + private $projectionManager; - /** - * @var ProjectionOptions|null - */ - private $projectionOptions; - - public function __construct(EventStore $eventStore, ProjectionOptions $projectionOptions = null) + public function __construct(ProjectionManager $projectionManager) { - $this->eventStore = $eventStore; - $this->projectionOptions = $projectionOptions; + $this->projectionManager = $projectionManager; } public function __invoke(bool $keepRunning = true): void { - $this->eventStore - ->createProjection('$all', $this->projectionOptions) + $this->projectionManager + ->createProjection('$all') ->fromAll() ->whenAny(function ($state, $event): void { $this->emit($event); diff --git a/src/CategoryStreamProjectionRunner.php b/src/CategoryStreamProjectionRunner.php index 8c125b6..26911fd 100644 --- a/src/CategoryStreamProjectionRunner.php +++ b/src/CategoryStreamProjectionRunner.php @@ -12,31 +12,24 @@ namespace Prooph\StandardProjections; -use Prooph\EventStore\EventStore; -use Prooph\EventStore\Projection\ProjectionOptions; +use Prooph\EventStore\Projection\ProjectionManager; class CategoryStreamProjectionRunner { /** - * @var EventStore + * @var ProjectionManager */ - private $eventStore; + private $projectionManager; - /** - * @var ProjectionOptions|null - */ - private $projectionOptions; - - public function __construct(EventStore $eventStore, ProjectionOptions $projectionOptions = null) + public function __construct(ProjectionManager $projectionManager) { - $this->eventStore = $eventStore; - $this->projectionOptions = $projectionOptions; + $this->projectionManager = $projectionManager; } public function __invoke(bool $keepRunning = true): void { - $this->eventStore - ->createProjection('$by_category', $this->projectionOptions) + $this->projectionManager + ->createProjection('$by_category') ->fromAll() ->whenAny(function ($state, $event): void { $streamName = $this->streamName(); diff --git a/src/MessageNameStreamProjectionRunner.php b/src/MessageNameStreamProjectionRunner.php index 51d6f3d..fe9a9b7 100644 --- a/src/MessageNameStreamProjectionRunner.php +++ b/src/MessageNameStreamProjectionRunner.php @@ -13,31 +13,24 @@ namespace Prooph\StandardProjections; use Prooph\Common\Messaging\Message; -use Prooph\EventStore\EventStore; -use Prooph\EventStore\Projection\ProjectionOptions; +use Prooph\EventStore\Projection\ProjectionManager; class MessageNameStreamProjectionRunner { /** - * @var EventStore + * @var ProjectionManager */ - private $eventStore; + private $projectionManager; - /** - * @var ProjectionOptions|null - */ - private $projectionOptions; - - public function __construct(EventStore $eventStore, ProjectionOptions $projectionOptions = null) + public function __construct(ProjectionManager $projectionManager) { - $this->eventStore = $eventStore; - $this->projectionOptions = $projectionOptions; + $this->projectionManager = $projectionManager; } public function __invoke(bool $keepRunning = true): void { - $this->eventStore - ->createProjection('$by_message_name', $this->projectionOptions) + $this->projectionManager + ->createProjection('$by_message_name') ->fromAll() ->whenAny(function ($state, Message $event): void { $messageName = $event->messageName(); From b2f0da26dc135a04225789519eab0cf0c0ca6d31 Mon Sep 17 00:00:00 2001 From: Bas Kamer Date: Fri, 3 Mar 2017 21:11:46 +0100 Subject: [PATCH 3/3] tests --- tests/AllStreamProjectionRunnerTest.php | 4 +++- tests/CategoryStreamProjectionRunnerTest.php | 4 +++- tests/MessageNameStreamProjectionRunnerTest.php | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/tests/AllStreamProjectionRunnerTest.php b/tests/AllStreamProjectionRunnerTest.php index f320628..1e6bfdc 100644 --- a/tests/AllStreamProjectionRunnerTest.php +++ b/tests/AllStreamProjectionRunnerTest.php @@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase; use Prooph\Common\Event\ProophActionEventEmitter; use Prooph\EventStore\InMemoryEventStore; +use Prooph\EventStore\Projection\InMemoryProjectionManager; use Prooph\EventStore\Stream; use Prooph\EventStore\StreamName; use Prooph\StandardProjections\AllStreamProjectionRunner; @@ -69,7 +70,8 @@ public function it_emits_events_for_all_streams() $eventStore->commit(); - $allStreamProjection = new AllStreamProjectionRunner($eventStore); + $projectionManager = new InMemoryProjectionManager($eventStore); + $allStreamProjection = new AllStreamProjectionRunner($projectionManager); $allStreamProjection(false); $this->assertTrue($eventStore->hasStream(new StreamName('$all'))); diff --git a/tests/CategoryStreamProjectionRunnerTest.php b/tests/CategoryStreamProjectionRunnerTest.php index f765053..5f49f74 100644 --- a/tests/CategoryStreamProjectionRunnerTest.php +++ b/tests/CategoryStreamProjectionRunnerTest.php @@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase; use Prooph\Common\Event\ProophActionEventEmitter; use Prooph\EventStore\InMemoryEventStore; +use Prooph\EventStore\Projection\InMemoryProjectionManager; use Prooph\EventStore\Stream; use Prooph\EventStore\StreamName; use Prooph\StandardProjections\CategoryStreamProjectionRunner; @@ -83,7 +84,8 @@ public function it_emits_events_for_all_streams() $eventStore->commit(); - $categoryStreamProjection = new CategoryStreamProjectionRunner($eventStore); + $projectionManager = new InMemoryProjectionManager($eventStore); + $categoryStreamProjection = new CategoryStreamProjectionRunner($projectionManager); $categoryStreamProjection(false); $this->assertTrue($eventStore->hasStream(new StreamName('$ct-foo'))); diff --git a/tests/MessageNameStreamProjectionRunnerTest.php b/tests/MessageNameStreamProjectionRunnerTest.php index 2883ca6..736805e 100644 --- a/tests/MessageNameStreamProjectionRunnerTest.php +++ b/tests/MessageNameStreamProjectionRunnerTest.php @@ -15,6 +15,7 @@ use PHPUnit\Framework\TestCase; use Prooph\Common\Event\ProophActionEventEmitter; use Prooph\EventStore\InMemoryEventStore; +use Prooph\EventStore\Projection\InMemoryProjectionManager; use Prooph\EventStore\Stream; use Prooph\EventStore\StreamName; use Prooph\StandardProjections\MessageNameStreamProjectionRunner; @@ -53,7 +54,8 @@ public function it_emits_events_for_all_streams() $eventStore->commit(); - $categoryStreamProjection = new MessageNameStreamProjectionRunner($eventStore); + $projectionManager = new InMemoryProjectionManager($eventStore); + $categoryStreamProjection = new MessageNameStreamProjectionRunner($projectionManager); $categoryStreamProjection(false); $this->assertTrue($eventStore->hasStream(new StreamName('$mn-event-a')));