public void ShouldNotPutMoneyToBalanceIfClientDoesntExist() { //Arrange var args = new ArgumentsForPutMoneyToBalance(); //Act clientTableRepository.ContainsById(Arg.Is(args.ClientId)).Returns(false); //Assert clientsService.PutMoneyToBalance(args); }
public void PutMoneyToBalance(ArgumentsForPutMoneyToBalance args) { if (!clientTableRepository.ContainsById(args.ClientId)) { throw new ArgumentException($"Client with Id {args.ClientId} doesn't exist"); } ClientEntity clientToChangeBalance = clientTableRepository.GetById(args.ClientId); clientToChangeBalance.Balance += args.AmountToPut; clientTableRepository.Change(clientToChangeBalance); clientTableRepository.SaveChanges(); }
public void ShouldPutMoneyToBalance() { //Arrange ArgumentsForPutMoneyToBalance args = new ArgumentsForPutMoneyToBalance() { AmountToPut = 100M, ClientId = 1 }; var balanceBeforeChange = clientTableRepository.GetById(1).Balance; //Act clientTableRepository.ContainsById(args.ClientId).Returns(true); clientsService.PutMoneyToBalance(args); //Assert clientTableRepository.Received(1).Change(Arg.Is <ClientEntity>(s => s.Id == args.ClientId && s.Balance == balanceBeforeChange + args.AmountToPut)); clientTableRepository.Received(1).SaveChanges(); }