morebec/orkestra-event-sourcing-testing

Orkestra component with utilities for easily testing event sourced systems based on Orkestra and Symfony

v2.5.6 2023-03-31 18:46 UTC

This package is auto-updated.

Last update: 2024-04-30 00:34:07 UTC


README

Utilities to easily test event sourced systems based on Orkestra and Symfony using a fluent API.

Installation

composer require morebec/orkestra-orkestra-exceptions

Usage:

class RegisterCustomerCommandHandlerTest extends EventSourcedTestCase
{
    /**
     * @return void
     * @throws Throwable
     */
    public function test(): void
    {
        $customerId = uniqid('cus_', true);
        $this
            ->defineScenario()
            ->givenCurrentDateIs(new DateTime("2020-01-01"))
            ->whenCommand(from(static function() use ($customerId) {
                $command = new RegistercustomerCommand();
                $command->customerId = $customerId;

                return $command;
            }))
            ->messageBusShouldRespondWithPayload(null)
            ->messageBusShouldRespondWithStatusCodeSucceeded()
            ->expectSingleEventSameAs(from(static function() use ($customerId) {
                $event = new CustomerRegisteredEvent();
                $event->customerId = $customerId;

                return $event;
            }))
            ->runScenario()
        ;
    }
}