public void ToCurrency_WhenEmptyType_ShouldThrowInvalidOperationException() { // Arrange var type = new CurrencyType(); // Act Assert var action = new Action(() => type.ToCurrency(0)); action.Should().Throw <InvalidOperationException>(); }
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); }