Esempio n. 1
0
        public void ToCurrency_WhenEmptyType_ShouldThrowInvalidOperationException()
        {
            // Arrange
            var type = new CurrencyType();

            // Act Assert
            var action = new Action(() => type.ToCurrency(0));

            action.Should().Throw <InvalidOperationException>();
        }
Esempio n. 2
0
        public async Task <DomainValidationResult <ITransaction> > CreateTransactionAsync(
            IAccount account,
            decimal amount,
            CurrencyType currencyType,
            TransactionType type,
            TransactionMetadata?metadata        = null,
            CancellationToken cancellationToken = default
            )
        {
            var result = new DomainValidationResult <ITransaction>();

            if (result.IsValid)
            {
                var value = currencyType.ToCurrency(amount);

                if (value is Money money)
                {
                    return(await this.CreateTransactionAsync(
                               new MoneyAccountDecorator(account),
                               money,
                               type,
                               metadata,
                               cancellationToken));
                }

                if (value is Token token)
                {
                    return(await this.CreateTransactionAsync(
                               new TokenAccountDecorator(account),
                               token,
                               type,
                               metadata,
                               cancellationToken));
                }
            }

            return(result);
        }