Пример #1
0
        private void HandleChangeAmount(JsonAccount jsonAccount)
        {
            BankAccount account = _bankAccountService.FindAccount(jsonAccount.Id);

            _bankAccountService.Change(account, jsonAccount.Amount);

            jsonAccount.Balance = account.Balance;
        }
Пример #2
0
        public void ShouldBeAbleToWithDraw()
        {
            // Arrange
            var jsonAccount = new JsonAccount { Amount = -1000, Id = 1 };

            // Act
            _sut.ProcessRequest(_httpContext.Object, jsonAccount);

            // Assert
            _repository.Verify(rep => rep.Save(_account));
            Assert.That(_account.Balance, Is.EqualTo(0));
            Assert.That(_account.Balance, Is.EqualTo(jsonAccount.Balance));
        }
Пример #3
0
        public void ShouldContainErrorMessage()
        {
            // Arrange
            var jsonAccount = new JsonAccount { Amount = -100000, Id = 1 };

            // Act
            _sut.ProcessRequest(_httpContext.Object, jsonAccount);

            // Assert
            _repository.Verify(rep => rep.Save(_account), Times.Never());

            Assert.That(jsonAccount.HasError, Is.True);
            Assert.That(jsonAccount.ErrorMessage, Is.EqualTo("The balance cannot be smaller than the amount to withdraw!"));
        }
Пример #4
0
        public void ProcessRequest(HttpContextBase context, JsonAccount jsonAccount)
        {
            HttpResponseBase response = context.Response;
            response.ContentType = "application/json";
            response.ContentEncoding = Encoding.UTF8;

            try
            {
                HandleChangeAmount(jsonAccount);
            }
            catch (Exception e)
            {
                jsonAccount.ErrorMessage = e.Message;
            }

            response.Write(_serializer.Serialize(jsonAccount));
        }