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));
        }
Exemplo n.º 3
0
        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));
 }