예제 #1
0
        public async Task Should_return_bad_request_when_try_to_pay_a_negative_amount()
        {
            var invoice = new InvoiceDto {
                Number  = 345454,
                DueDate = new DateTime(),
                Amount  = -100
            };

            var command = new PaymentCommand {
                AccountNo = 1001, Invoice = invoice
            };
            var content = new StringContent(command.AsJson(), Encoding.UTF8, "application/json");

            var response = await _httpClient.PostAsync("api/account/payment", content);;

            response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
        }
예제 #2
0
        public async Task Should_pay_an_invoice_succesfully()
        {
            var invoice = new InvoiceDto
            {
                Number  = 345454,
                DueDate = new DateTime(),
                Amount  = 500
            };

            var command = new PaymentCommand {
                AccountNo = 1001, Invoice = invoice
            };
            var content  = new StringContent(command.AsJson(), Encoding.UTF8, "application/json");
            var response = await _httpClient.PostAsync("api/account/payment", content);

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
예제 #3
0
        public async Task Should_and_a_historical_registry_when_a_payment_charged_successfuly()
        {
            var invoice = new InvoiceDto {
                Number  = 345454,
                DueDate = new DateTime(),
                Amount  = 600
            };

            var command = new PaymentCommand {
                AccountNo = 1001, Invoice = invoice
            };
            var content = new StringContent(command.AsJson(), Encoding.UTF8, "application/json");
            await _httpClient.PostAsync("api/account/payment", content);

            var response = await _httpClient.GetAsync("api/account/1001/statement");

            response.StatusCode.Should().Be(HttpStatusCode.OK);

            var account = await response.Content.ReadFromJsonAsync <AccountDto>();

            var statement = account.Statements.First(s => s.Amount == -600);
        }