public InitialTransfer(string id, string fromId, string toId, decimal amount) { TransactionId = id; From = new Account(fromId); To = new Account(toId); Amount = new Amount(amount); State = InitialTransferState.NONE; }
public Event ValidateTransfer() { if (string.IsNullOrWhiteSpace(From.Id)) { State = InitialTransferState.INVALID; return(ValidatorServiceEventFactory.BuildInvalidAccountEvent(TransactionId, ConstantStrings.ProcessAccountToError)); } if (string.IsNullOrWhiteSpace(To.Id)) { State = InitialTransferState.INVALID; return(ValidatorServiceEventFactory.BuildInvalidAccountEvent(TransactionId, ConstantStrings.ProcessAccountFromError)); } if (Amount.Value <= 0) { State = InitialTransferState.INVALID; return(ValidatorServiceEventFactory.BuildInvalidAmountEvent(TransactionId, ConstantStrings.ProcessAmountError)); } State = InitialTransferState.VALID; return(ValidatorServiceEventFactory.BuildTransferValidatedEvent(TransactionId)); }
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); }
public Event CancelTransfer() { State = InitialTransferState.CANCELLED; return(ValidatorServiceEventFactory.BuildTransferCanceledEvent(TransactionId)); }