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 ); }
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)); }