public void ShouldNotPutMoneyToBalanceIfClientDoesntExist()
        {
            //Arrange
            var args = new ArgumentsForPutMoneyToBalance();

            //Act
            clientTableRepository.ContainsById(Arg.Is(args.ClientId)).Returns(false);

            //Assert
            clientsService.PutMoneyToBalance(args);
        }
예제 #2
0
        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();
        }