public async Task UpdatesCustomerOrderStatusToPaidAfterTheReceivingOfOrderPaidNotification() { //Arrange var customerRepository = new CustomerRepository(_dbContext); var suitAlterationRepository = new SuitAlterationRepository(_dbContext); var customer = CreateNewCustomer(); await customerRepository.AddAsync(customer); customer.PlaceOrder(5, 5, 5, 5); await _unitOfWork.CommitAsync(CancellationToken.None); //Pre-assert var order = customer.SuitAlterations.Single(); order.Status.Should().Be(SuitAlterationStatus.Created); //Act var markOrderAsPaidCommandHandler = new MarkOrderAsPaidCommandHandler(suitAlterationRepository); await markOrderAsPaidCommandHandler.Handle(new MarkOrderAsPaidCommand(order.Id), CancellationToken.None); await _unitOfWork.CommitAsync(CancellationToken.None); //Assert SuitAlteration paidOrder = await suitAlterationRepository.GetByIdAsync(order.Id); order.DomainEvents.Should().ContainEquivalentOf(new OrderPaidDomainEvent(order.Id)); paidOrder.Status.Should().Be(SuitAlterationStatus.Paid); order.DomainEvents.Count.Should().Be(2); }
public async Task <Unit> Handle(MarkOrderAsPaidCommand request, CancellationToken cancellationToken) { SuitAlteration suitAlteration = await _suitAlterationRepository.GetByIdAsync(request.SuitAlterationId); suitAlteration.MarkOrderAsPaid(); return(Unit.Value); }
public void PlaceOrder(int leftSleeveLength, int rightSleeveLength, int leftTrouserLength, int rightTrouserLength) { var order = SuitAlteration.CreateNew(leftSleeveLength, rightSleeveLength, leftTrouserLength, rightTrouserLength); _suitAlterations.Add(order); }