public async Task Test_Transfer_exceeded() { //Arrange var options = new DbContextOptionsBuilder <BankAppDbContext>() .UseInMemoryDatabase(databaseName: "Test_Transfer_exceeded") .Options; //Act using (var context = new BankAppDbContext(options)) { var senderAccount = new Account { Balance = 10, }; var recieverAccount = new Account { Balance = 0 }; context.AddRange(senderAccount, recieverAccount); await context.SaveChangesAsync(); var x = new CreateTransferCommandHandler(context); await x.Handle(new CreateTransferCommand { Amount = 20, SenderAccountId = senderAccount.AccountId, RecieverAccountId = recieverAccount.AccountId }, new CancellationToken()); } //Assert that method throws AmountExceedsBalanceException }
public async Task CreateTransfer_Tests(decimal amount, int fromacc, int toacc) { var command = new CreateTransferCommand() { Amount = amount, FromAccountId = fromacc, ToAccountId = toacc }; var options = new DbContextOptionsBuilder <BankAppDataContext>() .UseInMemoryDatabase(databaseName: "CreateTransfer_Tests") .Options; using (var context = new BankAppDataContext(options)) { var handler = new CreateTransferCommandHandler(context); var result = await handler.Handle(command, CancellationToken.None); Assert.False(result.Success); } }
public async Task Test_Transaction_Created() { //Arrange var options = new DbContextOptionsBuilder <BankAppDbContext>() .UseInMemoryDatabase(databaseName: "Test_Withdraw_exceed") .Options; int actual = 0; //Act using (var context = new BankAppDbContext(options)) { var senderAccount = new Account { Balance = 100, }; var recieverAccount = new Account { Balance = 0 }; context.AddRange(senderAccount, recieverAccount); await context.SaveChangesAsync(); var withdrawCommand = new CreateWithdrawCommandHandler(context); await withdrawCommand.Handle(new CreateWithdrawCommand { Amount = 10, AccountId = senderAccount.AccountId }, new CancellationToken()); var depositCommand = new CreateDepositCommandHandler(context); await depositCommand.Handle(new CreateDepositCommand { Amount = 10, AccountId = senderAccount.AccountId }, new CancellationToken()); var transferCommand = new CreateTransferCommandHandler(context); await transferCommand.Handle(new CreateTransferCommand { Amount = 10, SenderAccountId = senderAccount.AccountId, RecieverAccountId = recieverAccount.AccountId }, new CancellationToken()); actual = await context.Transactions.CountAsync(); } //Assert that method creates 4 transfers int expected = 4; Assert.AreEqual(expected, actual); }