public void InitialTransfer_WhenProcessingValidTransaction_ProducesExpectedEvents(string from, string to, decimal amount, string expectedEvent) { var transactionId = Guid.NewGuid().ToString(); var initialTransfer = new InitialTransfer(transactionId, from, to, amount); Event @event = initialTransfer.ValidateTransfer(); Assert.Equal(expectedEvent, @event.Header.MessageType); }
public void InitialTransfer_WhenProcessingValidTransaction_CollectsExpectedEvents(string from, string to, decimal amount, InitialTransferState expectedState) { var transactionId = Guid.NewGuid().ToString(); var initialTransfer = new InitialTransfer(transactionId, from, to, amount); initialTransfer.ValidateTransfer(); Assert.Equal(expectedState, initialTransfer.State); }
private async Task ValidateAsync(MessageHeader header, ValidateTransferCommandContent content) { var transactionId = header?.TransactionId; var transaction = content?.Transaction; var initialTransfer = new InitialTransfer(transactionId, transaction.AccountFromId, transaction.AccountToId, transaction.Amount); Event validationEvent = initialTransfer.ValidateTransfer(); await repository.AddAsync(initialTransfer); await eventProducer.ProduceAsync(validationEvent); }
private async Task CancelTransfer(MessageHeader header, CancelTransferCommandContent content) { var transactionId = header?.TransactionId; var transaction = content?.Transaction; var initialTransfer = new InitialTransfer(transactionId, transaction.AccountFromId, transaction.AccountToId, transaction.Amount); Event transferCanceled = initialTransfer.CancelTransfer(); await repository.AddAsync(initialTransfer); await eventProducer.ProduceAsync(transferCanceled); }