public async Task ForInitCardCommand_ShouldAddNewCart()
    {
        // Given
        var repository = new FakeRepository <Cart>();

        var commandHandler = new HandleInitializeCart(
            repository
            );

        var command = InitializeCart.Create(Guid.NewGuid(), Guid.NewGuid());

        // When
        await commandHandler.Handle(command, CancellationToken.None);

        //Then
        repository.Aggregates.Should().HaveCount(1);

        var cart = repository.Aggregates.Values.Single();

        cart
        .IsInitializedCartWith(
            command.CartId,
            command.ClientId
            )
        .HasCartInitializedEventWith(
            command.CartId,
            command.ClientId
            );
    }
Exemple #2
0
    public async Task <IActionResult> InitCart([FromBody] InitCartRequest request)
    {
        if (request == null)
        {
            throw new ArgumentNullException(nameof(request));
        }

        var cartId = idGenerator.New();

        var command = InitializeCart.Create(
            cartId,
            request.ClientId
            );

        await commandBus.Send(command);

        return(Created("api/Carts", cartId));
    }