public async Task AddTransfer_WithInvalidArguments_ShouldFail()
 {
     var addTransactionCommandFaker = new Common.Fakers.AddTransactionCommandFaker();
     await Assert.ThrowsAsync <ArgumentException>(async() =>
                                                  await transactionRepository.Add(
                                                      addTransactionCommandFaker
                                                      .RuleFor(ta => ta.CreditsChange, 0m)
                                                      .Generate()));
 }
        public async Task AddTransfer_WithSameTransactionId_ShouldFail()
        {
            var addTransactionCommandFaker = new Common.Fakers.AddTransactionCommandFaker()
                                             .RuleFor(ta => ta.UserId, UserId)
                                             .RuleFor(ta => ta.AccountId, Account.ExternalId)
                                             .RuleFor(ta => ta.OtherAccountId, OtherAccount.ExternalId);

            var transaction1 = addTransactionCommandFaker.Generate();
            var transaction2 = addTransactionCommandFaker
                               .RuleFor(ta => ta.TransactionId, transaction1.TransactionId)
                               .Generate();

            await transactionRepository.Add(transaction1);

            await Assert.ThrowsAsync <DatabaseException>(async() =>
                                                         await transactionRepository.Add(transaction2));
        }